Q29udGVudC1sYW5ndWFnZTogY3MKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMgpCb2R5Oi0tLS0tLS0tLS1jcy0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImNzIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IklTTy04ODU5LTIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJaZHJvaiBqab4gbmVu7SBk4WxlIGRvc3R1cG79ISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFBvvmFkb3ZhbukgVVJMIGppviBuZW7tIG5hIHRvbXRvIHNlcnZlcnUgayBkaXNwb3ppY2ksIGFuaSBuZW7tIGsgZGlzcG96aWNpCiAgICC+4WRu4SBhZHJlc2EgayBw+GVzbexyb3bhbu0uCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CiAgCiAgICBJbmZvcm11anRlLCBwcm9z7W0sIGF1dG9yYQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPm9ka2F6dWrtY+0KICAgIHN0cuFua3k8L2E+LCC+ZSBvZGtheiBqZSB6YXN0YXJhbP0uCiAgIAogIDwhLS0jZWxzZSAtLT4KICAKICAgIFBva3VkIGpzdGUgbuFzbGVkb3ZhbGkgb2RrYXogeiZuYnNwO2Npeu0gc3Ry4W5reSwga29udGFrdHVqdGUsIHByb3PtbSwKICAgIGplau1obyBhdXRvcmEuCgogIDwhLS0jZW5kaWYgLS0+CiAgCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4gCi0tLS0tLS0tLS1jcy0tCgpDb250ZW50LWxhbmd1YWdlOiBkZQpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWRlLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iZGUiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJPYmpla3QgbmljaHQgbWVociB2ZXJmJnV1bWw7Z2JhciEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBEZXIgYW5nZWZvcmRlcnRlIFVSTCBleGlzdGllcnQgYXVmIGRlbSBTZXJ2ZXIgbmljaHQgbWVocgogICAgdW5kIHd1cmRlIGRhdWVyaGFmdCBlbnRmZXJudC4KICAgIEVpbmUgV2VpdGVybGVpdHVuZ3NhZHJlc3NlIGlzdCBuaWNodCB2ZXJmJnV1bWw7Z2Jhci4KCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KCiAgICBCaXR0ZSBpbmZvcm1pZXJlbiBTaWUgZGVuIEF1dG9yIGRlcgogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnZlcndlaXNlbmRlbgogICAgU2VpdGU8L2E+LCBkYXNzIGRlciBMaW5rIG5pY2h0IG1laHIgYWt0dWVsbCBpc3QuCgogIDwhLS0jZWxzZSAtLT4KCiAgICBGYWxscyBTaWUgZWluZW0gTGluayB2b24gZWluZXIgYW5kZXJlbiBTZWl0ZSBnZWZvbGd0IHNpbmQsCiAgICBpbmZvcm1pZXJlbiBTaWUgYml0dGUgZGVuIEF1dG9yIGRpZXNlciBTZWl0ZSBoaWVyJnV1bWw7YmVyLgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tZGUtLQoKQ29udGVudC1sYW5ndWFnZTogZW4KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1lbi0tCjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJSZXNvdXJjZSBpcyBubyBsb25nZXIgYXZhaWxhYmxlISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFRoZSByZXF1ZXN0ZWQgVVJMIGlzIG5vIGxvbmdlciBhdmFpbGFibGUgb24gdGhpcyBzZXJ2ZXIgYW5kIHRoZXJlIGlzIG5vCiAgICBmb3J3YXJkaW5nIGFkZHJlc3MuCiAgCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KICAKICAgIFBsZWFzZSBpbmZvcm0gdGhlIGF1dGhvciBvZiB0aGUKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5yZWZlcnJpbmcKICAgIHBhZ2U8L2E+IHRoYXQgdGhlIGxpbmsgaXMgb3V0ZGF0ZWQuCiAgIAogIDwhLS0jZWxzZSAtLT4KICAKICAgIElmIHlvdSBmb2xsb3dlZCBhIGxpbmsgZnJvbSBhIGZvcmVpZ24gcGFnZSwgcGxlYXNlIGNvbnRhY3QgdGhlCiAgICBhdXRob3Igb2YgdGhpcyBwYWdlLgogICAKICA8IS0tI2VuZGlmIC0tPgogIAo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+IAotLS0tLS0tLS0tZW4tLQoKQ29udGVudC1sYW5ndWFnZTogZXMKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1lcy0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImVzIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iJmlleGNsO1JlY3Vyc28gbm8gZGlzcG9uaWJsZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCglMb3MgcmVjdXJzb3Mgc29saWNpdGFkb3MgeWEgbm8gZXN0JmFhY3V0ZTtuIGRpc3BvbmlibGVzIGVuCgllc3RlIHNlcnZpZG9yIHkgbm8gZXhpc3RlIHVuYSBkaXJlY2NpJm9hY3V0ZTtuIGFsdGVybmF0aXZhLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKCUxlIHNvbGljaXRhbW9zIHF1ZSBjb211bmlxdWUgYWwgYXV0b3IgZGUgbGEgCgk8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiCiAgICAgICAgLS0+Ij5wJmFhY3V0ZTtnaW5hIHJlZmVyZW50ZTwvYT4gcXVlIGVsIGVubGFjZSBlc3QmYWFjdXRlOyBvYnNvbGV0by4KCiAgPCEtLSNlbHNlIC0tPgoJCglTaSB1c3RlZCBzaWd1aSZvYWN1dGU7IGVsIGVubGFjZSBkZXNkZSB1bmEgcCZhYWN1dGU7Z2luYSBleHRlcm5hLCAKCXBvciBmYXZvciBjb250YWN0ZSBjb24gZWwgYXV0b3IgZGUgZXNhIHAmYWFjdXRlO2dpbmEuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1lcy0tCgpDb250ZW50LWxhbmd1YWdlOiBmcgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWZyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iZnIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJDZXR0ZSByZXNzb3VyY2UgbidleGlzdGUgcGx1cyEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBMJ1VSTCBkZW1hbmQmZWFjdXRlO2Ugbidlc3QgcGx1cyBhY2Nlc3NpYmxlIHN1ciBjZSBzZXJ2ZXVyIGV0IGlsCiAgICBuJ3kgYSBwYXMgZCdhZHJlc3NlIGRlIHN1aXRlLiAKCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4gCgogICAgTm91cyB2b3VzIHByaW9ucyBkJ2luZm9ybWVyIGwnYXV0ZXVyIGRlCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+bGEgCiAgICBwYWdlIGVuIHF1ZXN0aW9uPC9hPiBxdWUgbGEgciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2Ugbidlc3QgcGx1cyBhY3R1ZWxsZS4KCiAgPCEtLSNlbHNlIC0tPiAKCiAgICBTaSB2b3VzIGF2ZXogc3VpdmkgdW5lIHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlIGlzc3VlIGQndW5lIHBhZ2UgYXV0cmUsIAogICAgdmV1aWxsZXogY29udGFjdGVyIGwnYXV0ZXVyIGRlIGNldHRlIHBhZ2UuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1mci0tCgpDb250ZW50LWxhbmd1YWdlOiBnYQpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWdhLS0KPCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IkFjbWhhaW5uIGltaXRoZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBOJmlhY3V0ZTtsIGFuIFVSTCBpYXJyYWl0aGUgYXIgZiZhYWN1dGU7aWwgYXIgYW4gZmhyZWFzdGFsYSZpYWN1dGU7IHNlbyAKICAgIGEgdGh1aWxsZWFkaCwgYWd1cyBuJmlhY3V0ZTtsIGFvbiBzZW9sYWRoIG51YSBhbm4gZCZvYWN1dGU7LgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIEN1ciBpbiAmdWFjdXRlO2lsIGRvICZ1YWN1dGU7YWRhciBhbgogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPmxlYXRoYW5hY2gKICAgIHRoYWdhcnRoYWNoPC9hPiBnbyBiaGZ1aWwgYW4gbmFzYyBhcy1kJmFhY3V0ZTt0YSwgbGUgZG8gdGhvaWwuCgogIDwhLS0jZWxzZSAtLT4KCiAgICBNJmFhY3V0ZTsgbGVhbmYmYWFjdXRlOyBuYXNjICZvYWN1dGU7IGxlYXRoYW5hY2ggaWFzYWNodGEsIHQmZWFjdXRlO2lnaCBpCiAgICBkdGVhZ2htaCZhYWN1dGU7aWwgbGUgJnVhY3V0ZTthZGFyIGFuIGxlYXRoYW5hY2ggc2luLCBsZSBkbyB0aG9pbC4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWdhLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IGl0CkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0taXQtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJpdCIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IkxhIHJpc29yc2Egbm9uICZlZ3JhdmU7IHBpJnVncmF2ZTsgZGlzcG9uaWJpbGUhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgTCdVUkwgcmljaGllc3RvIG5vbiAmZWdyYXZlOyBwaSZ1Z3JhdmU7IGRpc3BvbmliaWxlIHN1IHF1ZXN0byBzZXJ2ZXIKICAgIGUgbm9uIGVzaXN0b25vIGluZGlyaXp6aSB2ZXJzbyBpIHF1YWxpIHNpYSBwb3NzaWJpbGUgaW5vbHRyYXJlCiAgICBsYSByaWNoaWVzdGEuCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgUGVyIGZhdm9yZSwgaW5mb3JtYSBsJ2F1dG9yZSBkZWxsYQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnBhZ2luYQogICAgZGkgcHJvdmVuaWVuemE8L2E+IGNoZSBpbCBsaW5rIG5vbiAmZWdyYXZlOyBwaSZ1Z3JhdmU7IHZhbGlkby4KCiAgPCEtLSNlbHNlIC0tPgoKICAgIFNlIHNlaSBhcnJpdmF0byBkYSB1bmEgcGFnaW5hIGVzdGVybmEsIGluZm9ybWEgbCdhdXRvcmUgZGVsbGEKICAgIHBhZ2luYSBkaSBwcm92ZW5pZW56YSBjaGUgaWwgbGluayBub24gJmVncmF2ZTsgcGkmdWdyYXZlOyB2YWxpZG8uCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1pdC0tCgpDb250ZW50LWxhbmd1YWdlOiBqYQpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tMjAyMi1KUApCb2R5Oi0tLS0tLS0tLS1qYS0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImphIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9Imlzby0yMDIyLWpwIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iUmVzb3VyY2UgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICAbJEJNVzVhJDUkbCQ/GyhCIFVSTCAbJEIkTzR7JEtLXCU1ITwlUCRHJE9NeE1RJEckLSReJDskcyQ3ISIbKEIKICAgIBskQjBcRjBAaCRiJG8kKyRqJF4kOyRzISMbKEIKICAKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgogIAogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIi0tPiIKICAgID4bJEI7Mj5IODUlWiE8JTgbKEI8L2E+GyRCJE5DeDxUJEshIhsoQgogICAgGyRCJWolcyUvJCw4RSQvJEokQyRGJCQkayQzJEgkciQ0TyJNbSQvJEAkNSQkISMbKEIKICAgCiAgPCEtLSNlbHNlIC0tPgogIAogICAgGyRCQj4kTiVaITwlOCQrJGkkTiVqJXMlLyRyQykkQyRGJC0kPz5sOWckTyEiGyhCCiAgICAbJEIkPSROJVohPCU4JE5DeDxUJEskNE8iTW0kLyRAJDUkJCEjGyhCCiAgIAogIDwhLS0jZW5kaWYgLS0+CiAgCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4gCi0tLS0tLS0tLS1qYS0tCgpDb250ZW50LWxhbmd1YWdlOiBrbwpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1FVUMtS1IKQm9keTotLS0tLS0tLS0ta28tLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJrbyIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IrC0w7ywoSC++L7uwbPAvSEiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iRVVDLUtSIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICC/5MO7x9EgVVJMwLogtPUgwMy78yDAzCC8rbn2v6Egs7K+xsDWwfYgvsrAuLjnLAogICCx1yCwtMO8sKEgv8Ww3MH4ILTZuKUgVVJMIL+qvcMgs7K+xsDWwfYgvsq9wLTPtNkuCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIi0tPiI+wMzA/AogICAgxuTAzMH2PC9hPsDHILi4tefAzL+hsNQgwda80rChIMDfuPi1x776tNmw7SC+y7fBwda9w7HiILnZtvi0z7TZLgoKICA8IS0tI2Vsc2UgLS0+CgogICAgtNm4pSDG5MDMwfbAxyC4tcWpuKYgtfu287/AvMy02bjpLCCx1yDG5MDMwfbAxyC4uLXnwMy/obDUIL+stvTAuyDHz73DseIKICAgILnZtvi0z7TZLgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0ta28tLQoKQ29udGVudC1sYW5ndWFnZTogbmwKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1ubC0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9Im5sIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iRGl0IG9iamVjdCBpcyBuaWV0IGxhbmdlciBiZXNjaGlrYmFhciEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgIERlIGdldnJhYWdkZSBVUkwgaXMgbmlldCBsYW5nZXIgYmVzY2hpa2JhYXIgb3AgZGV6ZSBzZXJ2ZXIgZW4gZXIgaXMgZ2VlbgogICBkb29ydmVyd2lqc2FkcmVzLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgR2VsaWV2ZSBhYW4gZGUgYXV0ZXVyIHZhbgogICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+ZGV6ZSBwYWdpbmE8L2E+CiAgIHRlIG1lbGRlbiBkYXQgZGV6ZSBsaW5rIG5pZXQgbGFuZ2VyIGFjdHVlZWwgaXMuCgogIDwhLS0jZWxzZSAtLT4KCiAgIEluZGllbiB1IGRlemUgbGluayBoZWJ0IGdla3JlZ2VuIHZhbiBlZW4gYW5kZXJlIHBhZ2luYSwgZ2VsaWV2ZQogICBkZSBhdXRldXIgdmFuIGRlemUgcGFnaW5hIHRlIGNvbnRhY3RlcmVuLgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tbmwtLQoKQ29udGVudC1sYW5ndWFnZTogcGwKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMgpCb2R5Oi0tLS0tLS0tLS1wbC0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InBsIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iWmFz82IgdXN1bmnqdHkhIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IklTTy04ODU5LTIiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBQb3N6dWtpd2FueSB6YXPzYiBuaWUgamVzdCBqdb8gZG9zdOpwbnkgbmEgdHltIHNlcndlcnplIGkgbmllCiAgICBwb2Rhbm8gbm93ZWdvIGFkcmVzdSB6YXNvYnUuCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgUHJvc2lteSBwb2luZm9ybW93YeYgYXV0b3JhCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+cmVmZXJ1arFjZWoKICAgIHN0cm9ueTwvYT4gbyBuaWVha3R1YWxueW0gbGlua3UuCgogIDwhLS0jZWxzZSAtLT4KCiAgICBKZbZsaSBwb2Sxv3mzZbYgemEgbGlua2llbSB6IGlubmVqIHN0cm9ueSBza29udGFrdHVqIHNp6iB6IGplagogICAgYXV0b3JlbS4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLXBsLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHB0LWJyCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tcHQtYnItLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJwdC1iciIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IlJlY3Vyc28gbiZhdGlsZGU7byBkaXNwb24maWFjdXRlO3ZlbCEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgIEEgVVJMIHNvbGljaXRhZGEgbiZhdGlsZGU7byBlc3QmYWFjdXRlOyBkaXNwb24maWFjdXRlO3ZlbCBuZXN0ZSBzZXJ2aWRvcgogICBlIG4mYXRpbGRlO28gZXhpc3RlIHVtIGVuZGVyZSZjY2VkaWw7byBhbHRlcm5hdGl2by4KCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KCiAgIFBvciBmYXZvciBpbmZvcm1lIG8gYXV0b3IgZGEKICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnAmYWFjdXRlO2dpbmEKICAgcmVmZXJpZGE8L2E+IHF1ZSBhIFVSTCBlc3QmYWFjdXRlOyBkZXNhdHVhbGl6YWRhLgoKICA8IS0tI2Vsc2UgLS0+CgogICBTZSB2b2MmZWNpcmM7IHNlZ3VpdSB1bSAibGluayIgZGUgdW1hIHAmYWFjdXRlO2dpbmEgZXh0ZXJuYSwgcG9yIGZhdm9yCiAgIGVudHJlIGVtIGNvbnRhdG8gY29tIG8gYXV0b3IgZGVzdGEgcCZhYWN1dGU7Z2luYSBlIG8gaW5mb3JtZSBzb2JyZSBhCiAgIG11ZGFuJmNjZWRpbDthIGRvICJsaW5rIi4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLXB0LWJyLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHJvCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tcm8tLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJybyIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IlJlc3Vyc2EgbnUgbWFpIGVzdGUgZGlzcG9uaWJpbGEhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgVVJMLXVsIGNlcnV0IG51IG1haSBlc3RlIGRpc3BvbmliaWwgcGUgYWNlc3Qgc2VydmVyIHNpIG51CiAgICBleGlzdGEgbyBhZHJlc2EgZGUgaW5haW50YXJlLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIFZhIHJ1Z2FtIGluZm9ybWF0aSBhdXRvcnVsCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+cGFnaW5paQogICAgcmVmZXJpdGU8L2E+IGNhIGxpbmstdWwgbnUgbWFpIGVzdGUgZGUgYWN0dWFsaXRhdGUuCgogIDwhLS0jZWxzZSAtLT4KCiAgICBWYSBydWdhbSBjb250YWN0YXRpIGF1dG9ydWwgYWNlc3RlaSBwYWdpbmkgZGFjYSBhdGkgdXJtYXQKICAgIHVuIGxpbmsgZGludHItbyBwYWdpbmEgZXh0ZXJuYS4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLXJvLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHNyCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTUKQm9keTotLS0tLS0tLS0tc3ItLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJzciIKLS0+PCEtLSNzZXQgdmFyPSJDSEFSQUNURVJfRU5DT0RJTkciIHZhbHVlPSJJU08tODg1OS01IgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iwNXh4+DhIN3Y+NUg0tjo1SDU3uHi49/Q3SEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICC30OXi1dLQ3dggw8C7IN3Y+NUg0tjo1SDU3uHi49/Q3SDd0CDe0t7cIOHV4NLV4OMg2CDd1dzQCiAgICDQ1ODV4dUg3dAg2t744yDR2OHi1SDc3tPb2CDR2OLYIN/g3uHb1fLV3dguCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgvN7b2NzeIN7R0NLV4eLY4tUg0OPi3uDQCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+2OHl3tTY6N3VCiAgICDh4uDQ3djm1TwvYT4g1NAg+NUg0tXX0CDX0OHi0ODV29AuCgogIDwhLS0jZWxzZSAtLT4KCiAgICCw2t4g4eLVIN/g0OLY29gg0tXX4yDh0CDh39753dUg4eLg0N3Y5tUsINze29jc3iDe0dDS1eHi2OLVCiAgICDQ4+Le4NAg4tUg4eLg0N3Y5tUuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1zci0tCgpDb250ZW50LWxhbmd1YWdlOiBzdgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLXN2LS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0ic3YiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJSZXN1cnNlbiBpbnRlIGwmYXVtbDtuZ3JlIHRpbGxnJmF1bWw7bmdsaWchIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgRGVuICZvdW1sO25za2FkZSBhZHJlc3NlbiAmYXVtbDtyIGludGUgbCZhdW1sO25ncmUgdGlsbGcmYXVtbDtuZ2xpZyBob3MKICAgIGRlbm5hIHNlcnZlciBvY2ggZGV0IGZpbm5zIGludGUgbiZhcmluZztnb24gYWRyZXNzIGYmb3VtbDtyIHZpZGFyZWJlZm9kcmFuLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIFYmYXVtbDtubGlnZW4gaW5mb3JtZXJhIGYmb3VtbDtyZmF0dGFyZW4gYmFrb20gCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+ZGVuIGFrdHVlbGxhCiAgICBzaWRhbjwvYT4gYXR0IGwmYXVtbDtua2VuICZhdW1sO3IgaW5ha3R1ZWxsLgogCiAgPCEtLSNlbHNlIC0tPgoKICAgIE9tIGR1IGYmb3VtbDtsamRlIGVuIGwmYXVtbDtuayBmciZhcmluZztuIGVuIGV4dGVybiBzaWRhLCB2JmF1bWw7bmxpZ2VuCiAgICBrb250YWt0YSBmJm91bWw7cmZhdHRhcmVuIGF2IGRlbiBzaWRhbi4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLXN2LS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHRyCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTkKQm9keTotLS0tLS0tLS0tdHItLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJ0ciIKLS0+PCEtLSNzZXQgdmFyPSJDSEFSQUNURVJfRU5DT0RJTkciIHZhbHVlPSJJU08tODg1OS05IgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iUmVzb3VyY2UgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBUYWxlcCBldHRpJiMyODc7aW5peiBVUkwgYnUgc3VudWN1IPx6ZXJpbmRlIGJhciYjMzA1O25kJiMzMDU7ciYjMzA1O2xtJiMzMDU7eW9yCiAgICB2ZSBoZXJoYW5naSBiaXIgefZuZWx0bWUgZGUgbWV2Y3V0IGRlJiMyODc7aWwuICAKCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KICAKICAgIEz8dGZlbgogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnJlZmVyYW5zIHNheWZhbiYjMzA1O248L2E+CiAgICB5YXphciYjMzA1O25hLCBidSBiYSYjMjg3O2xhbnQmIzMwNTtuJiMzMDU7biBn/G5jZWwKICAgIG9sbWFkJiMzMDU7JiMyODc7JiMzMDU7biYjMzA1OyBiaWxkaXJpbi4KICAgCiAgPCEtLSNlbHNlIC0tPgogIAogICAgWWFiYW5jJiMzMDU7IGJpciBzYXlmYWRhbiBidSBiYSYjMjg3O2xhbnQmIzMwNTt5JiMzMDU7IGl6bGVkaXlzZW5peiwKICAgIGz8dGZlbiBz9nprb251c3Ugc2F5ZmFuJiMzMDU7biB5YXphciYjMzA1OyBpbGUgaWxldGkmIzM1MTtpbWUgZ2XnaW4uCiAgIAogIDwhLS0jZW5kaWYgLS0+CiAgCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4gCi0tLS0tLS0tLS10ci0tCg==