Q29udGVudC1sYW5ndWFnZTogY3MKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMgpCb2R5Oi0tLS0tLS0tLS1jcy0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImNzIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IklTTy04ODU5LTIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJaZHJvaiBqab4gbmVu7SBk4WxlIGRvc3R1cG79ISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFBvvmFkb3ZhbukgVVJMIGppviBuZW7tIG5hIHRvbXRvIHNlcnZlcnUgayBkaXNwb3ppY2ksIGFuaSBuZW7tIGsgZGlzcG96aWNpCiAgICC+4WRu4SBhZHJlc2EgayBw+GVzbexyb3bhbu0uCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CiAgCiAgICBJbmZvcm11anRlLCBwcm9z7W0sIGF1dG9yYQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPm9ka2F6dWrtY+0KICAgIHN0cuFua3k8L2E+LCC+ZSBvZGtheiBqZSB6YXN0YXJhbP0uCiAgIAogIDwhLS0jZWxzZSAtLT4KICAKICAgIFBva3VkIGpzdGUgbuFzbGVkb3ZhbGkgb2RrYXogeiZuYnNwO2Npeu0gc3Ry4W5reSwga29udGFrdHVqdGUsIHByb3PtbSwKICAgIGplau1obyBhdXRvcmEuCgogIDwhLS0jZW5kaWYgLS0+CiAgCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4gCi0tLS0tLS0tLS1jcy0tCgpDb250ZW50LWxhbmd1YWdlOiBkZQpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWRlLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iZGUiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJPYmpla3QgbmljaHQgbWVociB2ZXJmJnV1bWw7Z2JhciEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBEZXIgYW5nZWZvcmRlcnRlIFVSTCBleGlzdGllcnQgYXVmIGRlbSBTZXJ2ZXIgbmljaHQgbWVocgogICAgdW5kIHd1cmRlIGRhdWVyaGFmdCBlbnRmZXJudC4KICAgIEVpbmUgV2VpdGVybGVpdHVuZ3NhZHJlc3NlIGlzdCBuaWNodCB2ZXJmJnV1bWw7Z2Jhci4KCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KCiAgICBCaXR0ZSBpbmZvcm1pZXJlbiBTaWUgZGVuIEF1dG9yIGRlcgogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnZlcndlaXNlbmRlbgogICAgU2VpdGU8L2E+LCBkYXNzIGRlciBMaW5rIG5pY2h0IG1laHIgYWt0dWVsbCBpc3QuCgogIDwhLS0jZWxzZSAtLT4KCiAgICBGYWxscyBTaWUgZWluZW0gTGluayB2b24gZWluZXIgYW5kZXJlbiBTZWl0ZSBnZWZvbGd0IHNpbmQsCiAgICBpbmZvcm1pZXJlbiBTaWUgYml0dGUgZGVuIEF1dG9yIGRpZXNlciBTZWl0ZSBoaWVyJnV1bWw7YmVyLgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tZGUtLQoKQ29udGVudC1sYW5ndWFnZTogZW4KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1lbi0tCjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJSZXNvdXJjZSBpcyBubyBsb25nZXIgYXZhaWxhYmxlISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFRoZSByZXF1ZXN0ZWQgVVJMIGlzIG5vIGxvbmdlciBhdmFpbGFibGUgb24gdGhpcyBzZXJ2ZXIgYW5kIHRoZXJlIGlzIG5vCiAgICBmb3J3YXJkaW5nIGFkZHJlc3MuCiAgCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KICAKICAgIFBsZWFzZSBpbmZvcm0gdGhlIGF1dGhvciBvZiB0aGUKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5yZWZlcnJpbmcKICAgIHBhZ2U8L2E+IHRoYXQgdGhlIGxpbmsgaXMgb3V0ZGF0ZWQuCiAgIAogIDwhLS0jZWxzZSAtLT4KICAKICAgIElmIHlvdSBmb2xsb3dlZCBhIGxpbmsgZnJvbSBhIGZvcmVpZ24gcGFnZSwgcGxlYXNlIGNvbnRhY3QgdGhlCiAgICBhdXRob3Igb2YgdGhpcyBwYWdlLgogICAKICA8IS0tI2VuZGlmIC0tPgogIAo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+IAotLS0tLS0tLS0tZW4tLQoKQ29udGVudC1sYW5ndWFnZTogZXMKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1lcy0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImVzIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iJmlleGNsO1JlY3Vyc28gbm8gZGlzcG9uaWJsZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCglMb3MgcmVjdXJzb3Mgc29saWNpdGFkb3MgeWEgbm8gZXN0JmFhY3V0ZTtuIGRpc3BvbmlibGVzIGVuCgllc3RlIHNlcnZpZG9yIHkgbm8gZXhpc3RlIHVuYSBkaXJlY2NpJm9hY3V0ZTtuIGFsdGVybmF0aXZhLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKCUxlIHNvbGljaXRhbW9zIHF1ZSBjb211bmlxdWUgYWwgYXV0b3IgZGUgbGEgCgk8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiCiAgICAgICAgLS0+Ij5wJmFhY3V0ZTtnaW5hIHJlZmVyZW50ZTwvYT4gcXVlIGVsIGVubGFjZSBlc3QmYWFjdXRlOyBvYnNvbGV0by4KCiAgPCEtLSNlbHNlIC0tPgoJCglTaSB1c3RlZCBzaWd1aSZvYWN1dGU7IGVsIGVubGFjZSBkZXNkZSB1bmEgcCZhYWN1dGU7Z2luYSBleHRlcm5hLCAKCXBvciBmYXZvciBjb250YWN0ZSBjb24gZWwgYXV0b3IgZGUgZXNhIHAmYWFjdXRlO2dpbmEuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1lcy0tCgpDb250ZW50LWxhbmd1YWdlOiBmcgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWZyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iZnIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJDZXR0ZSByZXNzb3VyY2UgbidleGlzdGUgcGx1cyEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBMJ1VSTCBkZW1hbmQmZWFjdXRlO2Ugbidlc3QgcGx1cyBhY2Nlc3NpYmxlIHN1ciBjZSBzZXJ2ZXVyIGV0IGlsCiAgICBuJ3kgYSBwYXMgZCdhZHJlc3NlIGRlIHN1aXRlLiAKCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4gCgogICAgTm91cyB2b3VzIHByaW9ucyBkJ2luZm9ybWVyIGwnYXV0ZXVyIGRlCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+bGEgCiAgICBwYWdlIGVuIHF1ZXN0aW9uPC9hPiBxdWUgbGEgciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2Ugbidlc3QgcGx1cyBhY3R1ZWxsZS4KCiAgPCEtLSNlbHNlIC0tPiAKCiAgICBTaSB2b3VzIGF2ZXogc3VpdmkgdW5lIHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlIGlzc3VlIGQndW5lIHBhZ2UgYXV0cmUsIAogICAgdmV1aWxsZXogY29udGFjdGVyIGwnYXV0ZXVyIGRlIGNldHRlIHBhZ2UuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1mci0tCgpDb250ZW50LWxhbmd1YWdlOiBpdApDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWl0LS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iaXQiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJMYSByaXNvcnNhIG5vbiAmZWdyYXZlOyBwaSZ1Z3JhdmU7IGRpc3BvbmliaWxlISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIEwnVVJMIHJpY2hpZXN0byBub24gJmVncmF2ZTsgcGkmdWdyYXZlOyBkaXNwb25pYmlsZSBzdSBxdWVzdG8gc2VydmVyCiAgICBlIG5vbiBlc2lzdG9ubyBpbmRpcml6emkgdmVyc28gaSBxdWFsaSBzaWEgcG9zc2liaWxlIGlub2x0cmFyZQogICAgbGEgcmljaGllc3RhLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIFBlciBmYXZvcmUsIGluZm9ybWEgbCdhdXRvcmUgZGVsbGEKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5wYWdpbmEKICAgIGRpIHByb3ZlbmllbnphPC9hPiBjaGUgaWwgbGluayBub24gJmVncmF2ZTsgcGkmdWdyYXZlOyB2YWxpZG8uCgogIDwhLS0jZWxzZSAtLT4KCiAgICBTZSBzZWkgYXJyaXZhdG8gZGEgdW5hIHBhZ2luYSBlc3Rlcm5hLCBpbmZvcm1hIGwnYXV0b3JlIGRlbGxhCiAgICBwYWdpbmEgZGkgcHJvdmVuaWVuemEgY2hlIGlsIGxpbmsgbm9uICZlZ3JhdmU7IHBpJnVncmF2ZTsgdmFsaWRvLgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0taXQtLQoKQ29udGVudC1sYW5ndWFnZTogamEKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTIwMjItSlAKQm9keTotLS0tLS0tLS0tamEtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJqYSIKLS0+PCEtLSNzZXQgdmFyPSJDSEFSQUNURVJfRU5DT0RJTkciIHZhbHVlPSJpc28tMjAyMi1qcCIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IlJlc291cmNlIGlzIG5vIGxvbmdlciBhdmFpbGFibGUhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgGyRCTVc1YSQ1JGwkPxsoQiBVUkwgGyRCJE80eyRLS1wlNSE8JVAkRyRPTXhNUSRHJC0kXiQ7JHMkNyEiGyhCCiAgICAbJEIwXEYwQGgkYiRvJCskaiReJDskcyEjGyhCCiAgCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KICAKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiItLT4iCiAgICA+GyRCOzI+SDg1JVohPCU4GyhCPC9hPhskQiROQ3g8VCRLISIbKEIKICAgIBskQiVqJXMlLyQsOEUkLyRKJEMkRiQkJGskMyRIJHIkNE8iTW0kLyRAJDUkJCEjGyhCCiAgIAogIDwhLS0jZWxzZSAtLT4KICAKICAgIBskQkI+JE4lWiE8JTgkKyRpJE4laiVzJS8kckMpJEMkRiQtJD8+bDlnJE8hIhsoQgogICAgGyRCJD0kTiVaITwlOCROQ3g8VCRLJDRPIk1tJC8kQCQ1JCQhIxsoQgogICAKICA8IS0tI2VuZGlmIC0tPgogIAo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+IAotLS0tLS0tLS0tamEtLQoKQ29udGVudC1sYW5ndWFnZToga28KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9RVVDLUtSCkJvZHk6LS0tLS0tLS0tLWtvLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0ia28iCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSKwtMO8sKEgvvi+7sGzwL0hIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IkVVQy1LUiIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgv+TDu8fRIFVSTMC6ILT1IMDMu/MgwMwgvK259r+hILOyvsbA1sH2IL7KwLi45ywKICAgsdcgsLTDvLChIL/FsNzB+CC02bilIFVSTCC/qr3DILOyvsbA1sH2IL7KvcC0z7TZLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiItLT4iPsDMwPwKICAgIMbkwMzB9jwvYT7AxyC4uLXnwMy/obDUIMHWvNKwoSDA37j4tce++rTZsO0gvsu3wcHWvcOx4iC52bb4tM+02S4KCiAgPCEtLSNlbHNlIC0tPgoKICAgILTZuKUgxuTAzMH2wMcguLXFqbimILX7tvO/wLzMtNm46SwgsdcgxuTAzMH2wMcguLi158DMv6Gw1CC/rLb0wLsgx8+9w7HiCiAgICC52bb4tM+02S4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWtvLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IG5sCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tbmwtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJubCIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IkRpdCBvYmplY3QgaXMgbmlldCBsYW5nZXIgYmVzY2hpa2JhYXIhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICBEZSBnZXZyYWFnZGUgVVJMIGlzIG5pZXQgbGFuZ2VyIGJlc2NoaWtiYWFyIG9wIGRlemUgc2VydmVyIGVuIGVyIGlzIGdlZW4KICAgZG9vcnZlcndpanNhZHJlcy4KCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KCiAgIEdlbGlldmUgYWFuIGRlIGF1dGV1ciB2YW4KICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPmRlemUgcGFnaW5hPC9hPgogICB0ZSBtZWxkZW4gZGF0IGRlemUgbGluayBuaWV0IGxhbmdlciBhY3R1ZWVsIGlzLgoKICA8IS0tI2Vsc2UgLS0+CgogICBJbmRpZW4gdSBkZXplIGxpbmsgaGVidCBnZWtyZWdlbiB2YW4gZWVuIGFuZGVyZSBwYWdpbmEsIGdlbGlldmUKICAgZGUgYXV0ZXVyIHZhbiBkZXplIHBhZ2luYSB0ZSBjb250YWN0ZXJlbi4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLW5sLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHBsCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTIKQm9keTotLS0tLS0tLS0tcGwtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJwbCIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9Ilphc/NiIHVzdW5p6nR5ISIKLS0+PCEtLSNzZXQgdmFyPSJDSEFSQUNURVJfRU5DT0RJTkciIHZhbHVlPSJJU08tODg1OS0yIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgUG9zenVraXdhbnkgemFz82IgbmllIGplc3QganW/IGRvc3TqcG55IG5hIHR5bSBzZXJ3ZXJ6ZSBpIG5pZQogICAgcG9kYW5vIG5vd2VnbyBhZHJlc3UgemFzb2J1LgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIFByb3NpbXkgcG9pbmZvcm1vd2HmIGF1dG9yYQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnJlZmVydWqxY2VqCiAgICBzdHJvbnk8L2E+IG8gbmllYWt0dWFsbnltIGxpbmt1LgoKICA8IS0tI2Vsc2UgLS0+CgogICAgSmW2bGkgcG9ksb95s2W2IHphIGxpbmtpZW0geiBpbm5laiBzdHJvbnkgc2tvbnRha3R1aiBzaeogeiBqZWoKICAgIGF1dG9yZW0uCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1wbC0tCgpDb250ZW50LWxhbmd1YWdlOiBwdC1icgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLXB0LWJyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0icHQtYnIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJSZWN1cnNvIG4mYXRpbGRlO28gZGlzcG9uJmlhY3V0ZTt2ZWwhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICBBIFVSTCBzb2xpY2l0YWRhIG4mYXRpbGRlO28gZXN0JmFhY3V0ZTsgZGlzcG9uJmlhY3V0ZTt2ZWwgbmVzdGUgc2Vydmlkb3IKICAgZSBuJmF0aWxkZTtvIGV4aXN0ZSB1bSBlbmRlcmUmY2NlZGlsO28gYWx0ZXJuYXRpdm8uCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICBQb3IgZmF2b3IgaW5mb3JtZSBvIGF1dG9yIGRhCiAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5wJmFhY3V0ZTtnaW5hCiAgIHJlZmVyaWRhPC9hPiBxdWUgYSBVUkwgZXN0JmFhY3V0ZTsgZGVzYXR1YWxpemFkYS4KCiAgPCEtLSNlbHNlIC0tPgoKICAgU2Ugdm9jJmVjaXJjOyBzZWd1aXUgdW0gImxpbmsiIGRlIHVtYSBwJmFhY3V0ZTtnaW5hIGV4dGVybmEsIHBvciBmYXZvcgogICBlbnRyZSBlbSBjb250YXRvIGNvbSBvIGF1dG9yIGRlc3RhIHAmYWFjdXRlO2dpbmEgZSBvIGluZm9ybWUgc29icmUgYQogICBtdWRhbiZjY2VkaWw7YSBkbyAibGluayIuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS1wdC1ici0tCgpDb250ZW50LWxhbmd1YWdlOiBybwpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLXJvLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0icm8iCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJSZXN1cnNhIG51IG1haSBlc3RlIGRpc3BvbmliaWxhISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFVSTC11bCBjZXJ1dCBudSBtYWkgZXN0ZSBkaXNwb25pYmlsIHBlIGFjZXN0IHNlcnZlciBzaSBudQogICAgZXhpc3RhIG8gYWRyZXNhIGRlIGluYWludGFyZS4KCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KCiAgICBWYSBydWdhbSBpbmZvcm1hdGkgYXV0b3J1bAogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnBhZ2luaWkKICAgIHJlZmVyaXRlPC9hPiBjYSBsaW5rLXVsIG51IG1haSBlc3RlIGRlIGFjdHVhbGl0YXRlLgoKICA8IS0tI2Vsc2UgLS0+CgogICAgVmEgcnVnYW0gY29udGFjdGF0aSBhdXRvcnVsIGFjZXN0ZWkgcGFnaW5pIGRhY2EgYXRpIHVybWF0CiAgICB1biBsaW5rIGRpbnRyLW8gcGFnaW5hIGV4dGVybmEuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1yby0tCgpDb250ZW50LWxhbmd1YWdlOiBzcgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS01CkJvZHk6LS0tLS0tLS0tLXNyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0ic3IiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iSVNPLTg4NTktNSIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IsDV4ePg4SDd2PjVINLY6NUg1N7h4uPf0N0hIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgt9Dl4tXS0N3YIMPAuyDd2PjVINLY6NUg1N7h4uPf0N0g3dAg3tLe3CDh1eDS1eDjINgg3dXc0AogICAg0NTg1eHVIN3QINre+OMg0djh4tUg3N7T29gg0dji2CDf4N7h29Xy1d3YLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgILze29jc3iDe0dDS1eHi2OLVINDj4t7g0AogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPtjh5d7U2Ojd1QogICAg4eLg0N3Y5tU8L2E+INTQIPjVINLV19Ag19Dh4tDg1dvQLgoKICA8IS0tI2Vsc2UgLS0+CgogICAgsNreIOHi1SDf4NDi2NvYINLV1+Mg4dAg4d/e+d3VIOHi4NDd2ObVLCDc3tvY3N4g3tHQ0tXh4tji1QogICAg0OPi3uDQIOLVIOHi4NDd2ObVLgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tc3ItLQoKQ29udGVudC1sYW5ndWFnZTogc3YKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1zdi0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InN2IgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iUmVzdXJzZW4gaW50ZSBsJmF1bWw7bmdyZSB0aWxsZyZhdW1sO25nbGlnISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIERlbiAmb3VtbDtuc2thZGUgYWRyZXNzZW4gJmF1bWw7ciBpbnRlIGwmYXVtbDtuZ3JlIHRpbGxnJmF1bWw7bmdsaWcgaG9zCiAgICBkZW5uYSBzZXJ2ZXIgb2NoIGRldCBmaW5ucyBpbnRlIG4mYXJpbmc7Z29uIGFkcmVzcyBmJm91bWw7ciB2aWRhcmViZWZvZHJhbi4KCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KCiAgICBWJmF1bWw7bmxpZ2VuIGluZm9ybWVyYSBmJm91bWw7cmZhdHRhcmVuIGJha29tIAogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPmRlbiBha3R1ZWxsYQogICAgc2lkYW48L2E+IGF0dCBsJmF1bWw7bmtlbiAmYXVtbDtyIGluYWt0dWVsbC4KIAogIDwhLS0jZWxzZSAtLT4KCiAgICBPbSBkdSBmJm91bWw7bGpkZSBlbiBsJmF1bWw7bmsgZnImYXJpbmc7biBlbiBleHRlcm4gc2lkYSwgdiZhdW1sO25saWdlbgogICAga29udGFrdGEgZiZvdW1sO3JmYXR0YXJlbiBhdiBkZW4gc2lkYW4uCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1zdi0tCgpDb250ZW50LWxhbmd1YWdlOiB0cgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS05CkJvZHk6LS0tLS0tLS0tLXRyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0idHIiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iSVNPLTg4NTktOSIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IlJlc291cmNlIGlzIG5vIGxvbmdlciBhdmFpbGFibGUhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgVGFsZXAgZXR0aSYjMjg3O2luaXogVVJMIGJ1IHN1bnVjdSD8emVyaW5kZSBiYXImIzMwNTtuZCYjMzA1O3ImIzMwNTtsbSYjMzA1O3lvcgogICAgdmUgaGVyaGFuZ2kgYmlyIHn2bmVsdG1lIGRlIG1ldmN1dCBkZSYjMjg3O2lsLiAgCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CiAgCiAgICBM/HRmZW4KICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5yZWZlcmFucyBzYXlmYW4mIzMwNTtuPC9hPgogICAgeWF6YXImIzMwNTtuYSwgYnUgYmEmIzI4NztsYW50JiMzMDU7biYjMzA1O24gZ/xuY2VsCiAgICBvbG1hZCYjMzA1OyYjMjg3OyYjMzA1O24mIzMwNTsgYmlsZGlyaW4uCiAgIAogIDwhLS0jZWxzZSAtLT4KICAKICAgIFlhYmFuYyYjMzA1OyBiaXIgc2F5ZmFkYW4gYnUgYmEmIzI4NztsYW50JiMzMDU7eSYjMzA1OyBpemxlZGl5c2VuaXosCiAgICBs/HRmZW4gc/Z6a29udXN1IHNheWZhbiYjMzA1O24geWF6YXImIzMwNTsgaWxlIGlsZXRpJiMzNTE7aW1lIGdl52luLgogICAKICA8IS0tI2VuZGlmIC0tPgogIAo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+IAotLS0tLS0tLS0tdHItLQo=