8.9 KiB
IyBMWEMgRW5yb2xsbWVudAoKSW50ZXJha3RpdmVzIFNrcmlwdCBmdWVyIGVpbmVuICoqUHJveG1veC1Ib3N0KiouIEVzIGluc3RhbGxpZXJ0IGZlaGxlbmRlIFRhaWxzY2FsZS0KdW5kIFdhenVoLUtvbXBvbmVudGVuIGluIGF1c2dld2FlaGx0ZW4gTFhDcywgdmVyYmluZGV0IG5ldWUgVGFpbHNjYWxlLUNsaWVudHMgbWl0CkhlYWRzY2FsZSB1bmQga2FubiAqKlRhaWxzY2FsZSBTU0gqKiBzYW10IExpbnV4LU51dHplciB1bmQgU3VkbyBlaW5yaWNodGVuLgoKIyMgU3RhcnRlbgoKQWxzIHJvb3QgYXVmIGRlbSBQcm94bW94LUhvc3QsIG5pY2h0IGlubmVyaGFsYiBlaW5lcyBMWEM6CgpgYGBiYXNoCmN1cmwgLS1mYWlsIC0tc2lsZW50IC0tc2hvdy1lcnJvciAtLWxvY2F0aW9uIFwKICBodHRwczovL2NvZGUuZmFib2kuY2xvdWQvZmFiaW8vbHhjLWVucm9sbC9yYXcvYnJhbmNoL21haW4vbHhjLWVucm9sbC5zaCBcCiAgLW8gL3J1bi9seGMtZW5yb2xsLnNoICYmIGJhc2ggL3J1bi9seGMtZW5yb2xsLnNoCmBgYAoKQWx0ZXJuYXRpdiBoZXJ1bnRlcmxhZGVuIHVuZCB6dWVyc3QgZGllIEF1c3dhaGwgcHJ1ZWZlbjoKCmBgYGJhc2gKY3VybCAtLWZhaWwgLS1zaWxlbnQgLS1zaG93LWVycm9yIC0tbG9jYXRpb24gXAogIGh0dHBzOi8vY29kZS5mYWJvaS5jbG91ZC9mYWJpby9seGMtZW5yb2xsL3Jhdy9icmFuY2gvbWFpbi9seGMtZW5yb2xsLnNoIFwKICAtbyAvcnVuL2x4Yy1lbnJvbGwuc2gKYmFzaCAvcnVuL2x4Yy1lbnJvbGwuc2ggLS1saXN0CmJhc2ggL3J1bi9seGMtZW5yb2xsLnNoCmBgYAoKYC0tbGlzdGAgbGllc3QgbnVyIGRlbiBha3R1ZWxsZW4gQmVzdGFuZDsgYC0tZHJ5LXJ1bmAgemVpZ3QgbmFjaCBkZXIgQXVzd2FobCBkaWUKZ2VwbGFudGVuIEFlbmRlcnVuZ2VuLiBCZWlkZSBpbnN0YWxsaWVyZW4gbmljaHRzLCBzdGFydGVuIG5pY2h0cyBuZXUgdW5kIHNwZWljaGVybgprZWluZSBFaW5zdGVsbHVuZ2VuLiBGdWVyIGludGVyYWt0aXZlIEVpbmdhYmVuIG11c3MgZWluIFRlcm1pbmFsIHZvcmhhbmRlbiBzZWluOwpkaWUgRWluZ2FiZW4gd2VyZGVuIHVlYmVyIGAvZGV2L3R0eWAgZ2VsZXNlbiwgYXVjaCBiZWltIFN0YXJ0IHBlciBjdXJsLgoKIyMgQWJsYXVmCgoxLiBMYXVmZW5kZSBEZWJpYW4tL1VidW50dS1MWENzIG1pdCBzeXN0ZW1kIGVya2VubmVuLiBHZXN0b3BwdGUsIGdlc3BlcnJ0ZSB1bmQKICAgbmljaHQgdW50ZXJzdHVldHp0ZSBDb250YWluZXIgd2VyZGVuIHVlYmVyc3BydW5nZW4uCjIuIFZvbGxzdGFlbmRpZyBpbnN0YWxsaWVydGUgQ29udGFpbmVyIGF1cyBkZXIgQXVzd2FobCBhdXNibGVuZGVuLiBCZWkgdGVpbHdlaXNlCiAgIGluc3RhbGxpZXJ0ZW4gQ29udGFpbmVybiBudXIgZGllIGZlaGxlbmRlIEtvbXBvbmVudGUgaW5zdGFsbGllcmVuLgozLiBWb3JoZXJpZ2UgRWluc3RlbGx1bmdlbiBhdWYgV3Vuc2NoIGxhZGVuLiBUYWlsc2NhbGUgU1NIIGlzdCBiZWltIGVyc3RlbiBMYXVmCiAgIHN0YW5kYXJkbWFlc3NpZyBha3RpdmllcnQuIExpbnV4LU51dHplcm5hbWUsIFN1ZG8gdW5kIG9wdGlvbmFsIHBhc3N3b3J0bG9zZXMKICAgU3VkbyB3ZXJkZW4gYWJnZWZyYWd0LiBFcyB3aXJkIGtlaW4gT3BlblNTSC1TZXJ2ZXIgaW5zdGFsbGllcnQuCjQuIENUSURzIGF1c3dhZWhsZW4uIE51ciBkaWVzZSBDb250YWluZXIgd2VyZGVuIGJlYXJiZWl0ZXQuCjUuIFdhenVoLU1hbmFnZXItQWRyZXNzZSB1bmQgSGVhZHNjYWxlLUhUVFBTLVVSTCBhYmZyYWdlbi4gRmFsbHMgZ2VuYXUgZWluIGxhdWZlbmRlcgogICBsb2thbGVyIFdhenVoLU1hbmFnZXIgZ2VmdW5kZW4gd2lyZCwgZGVzc2VuIFBha2V0dmVyc2lvbiBhdXRvbWF0aXNjaCB2ZXJ3ZW5kZW47CiAgIGFuZGVybmZhbGxzIGRpZSBleGFrdGUgTWFuYWdlci1QYWtldHZlcnNpb24gYWJmcmFnZW4uCjYuIEluc3RhbGxhdGlvbiBtaXQgYElOU1RBTExgIGJlc3RhZXRpZ2VuLiBGZWhsZW5kZXIgVFVOLVp1Z3JpZmYgd2lyZCBzZXBhcmF0CiAgIGF1ZmdlbGlzdGV0OyBlcnN0IG5hY2ggRWluZ2FiZSB2b24gYE5FVVNUQVJUYCB3ZXJkZW4gZGllc2UgQ29udGFpbmVyIHNhdWJlcgogICBoZXJ1bnRlcmdlZmFocmVuIHVuZCBuZXUgZ2VzdGFydGV0LiBCZXN0ZWhlbmRlIERldmljZS1TbG90cyBibGVpYmVuIGVyaGFsdGVuLgo3LiBIZWFkc2NhbGUtUHJlYXV0aC1LZXkgdmVyZGVja3QgYWJmcmFnZW4uIEZ1ZXIgbWVocmVyZSBuZXVlIENsaWVudHMgZWluZW4KICAgKip3aWVkZXJ2ZXJ3ZW5kYmFyZW4sIGt1cnogZ3VlbHRpZ2VuLCBuaWNodC1lcGhlbWVyZW4gS2V5KiogdmVyd2VuZGVuLiBLZWluCiAgIEhlYWRzY2FsZS1BUEktS2V5LiBPcHRpb25hbGVzIFdhenVoLUVucm9sbG1lbnQtUGFzc3dvcnQgZWJlbmZhbGxzIHZlcmRlY2t0CiAgIGVpbmdlYmVuLCBmYWxscyBkZXIgTWFuYWdlciBlcyB2ZXJsYW5ndC4KOC4gRmVobGVuZGUgUGFrZXRlIGF1cyBzaWduaWVydGVuIG9mZml6aWVsbGVuIEFQVC1RdWVsbGVuIGluc3RhbGxpZXJlbiB1bmQgZGllCiAgIFZlcmJpbmR1bmdlbiBuZXVlciBDbGllbnRzIHBydWVmZW4uIEZlaGxlciB3ZXJkZW4gcHJvIExYQyBhdXNnZXdpZXNlbi4KCiMjIFRhaWxzY2FsZSBTU0ggdW5kIFN1ZG8KCkRhcyBTa3JpcHQgbGVndCBkZW4gZ2V3YWVobHRlbiBMaW51eC1OdXR6ZXIgYmVpIEJlZGFyZiBhbiB1bmQgYWt0aXZpZXJ0CmB0YWlsc2NhbGUgc2V0IC0tc3NoPXRydWVgLiBWb3JoYW5kZW5lIE51dHplciB3ZXJkZW4gbmljaHQgZ2Vsb2VzY2h0IHVuZCB2b3JoYW5kZW5lClBhc3N3b2VydGVyIG5pY2h0IGVyc2V0enQuIEJlaSBXYWhsIHZvbiBTdWRvIHdpcmQgZGVyIE51dHplciB6dXIgR3J1cHBlIGBzdWRvYApoaW56dWdlZnVlZ3QuIEZ1ZXIgKipuZXUgYW5nZWxlZ3RlKiogTnV0emVyIG1pdCBwYXNzd29ydHBmbGljaHRpZ2VtIFN1ZG8gd2lyZCBlaW4KUGFzc3dvcnQgdmVyZGVja3QgYWJnZWZyYWd0LiBBbHRlcm5hdGl2IGthbm4gZXhwbGl6aXQgcGFzc3dvcnRsb3NlcyBTdWRvIGVybGF1YnQKd2VyZGVuLiBEaWUgQXVzd2FobCDigJ5rZWluIFN1ZG/igJwgZW50emllaHQga2VpbmVtIGJlc3RlaGVuZGVuIE51dHplciBSZWNodGUuCgpEYW1pdCBkaWUgQW5tZWxkdW5nIGZ1bmt0aW9uaWVydCwgbXVzcyBkaWUgKipha3RpdmUgSGVhZHNjYWxlLVBvbGljeSBzb3dvaGwgZGllCk5ldHp3ZXJrdmVyYmluZHVuZyBhdWYgUG9ydCAyMiBhbHMgYXVjaCBlaW5lIHBhc3NlbmRlIFNTSC1SZWdlbCoqIGZ1ZXIgUXVlbGxlLApaaWVsIHVuZCBMaW51eC1OdXR6ZXIgZXJsYXViZW4uIERhcyBTa3JpcHQgYWVuZGVydCBkaWUgemVudHJhbGUgUG9saWN5IG5pY2h0IHVuZAprYW5uIG9obmUgZWluZW4gZWNodGVuIExvZ2ludmVyc3VjaCBrZWluZSBTU0gtQW5tZWxkdW5nIGJlc3RhZXRpZ2VuLiBCZWkKSGVhZHNjYWxlIHdpcmQgbm9ybWFsZXJ3ZWlzZSBlaW5lIHBhc3NlbmRlIFNTSC1SZWdlbCBtaXQgYGFjdGlvbjogYWNjZXB0YAp2ZXJ3ZW5kZXQ7IGRpZSBSZWdlbCBtdXNzIHp1IGRlbiB0YXRzYWVjaGxpY2hlbiBCZW51dHplcm4gdW5kIFRhZ3MgcGFzc2VuLgoKTmFjaCBFaW5yaWNodHVuZyB2b24gZWluZW0genVnZWxhc3NlbmVuIEdlcmFldCB0ZXN0ZW46CgpgYGBiYXNoCnNzaCBMSU5VWF9OVVRaRVJAVEFJTFNDQUxFX0lQCmBgYAoKQmVpbSBBa3RpdmllcmVuIGtvZW5uZW4gdm9yaGFuZGVuZSBTU0gtU2l0enVuZ2VuIHVlYmVyIGRpZSBUYWlsc2NhbGUtQWRyZXNzZQp1bnRlcmJyb2NoZW4gd2VyZGVuLiBEaWUgQ29udGFpbmVya29uc29sZSBibGVpYnQgZGVyIFp1Z2FuZyBmdWVyIGRpZXNlbiBMYXVmLgpXZWRlciBTdWJuZXQtUm91dGluZyBub2NoIEV4aXQtTm9kZSwgVGFpbHNjYWxlLU9wZXJhdG9yIG9kZXIgcHJpdmlsZWdpZXJ0ZQpDb250YWluZXIgd2VyZGVuIGVpbmdlcmljaHRldC4gTmV1ZSBDbGllbnRzIHZlcndlbmRlbiBgLS1hY2NlcHQtZG5zPWZhbHNlYCwgdW0KYmVzdGVoZW5kZXMgbG9rYWxlcyBETlMgYmVpenViZWhhbHRlbi4KCiMjIEdlc3BlaWNoZXJ0ZSBFaW5zdGVsbHVuZ2VuCgpBdWYgV3Vuc2NoIHNwZWljaGVydCBkYXMgU2tyaXB0ICoqbnVyIGF1ZiBkZW0gUHJveG1veC1Ib3N0Kio6CgpgYGB0ZXh0Ci9ldGMvbHhjLWVucm9sbC8udmFycwpgYGAKCkRpZXNlIERhdGVpIGlzdCBKU09OLCBrZWluIGF1c2Z1ZWhyYmFyZXMgU2hlbGxza3JpcHQuIFZlcnplaWNobmlzcmVjaHRlIDcwMCwKRGF0ZWlyZWNodGUgNjAwLCBFaWdlbnR1ZW1lciByb290LiBHZXNwZWljaGVydCB3ZXJkZW4gTWFuYWdlci1BZHJlc3NlLApBZ2VudC1QYWtldHZlcnNpb24sIEhlYWRzY2FsZS1VUkwsIFRhaWxzY2FsZS1TU0gtQXVzd2FobCwgTnV0emVybmFtZSB1bmQKU3Vkby1FaW5zdGVsbHVuZ2VuLiBEaWUgQ1QtQXVzd2FobCB3aXJkIGplZGVzIE1hbCBuZXUgZ2V0cm9mZmVuLiBIZWFkc2NhbGUtS2V5cywKRW5yb2xsbWVudC0gdW5kIE51dHplcnBhc3N3b2VydGVyIHdlcmRlbiAqKm5pY2h0KiogZ2VzcGVpY2hlcnQuIFNpZSB3ZXJkZW4gYmVpCkJlZGFyZiBlcm5ldXQgYWJnZWZyYWd0LCBpbiB0ZW1wb3JhZXJlbiBEYXRlaWVuIG1pdCBNb2R1cyA2MDAgdWViZXJ0cmFnZW4gdW5kCmJlaSByZWd1bGFlcmVtIEVuZGUgb2RlciBhYmdlZmFuZ2VuZW0gQWJicnVjaCBlbnRmZXJudC4gRWluIGhhcnRlciBQcm96ZXNzYWJicnVjaAprYW5uIHRlbXBvcmFlcmUgRGF0ZWllbiBpbiBgL3J1bi9seGMtZW5yb2xsLipgIGhpbnRlcmxhc3NlbjsgZGFubiBlbnRmZXJuZW4uCgojIyBHcmVuemVuIHVuZCBXYXJ0dW5nCgotIFVudGVyc3R1ZXR6dCBuYXRpdmUgQVBULS9zeXN0ZW1kLUluc3RhbGxhdGlvbmVuIGluIERlYmlhbiB1bmQgVWJ1bnR1LiBBbHBpbmUsCiAgVk1zLCB3ZWl0ZXJlIEhvc3RzIHVuZCBnZXN0b3BwdGUgQ29udGFpbmVyIHNpbmQgbmljaHQgZW50aGFsdGVuLgotIERlciBQcm94bW94LUhvc3Qgc2VsYnN0IGJla29tbXQgZHVyY2ggZGllc2VzIFNrcmlwdCBrZWluZW4gV2F6dWgtQWdlbnQuCi0gVm9yaGFuZGVuZSBUYWlsc2NhbGUtL1dhenVoLVJlZ2lzdHJpZXJ1bmdlbiB3ZXJkZW4gbmljaHQgdmVyYWVuZGVydC4gQmVyZWl0cwogIGluc3RhbGxpZXJ0ZSwgYWJlciBuaWNodCB2ZXJidW5kZW5lIERpZW5zdGUgbXVlc3NlbiBzZXBhcmF0IHJlcGFyaWVydCB3ZXJkZW4uCiAgRWluIGZlaGxnZXNjaGxhZ2VuZXIgRW5yb2xsbWVudC1WZXJzdWNoIGthbm4gZGVzaGFsYiBtYW51ZWxsZSBSZXBhcmF0dXIgYnJhdWNoZW4uCi0gRWluIFdhenVoLU1hbmFnZXItTFhDIGJla29tbXQgbmllbWFscyB6dXNhZXR6bGljaCBlaW5lbiBXYXp1aC1BZ2VudDsgZXMga2FubgogIGJlaSBmZWhsZW5kZW0gVGFpbHNjYWxlIGZ1ZXIgZGllIFRhaWxzY2FsZS1FaW5yaWNodHVuZyBhdXNnZXdhZWhsdCB3ZXJkZW4uCi0gRGllIE1hbmFnZXItQWRyZXNzZSBtdXNzIHZvbiBkZW4gamV3ZWlsaWdlbiBMWENzIGF1ZiBUQ1AgMTUxNCB1bmQgMTUxNQogIGVycmVpY2hiYXIgc2Vpbi4gRWluZSBIZWFkc2NhbGUtVVJMIGlzdCBuaWNodCBhdXRvbWF0aXNjaCBkaWUgTWFuYWdlci1BZHJlc3NlLgotIE5ldWUgV2F6dWgtQWdlbnRzIHdlcmRlbiBhdWYgZGllIE1hbmFnZXItUGFrZXR2ZXJzaW9uIGluc3RhbGxpZXJ0IHVuZCBkYW5hY2gKICBhdWYgYGhvbGRgIGdlc2V0enQsIGRhbWl0IHNpZSBkZW4gTWFuYWdlciBuaWNodCBkdXJjaCBlaW4gZWlnZW5zdGFlbmRpZ2VzCiAgVXBncmFkZSB1ZWJlcmhvbGVuLiBCZWkgTWFuYWdlci1VcGdyYWRlcyBkaWUgQWdlbnRzIGJld3Vzc3QgbWl0IGFrdHVhbGlzaWVyZW4uCi0gQ29udGFpbmVya29uZmlndXJhdGlvbmVuIHdlcmRlbiB2b3IgVFVOLUVyZ2Flbnp1bmdlbiB1bnRlcgogIGAvdmFyL2JhY2t1cHMvbHhjLWVucm9sbC9gIGdlc2ljaGVydC4gRWluIGZlaGxnZXNjaGxhZ2VuZXIgc2F1YmVyZXIgU2h1dGRvd24KICB3aXJkIG5pY2h0IGR1cmNoIGdld2FsdHNhbWVzIFN0b3BwZW4gZXJ6d3VuZ2VuLiBJbnN0YWxsYXRpb25lbiBzaW5kIG5pY2h0CiAgdHJhbnNha3Rpb25hbDsgZXJmb2xncmVpY2hlIFRlaWxzY2hyaXR0ZSBibGVpYmVuIGJlaSBlaW5lbSBzcGFldGVyZW4gRmVobGVyLgotIEVucm9sbG1lbnQgYWxsZWluIGtvbmZpZ3VyaWVydCBrZWluZSBEaXNjb3JkLVNpY2hlcmhlaXRzcmVnZWxuIHVuZCBnYXJhbnRpZXJ0CiAga2VpbmUgRXJrZW5udW5nIGFsbGVyIEFuZ3JpZmZlIG9kZXIgQXBwLS9LZXJuZWwtU2Nod2FjaHN0ZWxsZW4uCgojIyBRdWVsbGVuIHVuZCBQcnVlZnVuZwoKLSBbV2F6dWggTGludXgtRGVwbG95bWVudCB1bmQgVmVyc2lvbnNrb21wYXRpYmlsaXRhZXRdKGh0dHBzOi8vZG9jdW1lbnRhdGlvbi53YXp1aC5jb20vY3VycmVudC9pbnN0YWxsYXRpb24tZ3VpZGUvd2F6dWgtYWdlbnQvd2F6dWgtYWdlbnQtcGFja2FnZS1saW51eC5odG1sKQotIFtUYWlsc2NhbGUgaW4gUHJveG1veC1MWENzXShodHRwczovL3RhaWxzY2FsZS5jb20va2IvMTEzMC9seGMtdW5wcml2aWxlZ2VkLykKLSBbSGVhZHNjYWxlLVJlZ2lzdHJpZXJ1bmddKGh0dHBzOi8vaGVhZHNjYWxlLm5ldC9zdGFibGUvcmVmL3JlZ2lzdHJhdGlvbi8pCi0gW1RhaWxzY2FsZSBTU0ggdW5kIFp1Z3JpZmZzcmVnZWxuXShodHRwczovL3RhaWxzY2FsZS5jb20vZG9jcy9mZWF0dXJlcy90YWlsc2NhbGUtc3NoKQoKU3ludGF4IHVuZCBzaW11bGllcnRlIEF1c3dhaGwtL0luc3RhbGxhdGlvbnNhYmxhZXVmZSBzaW5kIGxva2FsIGdlcHJ1ZWZ0LgpFaW4gZWNodGVyIFByb3htb3gtTGF1ZiB1bmQgZWluZSBlY2h0ZSBUYWlsc2NhbGUtU1NILUFubWVsZHVuZyBzdGVoZW4gbm9jaCBhdXMuCg==