From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Dmitry Butskoy To: git-commits@fedoraproject.org Subject: [rpms/seamonkey] rawhide: Update to 2.53.24 Date: Thu, 30 Jul 2026 20:15:48 GMT Message-ID: <178544254803.1.4394941252196231857.rpms-seamonkey-a4afc6150ee7@fedoraproject.org> List-ID: X-Git-Repo: rpms/seamonkey X-Git-Branch: rawhide X-Git-Rev: a4afc6150ee70af83164fa44f8edf33dfd926308 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc2VhbW9ua2V5CkJy YW5jaCA6IHJhd2hpZGUKQ29tbWl0IDogYTRhZmM2MTUwZWU3MGFmODMxNjRmYTQ0ZjhlZGYzM2Rm ZDkyNjMwOApBdXRob3IgOiBEbWl0cnkgQnV0c2tveSA8ZG1pdHJ5QGJ1dHNrb3kubmFtZT4KRGF0 ZSAgIDogMjAyNi0wNy0zMFQyMzoxNToyNSswMzowMApTdGF0cyAgOiArMjkyOTAvLTI0NDA2IGlu IDggZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3Nl YW1vbmtleS9jL2E0YWZjNjE1MGVlNzBhZjgzMTY0ZmE0NGY4ZWRmMzNkZmQ5MjYzMDg/YnJhbmNo PXJhd2hpZGUKCkxvZzoKVXBkYXRlIHRvIDIuNTMuMjQKCi0tLQpkaWZmIC0tZ2l0IGEvc2VhbW9u a2V5LTIuNTMuMjItbW96aWxsYS0xODgyMjA5LnBhdGNoIGIvc2VhbW9ua2V5LTIuNTMuMjItbW96 aWxsYS0xODgyMjA5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOGM3MjNm Li4wMDAwMDAwCi0tLSBhL3NlYW1vbmtleS0yLjUzLjIyLW1vemlsbGEtMTg4MjIwOS5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDI0Mzk2ICswLDAgQEAKLWRpZmYgLU5yYnUgYS8uY2FyZ28vY29u ZmlnLmluIGIvLmNhcmdvL2NvbmZpZy5pbgotLS0tIGEvLmNhcmdvL2NvbmZpZy5pbgkyMDI1LTA5 LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvLmNhcmdvL2NvbmZpZy5pbgkyMDI1 LTA5LTE3IDE3OjU4OjUzLjM3NDUyNjIwMSArMDMwMAotQEAgLTcsMTAgKzcsMTAgQEAKLSBicmFu Y2ggPSAiZGVzZXJpYWxpemVfZnJvbV9lbnVtczgiCi0gcmVwbGFjZS13aXRoID0gInZlbmRvcmVk LXNvdXJjZXMiCi0gCi0tW3NvdXJjZS4iaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL3BhY2tl ZF9zaW1kIl0KLS1naXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1k IgotK1tzb3VyY2UuImdpdCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3Jr YXJvdW5kP3Jldj03ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIl0KLStn aXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZCIKLSty ZXYgPSAiN2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCIKLSByZXBsYWNl LXdpdGggPSAidmVuZG9yZWQtc291cmNlcyIKLS1yZXYgPSAiZTU4OGNlYjU2ODg3OGUxYTMxNTZl YTljZTU1MWQ1YjYzZWYwY2RjNCIKLSAKLSBbc291cmNlLnZlbmRvcmVkLXNvdXJjZXNdCi0gZGly ZWN0b3J5ID0gJ0B0b3Bfc3JjZGlyQC90aGlyZF9wYXJ0eS9ydXN0JwotZGlmZiAtTnJidSBhL0Nh cmdvLmxvY2sgYi9DYXJnby5sb2NrCi0tLS0gYS9DYXJnby5sb2NrCTIwMjUtMDktMDcgMTQ6MzA6 MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi9DYXJnby5sb2NrCTIwMjUtMDktMTcgMTg6MDA6NDMu MjA5MzIxOTgwICswMzAwCi1AQCAtMjEsNiArMjEsMTUgQEAKLSBdCi0gCi0gW1twYWNrYWdlXV0K LStuYW1lID0gImFueV9hbGxfd29ya2Fyb3VuZCIKLSt2ZXJzaW9uID0gIjAuMS4wIgotK3NvdXJj ZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZD9y ZXY9N2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCM3ZmIxYjcwMzRjOWYx NzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIgotK2RlcGVuZGVuY2llcyA9IFsKLSsgImNmZy1p ZiAxLjAuMCIsCi0rICJ2ZXJzaW9uX2NoZWNrIiwKLStdCi0rCi0rW1twYWNrYWdlXV0KLSBuYW1l ID0gImFwcF91bml0cyIKLSB2ZXJzaW9uID0gIjAuNy4wIgotIHNvdXJjZSA9ICJyZWdpc3RyeSto dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLUBAIC02MDgsMTIg KzYxNywxMiBAQAotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJlbmNvZGluZ19ycyIKLS12ZXJz aW9uID0gIjAuOC4zMyIKLSt2ZXJzaW9uID0gIjAuOC4zNCIKLSBzb3VyY2UgPSAicmVnaXN0cnkr aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0g PSAiNzI2OGIzODYyOTZhMDI1ZTQ3NGQ1MTQwNjc4Zjc1ZDZkZTk0OTNhZTU1YTVkNzA5ZWViOWRk MDgxNDk5NDVlMSIKLStjaGVja3N1bSA9ICJiNDVkZTkwNGFhMGIwMTBiY2UyYWI0NTI2NGQwNjMx NjgxODQ3ZmE3YjZmMmVhYTdkYWI3NjE5OTQzYmM0ZjU5IgotIGRlcGVuZGVuY2llcyA9IFsKLSsg ImFueV9hbGxfd29ya2Fyb3VuZCIsCi0gICJjZmctaWYgMS4wLjAiLAotLSAicGFja2VkX3NpbWQi LAotIF0KLSAKLSBbW3BhY2thZ2VdXQotQEAgLTEzMDYsMTUgKzEzMTUsNiBAQAotIF0KLSAKLSBb W3BhY2thZ2VdXQotLW5hbWUgPSAicGFja2VkX3NpbWQiCi0tdmVyc2lvbiA9ICIwLjMuOSIKLS1z b3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZD9yZXY9 ZTU4OGNlYjU2ODg3OGUxYTMxNTZlYTljZTU1MWQ1YjYzZWYwY2RjNCNlNTg4Y2ViNTY4ODc4ZTFh MzE1NmVhOWNlNTUxZDViNjNlZjBjZGM0IgotLWRlcGVuZGVuY2llcyA9IFsKLS0gImNmZy1pZiAx LjAuMCIsCi0tICJudW0tdHJhaXRzIDAuMi4xNSIsCi0tXQotLQotLVtbcGFja2FnZV1dCi0gbmFt ZSA9ICJwYXJraW5nX2xvdCIKLSB2ZXJzaW9uID0gIjAuNi4zIgotIHNvdXJjZSA9ICJyZWdpc3Ry eStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLUBAIC0yMjQw LDYgKzIyNDAsMTIgQEAKLSBjaGVja3N1bSA9ICI4ODdiNWI2MzFjMmFkMDE2MjhiYmJhYTdkZDRj ODY5ZjgwZDMxODY2ODhmOGQwYjZmNTg3NzRmYmUzMjQ5ODhjIgotIAotIFtbcGFja2FnZV1dCi0r bmFtZSA9ICJ2ZXJzaW9uX2NoZWNrIgotK3ZlcnNpb24gPSAiMC45LjQiCi0rc291cmNlID0gInJl Z2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotK2No ZWNrc3VtID0gIjQ5ODc0YjUxNjdiNjVkNzE5M2I4YWJhMTU2N2Y1YzdkOTNkMDAxY2FmYzM0NjAw Y2VlMDAzZWRhNzg3ZTQ4M2YiCi0rCi0rW1twYWNrYWdlXV0KLSBuYW1lID0gInZvaWQiCi0gdmVy c2lvbiA9ICIxLjAuMiIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi1kaWZmIC1OcmJ1IGEvQ2FyZ28udG9tbCBiL0Nhcmdv LnRvbWwKLS0tLSBhL0NhcmdvLnRvbWwJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL0NhcmdvLnRvbWwJMjAyNS0wOS0xNyAxODowMjoyMy43MDQ0NzUyNDYgKzAzMDAK LUBAIC01Myw0ICs1Myw0IEBACi0gW3BhdGNoLmNyYXRlcy1pb10KLSBsaWJ1ZGV2LXN5cyA9IHsg cGF0aCA9ICJkb20vd2ViYXV0aG4vbGlidWRldi1zeXMiIH0KLSBzZXJkZV9kZXJpdmUgPSB7IGdp dCA9ICJodHRwczovL2dpdGh1Yi5jb20vc2Vydm8vc2VyZGUiLCBicmFuY2ggPSAiZGVzZXJpYWxp emVfZnJvbV9lbnVtczgiIH0KLS1wYWNrZWRfc2ltZCA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0aHVi LmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZCIsIHJldiA9ICJlNTg4Y2ViNTY4ODc4ZTFhMzE1NmVh OWNlNTUxZDViNjNlZjBjZGM0IiB9Ci0rYW55X2FsbF93b3JrYXJvdW5kID0geyBnaXQgPSAiaHR0 cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZCIsIHJldiA9ICI3ZmIx YjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIiB9Ci1kaWZmIC1OcmJ1IGEvY29u ZmlnL21ha2VmaWxlcy9ydXN0Lm1rIGIvY29uZmlnL21ha2VmaWxlcy9ydXN0Lm1rCi0tLS0gYS9j b25maWcvbWFrZWZpbGVzL3J1c3QubWsJMjAyNS0wNC0yMCAxOToyODowMS4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL2NvbmZpZy9tYWtlZmlsZXMvcnVzdC5tawkyMDI1LTA5LTE3IDE3OjQxOjIxLjEz NzgwNTA0NiArMDMwMAotQEAgLTY2LDcgKzY2LDcgQEAKLSAjIFJVU1RDX0JPT1RTVFJBUCA6PSBn a3J1c3Rfc2hhcmVkLHFjbXMgZm9yIGxhdGVyCi0gUlVTVENfQk9PVFNUUkFQIDo9IGdrcnVzdF9z aGFyZWQKLSBpZmRlZiBNT1pfUlVTVF9TSU1ECi0tUlVTVENfQk9PVFNUUkFQIDo9ICQoUlVTVENf Qk9PVFNUUkFQKSxlbmNvZGluZ19ycyxwYWNrZWRfc2ltZAotK1JVU1RDX0JPT1RTVFJBUCA6PSAk KFJVU1RDX0JPT1RTVFJBUCksZW5jb2RpbmdfcnMsYW55X2FsbF93b3JrYXJvdW5kCi0gZW5kaWYK LSBleHBvcnQgUlVTVENfQk9PVFNUUkFQCi0gZW5kaWYKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC8uY2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3Bh cnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kLy5jYXJnby1jaGVja3N1bS5qc29uCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC8uY2FyZ28tY2hlY2tzdW0uanNvbgkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9hbnlfYWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24JMjAyNS0wOS0xNyAxNzo0 MToyMS4xMzc4MDUwNDYgKzAzMDAKLUBAIC0wLDAgKzEgQEAKLSt7ImZpbGVzIjp7IkNhcmdvLnRv bWwiOiJmOGMxMjc0NDlkYzk0MzJkNDA0YzIxYzk5ODMzZTQ2MTdhYjg4YTc5NzQ0NWFmMjQ5YTdm ZTNjOTg5OTg1ZDZkIiwiTElDRU5TRS1BUEFDSEUiOiJhNjBlZWE4MTc1MTQ1MzE2NjhkN2UwMDc2 NTczMTQ0OWZlMTRkMDU5ZDMyNDllMGJjOTNiMzZkZTQ1Zjc1OWYyIiwiTElDRU5TRS1NSVQiOiI2 NDg1YjhlZDMxMGQzZjAzNDBiZjFhZDFmNDc2NDUwNjljZTQwNjlkY2M2YmI0NmM3ZDVjNmZhZjQx ZGUxZmRiIiwiTElDRU5TRS1NSVQtUUNNUyI6IjM2ZDg0N2FlODgyZjY1NzRlYmM3MmY1NmE0ZjM1 NGU0ZjEwNGZkZTRhNTg0MzczNDk2NDgyZTk3ZDUyZDMxYmMiLCJSRUFETUUubWQiOiI0YzYxN2I4 Y2VkM2EyN2I3ZWRlY2YwZTVlNDFlZDQ1MWMwNGU4OGRhYjUyOWU3YTM1ZmNjYzRlMTU1MWVmYmQ3 IiwiYnVpbGQucnMiOiI1NmIyOWFiNmRhM2U0OTA3NWJmZDBhN2I2OTAyNjdjODAxNjI5OGJmMGQz MzJlMmU2OGJiYWYxOWRlY2JiZjcxIiwic3JjL2xpYi5ycyI6IjcxMTgxMDY2OTBiOWQyNWM1ZDBh M2UyMDc5ZmViODNkNzZmMWQ0MzRkMGRhMzZiOWQwMzUxODA2ZDI3Yzg1MGQifSwicGFja2FnZSI6 bnVsbH0KLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0NhcmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0 L2FueV9hbGxfd29ya2Fyb3VuZC9DYXJnby50b21sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2Fu eV9hbGxfd29ya2Fyb3VuZC9DYXJnby50b21sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9DYXJnby50 b21sCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM3ODA1MDQ2ICswMzAwCi1AQCAtMCwwICsxLDI4IEBA Ci0rIyBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQgQlkgQ0FSR08KLSsjCi0r IyBXaGVuIHVwbG9hZGluZyBjcmF0ZXMgdG8gdGhlIHJlZ2lzdHJ5IENhcmdvIHdpbGwgYXV0b21h dGljYWxseQotKyMgIm5vcm1hbGl6ZSIgQ2FyZ28udG9tbCBmaWxlcyBmb3IgbWF4aW1hbCBjb21w YXRpYmlsaXR5Ci0rIyB3aXRoIGFsbCB2ZXJzaW9ucyBvZiBDYXJnbyBhbmQgYWxzbyByZXdyaXRl IGBwYXRoYCBkZXBlbmRlbmNpZXMKLSsjIHRvIHJlZ2lzdHJ5IChlLmcuLCBjcmF0ZXMuaW8pIGRl cGVuZGVuY2llcy4KLSsjCi0rIyBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxlIGJlIGF3YXJl IHRoYXQgdGhlIG9yaWdpbmFsIENhcmdvLnRvbWwKLSsjIHdpbGwgbGlrZWx5IGxvb2sgdmVyeSBk aWZmZXJlbnQgKGFuZCBtdWNoIG1vcmUgcmVhc29uYWJsZSkuCi0rIyBTZWUgQ2FyZ28udG9tbC5v cmlnIGZvciB0aGUgb3JpZ2luYWwgY29udGVudHMuCi0rCi0rW3BhY2thZ2VdCi0rZWRpdGlvbiA9 ICIyMDIxIgotK25hbWUgPSAiYW55X2FsbF93b3JrYXJvdW5kIgotK3ZlcnNpb24gPSAiMC4xLjAi Ci0rYXV0aG9ycyA9IFsiSGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4uZmk+Il0KLStk ZXNjcmlwdGlvbiA9ICJXb3JrYXJvdW5kIGZvciBiYWQgTExWTSBjb2RlZ2VuIGZvciBib29sZWFu IHJlZHVjdGlvbnMgb24gMzItYml0IEFSTSIKLStob21lcGFnZSA9ICJodHRwczovL2RvY3MucnMv YW55X2FsbF93b3JrYXJvdW5kLyIKLStkb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy9h bnlfYWxsX3dvcmthcm91bmQvIgotK3JlYWRtZSA9ICJSRUFETUUubWQiCi0rbGljZW5zZSA9ICJN SVQgT1IgQXBhY2hlLTIuMCIKLStyZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2 b25lbi9hbnlfYWxsX3dvcmthcm91bmQiCi0rCi0rW2RlcGVuZGVuY2llc10KLStjZmctaWYgPSAi MS4wIgotKwotK1tidWlsZC1kZXBlbmRlbmNpZXNdCi0rdmVyc2lvbl9jaGVjayA9ICIwLjkiCi1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1B UEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLUFQQUNI RQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1BUEFD SEUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hFCTIwMjUtMDktMTcgMTc6NDE6 MjEuMTM3ODA1MDQ2ICswMzAwCi1AQCAtMCwwICsxLDIwMSBAQAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCi0rICAgICAgICAgICAgICAgICAgICAgICAgVmVy c2lvbiAyLjAsIEphbnVhcnkgMjAwNAotKyAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cu YXBhY2hlLm9yZy9saWNlbnNlcy8KLSsKLStURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBS RVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KLSsKLSsxLiBEZWZpbml0aW9ucy4KLSsKLSsg ICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwg cmVwcm9kdWN0aW9uLAotKyAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9u cyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgotKwotKyAgICJMaWNlbnNvciIgc2hhbGwg bWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5Ci0rICAgdGhl IGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgotKwotKyAgICJM ZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFu ZCBhbGwKLSsgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5 LCBvciBhcmUgdW5kZXIgY29tbW9uCi0rICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3Ig dGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKLSsgICAiY29udHJvbCIgbWVhbnMgKGkp IHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKLSsgICBkaXJlY3Rp b24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgot KyAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBv ciBtb3JlIG9mIHRoZQotKyAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lh bCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCi0rCi0rICAgIllvdSIgKG9yICJZb3VyIikgc2hh bGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotKyAgIGV4ZXJjaXNpbmcgcGVy bWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCi0rCi0rICAgIlNvdXJjZSIgZm9ybSBz aGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCi0r ICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9j dW1lbnRhdGlvbgotKyAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0rCi0rICAg Ik9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmlj YWwKLSsgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBp bmNsdWRpbmcgYnV0Ci0rICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdl bmVyYXRlZCBkb2N1bWVudGF0aW9uLAotKyAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRp YSB0eXBlcy4KLSsKLSsgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlw LCB3aGV0aGVyIGluIFNvdXJjZSBvcgotKyAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1 bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKLSsgICBjb3B5cmlnaHQgbm90aWNl IHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKLSsgICAoYW4gZXhh bXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgotKwotKyAgICJEZXJpdmF0 aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmpl Y3QKLSsgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3Jr IGFuZCBmb3Igd2hpY2ggdGhlCi0rICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMs IGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotKyAgIHJlcHJlc2VudCwgYXMg YSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2Vz Ci0rICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRl IHdvcmtzIHRoYXQgcmVtYWluCi0rICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChv ciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAotKyAgIHRoZSBXb3JrIGFuZCBE ZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCi0rCi0rICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVh biBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKLSsgICB0aGUgb3JpZ2luYWwgdmVy c2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCi0rICAg dG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRp b25hbGx5Ci0rICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdv cmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgotKyAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVn YWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgotKyAgIHRoZSBjb3B5 cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0 dGVkIgotKyAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRl biBjb21tdW5pY2F0aW9uIHNlbnQKLSsgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2Vu dGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwotKyAgIGNvbW11bmljYXRpb24g b24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMs Ci0rICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Ig b24gYmVoYWxmIG9mLCB0aGUKLSsgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vz c2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKLSsgICBleGNsdWRpbmcgY29tbXVuaWNh dGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQotKyAgIGRlc2ln bmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmli dXRpb24uIgotKwotKyAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55 IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0rICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250 cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCi0rICAgc3Vic2VxdWVu dGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCi0rCi0rMi4gR3JhbnQgb2YgQ29weXJp Z2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0rICAg dGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVy cGV0dWFsLAotKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5 LWZyZWUsIGlycmV2b2NhYmxlCi0rICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBw cmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCi0rICAgcHVibGljbHkgZGlzcGxheSwgcHVibGlj bHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCi0rICAgV29yayBhbmQg c3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KLSsKLSszLiBH cmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgb2YKLSsgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0 byBZb3UgYSBwZXJwZXR1YWwsCi0rICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFy Z2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLSsgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0 aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKLSsgICB1c2Us IG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUg V29yaywKLSsgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVu dCBjbGFpbXMgbGljZW5zYWJsZQotKyAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVj ZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCi0rICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9y IGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQotKyAgIHdpdGggdGhlIFdv cmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91Ci0r ICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVk aW5nIGEKLSsgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxl Z2luZyB0aGF0IHRoZSBXb3JrCi0rICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdp dGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKLSsgICBvciBjb250cmlidXRvcnkgcGF0 ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCi0rICAgZ3JhbnRlZCB0 byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCi0r ICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotKwotKzQuIFJlZGlz dHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhl Ci0rICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0 aCBvciB3aXRob3V0Ci0rICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3Qg Zm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKLSsgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKLSsKLSsgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUg V29yayBvcgotKyAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7 IGFuZAotKwotKyAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2Fy cnkgcHJvbWluZW50IG5vdGljZXMKLSsgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRo ZSBmaWxlczsgYW5kCi0rCi0rICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBm b3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCi0rICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUs IGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKLSsgICAgICAgYXR0cmlidXRp b24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKLSsgICAgICAgZXhj bHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgot KyAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCi0rCi0rICAgKGQpIElmIHRoZSBXb3Jr IGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCi0rICAgICAgIGRp c3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRl IG11c3QKLSsgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9u IG5vdGljZXMgY29udGFpbmVkCi0rICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNs dWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAotKyAgICAgICBwZXJ0YWluIHRvIGFueSBw YXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKLSsgICAgICAgb2Yg dGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0 ZWQKLSsgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBT b3VyY2UgZm9ybSBvcgotKyAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3 aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKLSsgICAgICAgd2l0aGluIGEgZGlzcGxheSBn ZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAotKyAgICAgICB3aGVyZXZl ciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMK LSsgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3Nl cyBvbmx5IGFuZAotKyAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFk ZCBZb3VyIG93biBhdHRyaWJ1dGlvbgotKyAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZl IFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQotKyAgICAgICBvciBhcyBhbiBh ZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKLSsgICAg ICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29u c3RydWVkCi0rICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KLSsKLSsgICBZb3UgbWF5 IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBh bmQKLSsgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1z IGFuZCBjb25kaXRpb25zCi0rICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRp b24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgotKyAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZl IFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAotKyAgIHJlcHJvZHVjdGlvbiwg YW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAotKyAg IHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCi0rCi0rNS4gU3VibWlzc2lv biBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNl LAotKyAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1 c2lvbiBpbiB0aGUgV29yawotKyAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5k ZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0rICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0 IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCi0rICAgTm90d2l0aHN0YW5kaW5n IHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQotKyAg IHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZl IGV4ZWN1dGVkCi0rICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25z LgotKwotKzYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNz aW9uIHRvIHVzZSB0aGUgdHJhZGUKLSsgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJr cywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCi0rICAgZXhjZXB0IGFzIHJlcXVp cmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCi0r ICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUg Tk9USUNFIGZpbGUuCi0rCi0rNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVp cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCi0rICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vu c29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAotKyAgIENvbnRyaWJ1dG9yIHByb3ZpZGVz IGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAotKyAgIFdJVEhPVVQgV0FS UkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgotKyAg IGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBv ciBjb25kaXRpb25zCi0rICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJ TElUWSwgb3IgRklUTkVTUyBGT1IgQQotKyAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBz b2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQotKyAgIGFwcHJvcHJpYXRlbmVz cyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQotKyAg IHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVy IHRoaXMgTGljZW5zZS4KLSsKLSs4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZl bnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKLSsgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1 ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKLSsgICB1bmxlc3MgcmVx dWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQot KyAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENv bnRyaWJ1dG9yIGJlCi0rICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFu eSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotKyAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVl bnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQotKyAgIHJlc3VsdCBv ZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUK LSsgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mg b2YgZ29vZHdpbGwsCi0rICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxm dW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKLSsgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3Ig bG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCi0rICAgaGFzIGJlZW4gYWR2aXNlZCBv ZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgotKwotKzkuIEFjY2VwdGluZyBXYXJy YW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKLSsgICB0 aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9m ZmVyLAotKyAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdh cnJhbnR5LCBpbmRlbW5pdHksCi0rICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFu ZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKLSsgICBMaWNlbnNlLiBIb3dldmVyLCBp biBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQotKyAgIG9uIFlv dXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVo YWxmCi0rICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUg dG8gaW5kZW1uaWZ5LAotKyAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJt bGVzcyBmb3IgYW55IGxpYWJpbGl0eQotKyAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0 ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KLSsgICBvZiB5b3VyIGFjY2Vw dGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KLSsKLStFTkQg T0YgVEVSTVMgQU5EIENPTkRJVElPTlMKLSsKLStBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBB cGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCi0rCi0rICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBM aWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKLSsgICBib2lsZXJwbGF0 ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCi0rICAg cmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGlu Y2x1ZGUKLSsgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGlu IHRoZSBhcHByb3ByaWF0ZQotKyAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQu IFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQotKyAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVz Y3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKLSsgICBzYW1lICJwcmludGVk IHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKLSsgICBpZGVudGlmaWNh dGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCi0rCi0rQ29weXJpZ2h0IFt5eXl5XSBb bmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCi0rCi0rTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBM aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0reW91IG1heSBub3QgdXNlIHRo aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotK1lvdSBtYXkg b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotKwotKwlodHRwOi8vd3d3LmFwYWNoZS5v cmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSsKLStVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0rZGlzdHJpYnV0ZWQgdW5k ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLStXSVRI T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mg b3IgaW1wbGllZC4KLStTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBn b3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0rbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2Uu Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5T RS1NSVQgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1JVAot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv YW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlUCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM3ODA1 MDQ2ICswMzAwCi1AQCAtMCwwICsxLDI1IEBACi0rQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBSdXN0 IFByb2plY3QgRGV2ZWxvcGVycwotKwotK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkKLStwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkCi0rZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2Fy ZSIpLCB0byBkZWFsIGluIHRoZQotK1NvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0Ci0rbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBtZXJnZSwKLStwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBj b3BpZXMgb2YKLSt0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZSBTb2Z0d2FyZQotK2lzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nCi0rY29uZGl0aW9uczoKLSsKLStUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZQotK3NoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMKLStvZiB0aGUgU29mdHdhcmUuCi0rCi0rVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YKLStBTlkgS0lORCwgRVhQ UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVECi0rVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBCi0rUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UCi0rU0hBTEwgVEhFIEFVVEhPUlMg T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLStDTEFJTSwgREFNQUdFUyBP UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCi0rT0YgQ09OVFJBQ1QsIFRP UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUgotK0lOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotK0RFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3Vu ZC9MSUNFTlNFLU1JVC1RQ01TIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQv TElDRU5TRS1NSVQtUUNNUwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91 bmQvTElDRU5TRS1NSVQtUUNNUwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQtUUNN UwkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzNzgwNTA0NiArMDMwMAotQEAgLTAsMCArMSwyMSBAQAot K3FjbXMKLStDb3B5cmlnaHQgKEMpIDIwMDktMjAyNCBNb3ppbGxhIENvcnBvcmF0aW9uCi0rQ29w eXJpZ2h0IChDKSAxOTk4LTIwMDcgTWFydGkgTWFyaWEKLSsKLStQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgCi0rYSBj b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLCAKLSt0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIAotK3RoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCAK LSthbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgCi0raXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSsKLStUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiAKLSth bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSsKLStU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgCi0rRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IAotK1RIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIAotK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgCi0rTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiAKLStP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gCi0rV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM SU5HUyBJTiBUSEUgU09GVFdBUkUuCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlf YWxsX3dvcmthcm91bmQvUkVBRE1FLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmth cm91bmQvUkVBRE1FLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3Vu ZC9SRUFETUUubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL1JFQURNRS5tZAkyMDI1LTA5LTE3IDE3 OjQxOjIxLjEzNzgwNTA0NiArMDMwMAotQEAgLTAsMCArMSwxMyBAQAotKyMgYW55X2FsbF93b3Jr YXJvdW5kCi0rCi0rVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGJhZCBjb2RlZ2VuIChbUnVzdCBi dWddKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcG9ydGFibGUtc2ltZC9pc3N1ZXMvMTQ2 KSwgW0xMVk0gYnVnXShodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvaXNzdWVz LzUwNDY2KSkgZm9yIHRoZSBgYW55KClgIGFuZCBgYWxsKClgIHJlZHVjdGlvbnMgZm9yIE5FT04t YmFja2VkIFNJTUQgdmVjdG9ycyBvbiAzMi1iaXQgQVJNLiBPbiBvdGhlciBwbGF0Zm9ybXMgdGhl c2UgZGVsZWdhdGUgdG8gYGFueSgpYCBhbmQgYGFsbCgpYCBpbiBgY29yZTo6c2ltZGAuCi0rCi0r VGhlIHBsYW4gaXMgdG8gYWJhbmRvbiB0aGlzIGNyYXRlIG9uY2UgdGhlIExMVk0gYnVnIGlzIGZp eGVkIG9yIGBjb3JlOjpzaW1kYCB3b3JrcyBhcm91bmQgdGhlIExMVk0gYnVnLgotKwotK1RoZSBj b2RlIGlzIGZvcmtlZCBmcm9tIHRoZSBbYHBhY2tlZF9zaW1kYCBjcmF0ZV0oaHR0cHM6Ly9yYXcu Z2l0aHVidXNlcmNvbnRlbnQuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kL2Q5MzhlMzliZWU5YmM1 YzIyMmY1ZjJmMmEwZGY5ZTUzYjVjZTM2YWUvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2Fy bS5ycykuCi0rCi0rVGhpcyBjcmF0ZSByZXF1aXJlcyBOaWdodGx5IFJ1c3QgYXMgaXQgZGVwZW5k cyBvbiB0aGUgYHBvcnRhYmxlX3NpbWRgIGZlYXR1cmUuCi0rCi0rIyBMaWNlbnNlCi0rCi0rYE1J VCBPUiBBcGFjaGUtMi4wYCwgc2luY2UgdGhhdCdzIGhvdyBgcGFja2VkX3NpbWRgIGlzIGxpY2Vu c2VkLiAoVGhlIEFSTSBpbnRyaW5zaWNzIFJ1c3QgdmVyc2lvbiB3b3JrYXJvdW5kIGlzIGZyb20g cWNtcywgc2VlIExJQ0VOU0UtTUlULVFDTVMuKQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvYW55X2FsbF93b3JrYXJvdW5kL2J1aWxkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxs X3dvcmthcm91bmQvYnVpbGQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3Jr YXJvdW5kL2J1aWxkLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9idWlsZC5ycwkyMDI1LTA5LTE3 IDE3OjQxOjIxLjEzNzgwNTA0NiArMDMwMAotQEAgLTAsMCArMSw3IEBACi0rZXh0ZXJuIGNyYXRl IHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7Ci0rCi0rZm4gbWFpbigpIHsKLSsgICAgaWYgcnVzdGM6 OmlzX21pbl92ZXJzaW9uKCIxLjc4LjAiKS51bndyYXBfb3IoZmFsc2UpIHsKLSsgICAgICAgIHBy aW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9c3Rkc2ltZF9zcGxpdCIpOwotKyAgICB9Ci0rfQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL3NyYy9saWIucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9zcmMvbGliLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9zcmMvbGliLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxf d29ya2Fyb3VuZC9zcmMvbGliLnJzCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM4ODA1MDA3ICswMzAw Ci1AQCAtMCwwICsxLDExMCBAQAotKy8vIFRoaXMgY29kZSBiZWdhbiBhcyBhIGZvcmsgb2YKLSsv LyBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1k L2Q5MzhlMzliZWU5YmM1YzIyMmY1ZjJmMmEwZGY5ZTUzYjVjZTM2YWUvc3JjL2NvZGVnZW4vcmVk dWN0aW9ucy9tYXNrL2FybS5ycwotKy8vIHdoaWNoIGRpZG4ndCBoYXZlIGEgbGljZW5zZSBoZWFk ZXIgb24gdGhlIGZpbGUsIGJ1dCBDYXJnby50b21sIHNhaWQgIk1JVCBPUiBBcGFjaGUtMi4wIi4K LSsvLyBTZWUgTElDRU5TRS1NSVQgYW5kIExJQ0VOU0UtQVBBQ0hFLgotKwotKyMhW25vX3N0ZF0K LSsjIVtmZWF0dXJlKHBvcnRhYmxlX3NpbWQpXQotKyMhW2NmZ19hdHRyKAotKyAgICBhbGwoCi0r ICAgICAgICBzdGRzaW1kX3NwbGl0LAotKyAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKLSsg ICAgICAgIHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwKLSsgICAgICAgIHRhcmdldF9mZWF0dXJl ID0gIm5lb24iLAotKyAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAidjciCi0rICAgICksCi0rICAg IGZlYXR1cmUoc3RkYXJjaF9hcm1fbmVvbl9pbnRyaW5zaWNzKQotKyldCi0rIyFbY2ZnX2F0dHIo Ci0rICAgIGFsbCgKLSsgICAgICAgIG5vdChzdGRzaW1kX3NwbGl0KSwKLSsgICAgICAgIHRhcmdl dF9hcmNoID0gImFybSIsCi0rICAgICAgICB0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsCi0rICAg ICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKLSsgICAgICAgIHRhcmdldF9mZWF0dXJlID0g InY3IgotKyAgICApLAotKyAgICBmZWF0dXJlKHN0ZHNpbWQpCi0rKV0KLSsKLSt1c2UgY2ZnX2lm OjpjZmdfaWY7Ci0rdXNlIGNvcmU6OnNpbWQ6Om1hc2sxNng4OwotK3VzZSBjb3JlOjpzaW1kOjpt YXNrMzJ4NDsKLSt1c2UgY29yZTo6c2ltZDo6bWFzazh4MTY7Ci0rCi0rY2ZnX2lmISB7Ci0rICAg IGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJhcm0iLCB0YXJnZXRfZW5kaWFuID0gImxpdHRs ZSIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLCB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIpKV0gewot KyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6Om1hc2s4eDg7Ci0rICAgICAgICB1c2UgY29yZTo6c2lt ZDo6bWFzazE2eDQ7Ci0rICAgICAgICB1c2UgY29yZTo6c2ltZDo6bWFzazMyeDI7Ci0rICAgICAg ICBtYWNyb19ydWxlcyEgYXJtXzEyOF92N19uZW9uX2ltcGwgewotKyAgICAgICAgICAgICgkYWxs OmlkZW50LCAkYW55OmlkZW50LCAkaWQ6aWRlbnQsICRoYWxmOmlkZW50LCAkdnBtaW46aWRlbnQs ICR2cG1heDppZGVudCkgPT4gewotKyAgICAgICAgICAgICAgICAjW2lubGluZV0KLSsgICAgICAg ICAgICAgICAgcHViIGZuICRhbGwoczogJGlkKSAtPiBib29sIHsKLSsgICAgICAgICAgICAgICAg ICAgIHVzZSBjb3JlOjphcmNoOjphcm06OiR2cG1pbjsKLSsgICAgICAgICAgICAgICAgICAgIHVz ZSBjb3JlOjptZW06OnRyYW5zbXV0ZTsKLSsgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhhbHZlczogKCRoYWxmLCAkaGFsZiksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZlYzogJGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogcyB9LmhhbHZlczsKLSsgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgaDogJGhhbGYgPSB0cmFuc211dGUoJHZwbWluKHRyYW5zbXV0ZSho YWx2ZXMuMCksIHRyYW5zbXV0ZShoYWx2ZXMuMSkpKTsKLSsgICAgICAgICAgICAgICAgICAgICAg ICBoLmFsbCgpCi0rICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0rICAgICAgICAgICAgICAgIHB1YiBmbiAkYW55KHM6 ICRpZCkgLT4gYm9vbCB7Ci0rICAgICAgICAgICAgICAgICAgICB1c2UgY29yZTo6YXJjaDo6YXJt OjokdnBtYXg7Ci0rICAgICAgICAgICAgICAgICAgICB1c2UgY29yZTo6bWVtOjp0cmFuc211dGU7 Ci0rICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotKyAgICAgICAgICAgICAgICAgICAgICAg IHVuaW9uIFUgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaGFsZiwg JGhhbGYpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9 IFUgeyB2ZWM6IHMgfS5oYWx2ZXM7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGg6ICRo YWxmID0gdHJhbnNtdXRlKCR2cG1heCh0cmFuc211dGUoaGFsdmVzLjApLCB0cmFuc211dGUoaGFs dmVzLjEpKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgaC5hbnkoKQotKyAgICAgICAgICAg ICAgICAgICAgfQotKyAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgfQotKyAgICAgICAg fQotKyAgICB9IGVsc2UgewotKyAgICAgICAgbWFjcm9fcnVsZXMhIGFybV8xMjhfdjdfbmVvbl9p bXBsIHsKLSsgICAgICAgICAgICAoJGFsbDppZGVudCwgJGFueTppZGVudCwgJGlkOmlkZW50LCAk aGFsZjppZGVudCwgJHZwbWluOmlkZW50LCAkdnBtYXg6aWRlbnQpID0+IHsKLSsgICAgICAgICAg ICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSsgICAgICAgICAgICAgICAgcHViIGZuICRhbGwoczog JGlkKSAtPiBib29sIHsKLSsgICAgICAgICAgICAgICAgICAgIHMuYWxsKCkKLSsgICAgICAgICAg ICAgICAgfQotKyAgICAgICAgICAgICAgICAjW2lubGluZShhbHdheXMpXQotKyAgICAgICAgICAg ICAgICBwdWIgZm4gJGFueShzOiAkaWQpIC0+IGJvb2wgewotKyAgICAgICAgICAgICAgICAgICAg cy5hbnkoKQotKyAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQot KyAgICB9Ci0rfQotKwotK2FybV8xMjhfdjdfbmVvbl9pbXBsISgKLSsgICAgYWxsX21hc2s4eDE2 LAotKyAgICBhbnlfbWFzazh4MTYsCi0rICAgIG1hc2s4eDE2LAotKyAgICBtYXNrOHg4LAotKyAg ICB2cG1pbl91OCwKLSsgICAgdnBtYXhfdTgKLSspOwotK2FybV8xMjhfdjdfbmVvbl9pbXBsISgK LSsgICAgYWxsX21hc2sxNng4LAotKyAgICBhbnlfbWFzazE2eDgsCi0rICAgIG1hc2sxNng4LAot KyAgICBtYXNrMTZ4NCwKLSsgICAgdnBtaW5fdTE2LAotKyAgICB2cG1heF91MTYKLSspOwotK2Fy bV8xMjhfdjdfbmVvbl9pbXBsISgKLSsgICAgYWxsX21hc2szMng0LAotKyAgICBhbnlfbWFzazMy eDQsCi0rICAgIG1hc2szMng0LAotKyAgICBtYXNrMzJ4MiwKLSsgICAgdnBtaW5fdTMyLAotKyAg ICB2cG1heF91MzIKLSspOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5j YXJnby1jaGVja3N1bS5qc29uCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5j YXJnby1jaGVja3N1bS5qc29uCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCTIw MjUtMDktMTcgMTc6NDE6MjEuMTM4ODA1MDA3ICswMzAwCi1AQCAtMSArMSBAQAotLXsiZmlsZXMi OnsiQ09OVFJJQlVUSU5HLm1kIjoiY2ExOTAxZjNlODUzMmZiNGNlYzg5NGZkMzY2NGYwZWFhODk4 YzBjNGI5NjFkMWI5OTJkMWVkNTRlYWNmMzYyYSIsIkNPUFlSSUdIVCI6IjExNzg5ZjQ1YmIxODA4 NDFjZDM2MmE1ZWVlNjc4OWM2OGRkYjU3M2ExMTEwNWUzMDc2OGMzMDhhNmFkZDAxOTAiLCJDYXJn by50b21sIjoiNDJmYTgzMzIyYWE5ZmQ2NzIzYjc3ZDM1ZDBjYWNiOTJjYmI2ZTdmNTczY2UxMWM1 NWY1MjI1MjkyODY2ZjhmNCIsIklkZWFzLm1kIjoiYjc0NTI4OTNmNTAwMTYzODY4ZDhkZTUyYzA5 YWRkYWY5MWUxNjMyNDU0ZWQwMmU4OTJjNDY3ZWQ3ZWMzOWRiZCIsIkxJQ0VOU0UtQVBBQ0hFIjoi Y2ZjNzc0OWI5NmY2M2JkMzFjM2M0MmI1YzQ3MWJmNzU2ODE0MDUzZTg0N2MxMGYzZWIwMDM0MTdi YzUyM2QzMCIsIkxJQ0VOU0UtTUlUIjoiM2ZhNGNhODNkY2M5MjM3ODM5YjFiZGViMmU2ZDE2YmRm YjVlYzBjNWNlNDJiMjQ2OTRkOGJiZjBkY2JlZjcyYyIsIkxJQ0VOU0UtV0hBVFdHIjoiODM4MTE4 Mzg4ZmU1YzJlN2YxZGJiYWVlZDEzZTFjN2YzZWJmODhiZTkxMzE5YzdjMWQ3N2MxOGU5ODdkMWE1 MCIsIlJFQURNRS5tZCI6ImQ5MzhlOGFiMGI5YWI2N2U3NGExYTRmNDhmMjNmZGNlOTU2ZDBhZDNh M2Y2MTQ3YWU3NjEyYTkyNzYzYzg4ZDUiLCJjaS9taXJpLnNoIjoiNDNjYjhkODJmNDllM2JmZTJk MjI3NGI2Y2NkNmYwNzE0YTQxODhjY2VmMGNlY2MwNDA4Mjk4ODNjZmRiZWUyNSIsImRvYy9CaWc1 LnR4dCI6ImY3M2EyZWRjNWNiNmMyZDE0MGJhNmUwN2Y0NTQyZTFjNGEyMzQ5NTAzNzhhY2RlMWRm OTM0ODBmMGNhMGJlMGIiLCJkb2MvRVVDLUpQLnR4dCI6ImVlMjgxOGI5MDdkMDEzN2Y0MGE5YWI5 ZmQ1MjVmYzcwMGE0NGRiZGRkYjZjZjBjMTU3YTY1NjU2NmJhZTRiZjEiLCJkb2MvRVVDLUtSLnR4 dCI6IjcxZDllMmNjZjNiMTI0ZThiZGZiNDMzYzhjZjI3NzNmZDg3ODA3NzAzOGQwY2VjM2M3MjM3 YTUwZjRhNzhhMzAiLCJkb2MvR0JLLnR4dCI6ImMxYjUyMmI1YTc5OTg4NGU1MDAxZGE2NjFmNDJj NWE4ZjRkMGFjYjllZjFkNzRiMjA2ZjIyYjVmNjUzNjU2MDYiLCJkb2MvSUJNODY2LnR4dCI6ImE1 YTQzM2U4MDRkMGY4M2FmNzg1MDE1MTc5ZmJjMWQ5YjBlYWYxZjc5NjBlZmNkMDQwOTNlMTM2YjUx ZmJkMGUiLCJkb2MvSVNPLTIwMjItSlAudHh0IjoiYWY4NjY4NGY1YThmMGUyODY4ZDdiMmMyOTI4 NjAxNDBjM2QyZTU1Mjc1MzBjYTA5MWYxYjI4MTk4ZThlMmZlNiIsImRvYy9JU08tODg1OS0xMC50 eHQiOiI2ZDM5NDlhZDdjODFjYTE3Njg5NTEwMWVkODFhMWRiN2RmMTA2MGQ2NGUyNjI4ODBiOTRi ZDMxYmIzNDRhYjRkIiwiZG9jL0lTTy04ODU5LTEzLnR4dCI6IjM5NTFkZDg5Y2Y5M2Y3NzI5MTQ4 MDkxNjgzY2Y4NTExZjQ1MjkzODhiN2RjOGRjZDBkNjJlYWVkNTViZTkzZmEiLCJkb2MvSVNPLTg4 NTktMTQudHh0IjoiM2QzMzA3ODRhMDM3NGZkMjU1YTM4YjQ3OTQ5Njc1Y2M3MTY4YzgwMDUzMDUz NGIwYTAxY2FjNmVkYzYyM2FkYyIsImRvYy9JU08tODg1OS0xNS50eHQiOiIyNGIxMDg0YWFiNTEy N2E4NWFhYjk5MTUzZjg2ZTI0Njk0ZDBhMzYxNWY1M2I1Y2UyMzY4M2Y5N2NmNjZjNDdhIiwiZG9j L0lTTy04ODU5LTE2LnR4dCI6ImNlMDI3MjU1OWI5MmJhNzZkN2E3ZTQ3NmY2NDI0YWU0YTVjYzcy ZTc1YjE4MzYxMWIwODM5MmU0NGFkZDRkMjUiLCJkb2MvSVNPLTg4NTktMi50eHQiOiIxOGNlZmY4 OGMxM2QxYjViYTQ1NWEzOTE5YjFlM2RlNDg5MDQ1YzRjM2QyZGQ3ZTg1MjdjMTI1Yzc1ZDU0YWFk IiwiZG9jL0lTTy04ODU5LTMudHh0IjoiMjE3OTg0MDRjNjhmNGY1ZGI1OTIyMzM2MmYyNDk5OWRh OTY5NjhjMDYyODQyNzMyMWZjY2NlN2QyODQ5YTEzMCIsImRvYy9JU08tODg1OS00LnR4dCI6ImQy N2Y2NTIwYzZjNWJmYmNjMTkxNzZiNzFkMDgxY2RiM2JjY2RlMTYyMmJiM2U0MjBkNTY4MGU4MTI2 MzJkNTMiLCJkb2MvSVNPLTg4NTktNS50eHQiOiJhMTBlYzhkNmVhN2E3OGFkMTVkYTcyNzVmNmNi MWEzMzY1MTE4NTI3ZTI4ZjlhZjZkMGQ1ODMwNTAxMzAzZjNhIiwiZG9jL0lTTy04ODU5LTYudHh0 IjoiY2NkYThhMmVmYzk2MTE1MzM2YmRkNzc3NzY2MzdiOTcxMjQyNWU0NGZiY2Y3NDUzNTNiOTA1 N2ZiZWYxNDRlNyIsImRvYy9JU08tODg1OS03LnR4dCI6IjE3OTAwZmExZjI3YTQ0NTk1OGYwYTc3 ZDdkOTA1NmJlMzc1YTZiZDdlZTQ0OTJhYTY4MGM3YzE1MDBiYWI4NWUiLCJkb2MvSVNPLTg4NTkt OC1JLnR4dCI6IjgzNTc1NTU2NDZkNTQyNjVhOWI5ZmZhM2U2OGIwOGQxMzIzMTJmMTU2MWM2MDEw OGZmOWI4YjExNjdiNmVjZjIiLCJkb2MvSVNPLTg4NTktOC50eHQiOiI3MmNkNmYzYWZiN2I0YTlj MTZhNjZhMzYyNDczMzE1NzcwYjc3NTVkNzJjODZjODcwZTUyZmMzZWJhODZjOGFmIiwiZG9jL0tP STgtUi50eHQiOiI4MzljZjE5YTM4ZGE5OTQ0ODgwMDRlZDc4MTRiMWY2MTUxNjQwMTU2YTlhMmFm MDJiZjJlZmNhNzQ1ZmI1OTY2IiwiZG9jL0tPSTgtVS50eHQiOiIwY2M3NjYyNGVkMWYwMjQxODNl MjI5OGI3ZTAxOTk1N2RhMmM3MGM4Y2EwNmUwZmM0ZTZmMzUzZjUwYTUwNTRmIiwiZG9jL1NoaWZ0 X0pJUy50eHQiOiIzNGM0OTE0MTgxOGNiOWRkYmNmNTljYzg1OGY3OGE3OWJlOGFkMTQ4ZDU2M2Yy NjQxNTEwOGFlMWYxNDg0NDNmIiwiZG9jL1VURi0xNkJFLnR4dCI6ImUyZTI4MGQ4YWNiYWE2ZDJh NmIzNTY5ZDYwZTE3NTAwYTI4NWYyYmFhMGRmMzM2M2RkODU1MzdjZDVhMWVmOGYiLCJkb2MvVVRG LTE2TEUudHh0IjoiNzBiZGMxNzBlM2ZjNTI5OGJhNjhmMTAxMjVmYjVlZWI4YjA3NzAzNmNjOTZi YjQ0MTZjNGRlMzk2ZjZkNzZjMSIsImRvYy9VVEYtOC50eHQiOiJlYTdiYWU3NDJlNjEzMDEwY2Vk MDAyY2Y0YjYwMWE3MzdkMjIwM2ZhZDY1ZTExNTYxMTQ1MWJjNDQyOGY1NDhhIiwiZG9jL2diMTgw MzAudHh0IjoiZGM3MTM3OGE4ZjA3YTJkODY1OWY2OWVlODFmYjg3OTFmZWY1NmJhODZmMTI0YjQy OTk3ODI4NTIzN2JiNGE3YiIsImRvYy9tYWNpbnRvc2gudHh0IjoiNTc0OTFlNTM4NjY3MTFiNDY3 MmQ5YjlmZjM1MzgwYjlkYWM5ZTBkOGUzZDZjMjBiZGQ2MTQwNjAzNjg3YzAyMyIsImRvYy9yZXBs YWNlbWVudC50eHQiOiI0YjZjM2JiZDc5OTlkOWQ0MTA4YTI4MTU5NGJkMDJkMTM2MDdlMzM0YTk1 NDY1YWZmZjhjMmMwOGQzOTVmMGU0IiwiZG9jL3dpbmRvd3MtMTI1MC50eHQiOiI2MTI5NmJiNmEy MWNkYWI2MDIzMDBkMzJlY2ZiYTQzNGNiODJkZTVhYzNiYzg4ZDU4NzEwZDJmMTI1ZTI4ZDM5Iiwi ZG9jL3dpbmRvd3MtMTI1MS50eHQiOiI3ZGVlYTFjNjFkZWExNDg1YzhmZjAyZGIyYzdkNTc4ZGI3 YTlhYWI2M2FiMWNmZDAyZWMwNGI1MTU4NjQ2ODllIiwiZG9jL3dpbmRvd3MtMTI1Mi50eHQiOiI5 MzNlZjNiZGRkZmNlNWVlMTMyYjlmMWExYWE4YjQ3NDIzZDI1ODdiYmU0NzViMTkwMjhkMGE2ZDM4 ZTE4MGI2IiwiZG9jL3dpbmRvd3MtMTI1My50eHQiOiIxYTM4NzQ4Yjg4ZTk5MDcxYTVjN2IzZDU0 NTZlYWQ0Y2FlZGVhYmFiNTBkNTBkNjU4YmUxMDViYzExMzcxNGRlIiwiZG9jL3dpbmRvd3MtMTI1 NC50eHQiOiJmODM3MmY4NmM2ZjhkNjQyNTYzY2Q2ZGRjMDI1MjYwNTUzMjkyYTM5NDIzZGYxNjgz YTk4NjcwYmQ3YmYyYjQ3IiwiZG9jL3dpbmRvd3MtMTI1NS50eHQiOiI0ZTU4NTI0OTQ3MzAwNTRl MmRhMjU4YTc0ZTFiOWQ3ODBhYmJjZGQ4Y2UyMmViYzIxOGNhMmVmZTllOTA0OTNkIiwiZG9jL3dp bmRvd3MtMTI1Ni50eHQiOiJjMDg3OWM1MTcyYWJlZGVhZDMwMmE0MDZlOGY2MGQ5Y2Q5NTk4Njk0 YTBmZmE0ZmQyODhmZmU0ZmVmN2I4ZWExIiwiZG9jL3dpbmRvd3MtMTI1Ny50eHQiOiJjMjhhMGM5 Zjk2NGZjYjJiNDZkMjFmNTM3YzQwMjQ0NjUwMWEyODAwNjcwNDgxZDZhYmY5ZmQ5ZTkwMThkNTIz IiwiZG9jL3dpbmRvd3MtMTI1OC50eHQiOiI1MDE5YWU0ZDYxODA1Yzc5YWFjYmYxN2M5Mzc5MzM0 MmRiYjA5OGQ2NWExODM3NzgzYmMzZTJjNmQ2YTIzNjAyIiwiZG9jL3dpbmRvd3MtODc0LnR4dCI6 IjRlZjBlNDUwMWM1ZmViYThiMTdhZWUxODE4NjAyZWQ0NGIzNmNhODQ3NWRiNzcxY2UyZmMxNmQz OTJjYWJlY2MiLCJkb2MveC1tYWMtY3lyaWxsaWMudHh0IjoiNThiZTE1NGQ4YTg4OGNhM2Q0ODRi ODNiNDRmNzQ5ODIzZWYzMzlhYjI3ZjE0ZDkwY2E5YTg1NmY1MDUwYThiZCIsImRvYy94LXVzZXIt ZGVmaW5lZC50eHQiOiJmOWNkMDdjNDMyMWJmNWNmYjBiZTRiZGRkZDI1MTA3Mjk5OWIwNGE2Y2Y3 YTZmNWJjNjM3MDlhODRlMmMxZmZjIiwiZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weSI6ImJlOTg5 ZGQyNWM2Yjk0NmUzZTg3NDVmZGM4ZThhODBmY2YyNGIzYmU5OWFkMGI0Yjc4MTUzYmEzZjZhYjYz MTAiLCJydXN0Zm10LnRvbWwiOiI4NWMxYTNiNDM4MmZkODllOTkxY2JiODFiNzBmYjUyNzgwNDcy ZWRjMDY0Yzk2Mzk0M2NkYWFhNTZlMGEyMDMwIiwic3JjL2FzY2lpLnJzIjoiYzQ0YzAwMjY0MWFk YjVlYmM0MzY4NzA3YThjYzBhMDc2ZDJmMzNlNmE1YzI3YjFiNjk5ODhlYjUxNWY1NjUzZCIsInNy Yy9iaWc1LnJzIjoiZWM2ZTI5MTMwMTFhMzhlOWEzZTgyNWExNzMxZjEzOWE3Y2ExZDViMjY0ZmVm YWU1MWEzY2MxYTY4YTU3Y2VmOSIsInNyYy9kYXRhLnJzIjoiOGE2MTdjYzU3MDMyMDkyZDY1ODUw ZWIyN2UwMGRlNjg3YzgwYWVhMzI5OWU4MzlhMWY1OGI0MmQwYjM1YWJmMyIsInNyYy9ldWNfanAu cnMiOiIzMjA0N2Y1YjU0MDE4OGM0Y2IxOWMwNzE2NWY4NDZiOTc4NmEwOWYxOGUzMTVlZDNlOWJk YTEyOTNkYWU1MmFhIiwic3JjL2V1Y19rci5ycyI6IjliMjVhZmM3MmQ5Mzc4NzAwZWVjZmFjNThk NTVhZDFjNTk0NmQ2Y2QwY2NkZTJjMjljMDgyMDBlZjJkZTZiYjkiLCJzcmMvZ2IxODAzMC5ycyI6 IjgwODU4NzE2OGQ3M2YwYzgwZjg1MjBmMGNhOWIxNjE4NjZlZDJlZmViMTdhMDVlODVmZGYzYjhl ZmU3YmEyOGEiLCJzcmMvaGFuZGxlcy5ycyI6ImNjODNkYzA3NTQ3NTFkNjdmNTY4OGE2NWM1ZTAx OTFjYmEwMmY2YmFjY2U4MWEwODEzYTI0M2NiYTU1ZWVmN2EiLCJzcmMvaXNvXzIwMjJfanAucnMi OiI5YmI0ODVlODI1NzRmNGI3ZDRiMjM2NGYwZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBlYzVl MDRjMTk2NjUyIiwic3JjL2xpYi5ycyI6IjFkYzA3YjgxOGU0NTg0NmIxNmRkY2FmMGRlNDZjODg2 MmRkN2RmODA5OTEyM2VjMzhiOTVjM2Y4YWQ5YzkxZWMiLCJzcmMvbWFjcm9zLnJzIjoiMjAwOTk3 Zjg4NzBkZThiZmQ4Y2RjNDc1ZTkyMTE1ZGY0MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZlMWQ5 OSIsInNyYy9tZW0ucnMiOiIwYmYzNDEwM2UwYWQxYjg0MmExM2EwODJkZWUyYjkyMGIwNWNmNGZi MGYxNDVjOWVlN2Y2MDhmNGNiNGE1NDRmIiwic3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIzNGE1 M2Y4YzFjYTJiZGZhMGU1MWU4NDNlYzI4MzI2OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMwOCIs InNyYy9zaGlmdF9qaXMucnMiOiI2OTUxYWU2N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4YjFi NGFlMGUyYmRlNTIwNjBiMjliZDBmMTZkOWQ5Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIyNjEyYWJh ODZlMWQyMDEwOTZkN2U0N2E4NTliYzM0NDRmODU5MzRjYzgyZDhhZGM2ZDM5YTQzMDRkOWVlY2Zj Iiwic3JjL3NpbmdsZV9ieXRlLnJzIjoiM2M5ZTljMWY5NDZhZTYyMmM3MjViYTk0MjEyNDBjMWZh YTlhMDVlOTVmYTEwZGQ0NjQyYTI1Y2IyNzZhMWVkYyIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbi50 eHQiOiI0YzVhODY5MWY4ZGM3MTczMTE4ODljNjM4OTQwMjZkMmZiNjI3MjVhODZjNDIwOGNhMjc0 YTljYzhkNDJhNTAzIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luX3JlZi50eHQiOiI5OWQzOTllMTc3 NTBjZjljN2NmMzBiYjI1M2RiZmUzNWI4MWM0ZmNiZGVhZDkzY2ZhNDhiMTQyOTIxMzQ3M2M3Iiwi c3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQiOiI2MTkzY2E5N2MyOTdhYTIwZTA5Mzk2MDM4ZDE4 ZTkzOGJiN2VhMzMxYzI2ZjBmMjQ1NDA5NzI5NjcyM2EwYjEzIiwic3JjL3Rlc3RfZGF0YS9iaWc1 X291dF9yZWYudHh0IjoiMzY1Njc2OTFmNTU3ZGYxNDRmNmNjNTIwMDE1YTg3MDM4ZGZhMTU2ZjI5 NmZjZjEwM2I1NmFlOWE3MThiZTFmYyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6ImM4 NmE3MjI0ZjMyMTVmYTBkMDRlNjg1NjIyYTc1MmZkYzcyNzYzZThhZTA3NjIzMGM3ZmQ2MmRlNTdl YzQwNzQiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IjoiMWY0MTlmNGNhNDdkNzA4 YjU0YzczYzQ2MTU0NWEwMjJhZTJlMjA0OThmZGJmODAwNWE0ODNkNzUyYTIwNDg4MyIsInNyYy90 ZXN0X2RhdGEvZXVjX2tyX291dC50eHQiOiJlN2YzMmUwMjZmNzBiZTFlMWI1OGUwMDQ3YmFmN2Qz ZDJjNTIwMjY5YzRmOWI5OTkyZTE1OGI0ZGVjYjBhMWEzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jf b3V0X3JlZi50eHQiOiJjOTkwNzg1Nzk4MGIyMGI4ZTllM2I1ODQ0ODJlZDY1NjdhMmJlNjE4NWQ3 MjIzN2I2MzIyZjA0MDQ5NDQ5MjRlIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6ImFi NzIzMWIyZDNlOWFmYWNkYmQ3ZDdmM2I5ZTUzNjFhN2ZmOWY3ZTFjZmRiNGYzYmQ5MDViOTM2MmIz MDllNTMiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCI6ImRjNTA2OTQyMWFkY2Ey MDQzYzU1ZjUwMTJiNTVhNzZmZGZmNjUxZDIyZTZlNjk5ZmQwOTc4ZjhkNTcwNjgxNWMiLCJzcmMv dGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dCI6ImYwMjA4ZDUyN2Y1Y2E2M2RlN2Q5YTAzMjNiZThk NWNmMTJkOGExMDRiMjk0M2Q5MmMyNzAxZjBjMzM2NGRhYzEiLCJzcmMvdGVzdF9kYXRhL2diMTgw MzBfb3V0X3JlZi50eHQiOiI2ODE5ZmU0NzYyN2U0ZWEwMTAyNzAwM2ZjNTE0YjlmMjFhMTMyMmU3 MzJkN2YxZmI5MmNjNmM1NDU1YmM2YzA3Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50 eHQiOiJjZDI0YmJkY2IxODM0ZTI1ZGI1NDY0NmZiZjRjNDE1NjBhMTNkYzc1NDBmNmJlM2RiYTRm NWQ5N2Q0NDUxM2FmIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IjoiM2Rj NGU2YTVlMDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMy Y2RmNSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dCI6IjliNmYwMTUzMjlkZGE2 YzNmOWVlNWNlNmRiZDZmYTljODlhY2MyMTI4M2U4ODY4MzZjNzhiOGQ4MzM0ODBjMjEiLCJzcmMv dGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9yZWYudHh0IjoiNzhjYjI2MDA5M2EyMDExNmFkOWE0 MmY0M2IwNWQxODQ4YzVhYjEwMGI2YjlhODUwNzQ5ODA5ZTk0Mzg4NGIzNSIsInNyYy90ZXN0X2Rh dGEvamlzMDIwOF9pbi50eHQiOiI2ZGYzMDMwNTUzZmZiMGE2NjE1YmIzM2RjOGVhOWRjYTZkOTYy M2E5MDI4ZTJmZmVjNzU0Y2UzYzNkYTgyNGNjIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3Jl Zi50eHQiOiIzZGM0ZTZhNWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2ZjNmNDdlNDM3 MTdlNGJjMmVhYzJjZGY1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQiOiI0ZWMyNDQ3 N2UxNjc1Y2U3NTA3MzNiZGMzYzVhZGQxY2QyN2I2YmQ0Y2UxZjA5Mjg5NTY0NjQ2ZTk2NTRlODU3 Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0IjoiYzNlMWNlZjUwMzJiMmIxZDkz YTQwNmYzMWZmOTQwYzRlMmRmZTg4NTliOGIxN2NhMjc2MWZlZTdhNzVhMGU0OCIsInNyYy90ZXN0 X2RhdGEvamlzMDIxMl9pbi50eHQiOiJjMDExZjBkZDcyYmQ3YzhjZDkyMmRmOTM3NGVmOGQyNzY5 YTc3MTkwNTE0Yzc3ZjZjNjJiNDE1ODUyZWViOWZlIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2lu X3JlZi50eHQiOiI3ZDk0NThiM2QyZjczZTcwOTJhN2Y1MDVjMDhjZTFkMjMzZGRlMThhYTY3OWZi Y2Y5ODg5MjU2MjM5Y2M5ZTA2Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IjoiMDJl Mzg5Y2NlZjBkZDIxMjJlNjNmNTAzODk5NDAyY2I3Zjc5NzkxMmMyNDQ0Y2M4MGFiOTMxMzExMTZj NTUyNCIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQiOiI1MTJmOTg1OTUwY2E5 MDJlNjQzYzg4NjgyZGJhOTcwOGI3YzM4ZDNjNWVjMjkyNTE2OGFiMDBhYzk0YWIxOWY5Iiwic3Jj L3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dCI6IjVmYmM0NGRhN2JmNjM5YmY2Y2ZlMGZhMWZk M2ViYTcxMDJiODhmODE5MTljOWVhOTkxMzAyNzEyZjY5NDI2ZmIiLCJzcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19vdXRfcmVmLnR4dCI6IjQ2NjMyMmM2ZmVkODI4NmM2NDU4MjczMTc1NTI5MGMyMjk2 NTA4ZWZkZDI1ODgyNmU2Mjc5Njg2NjQ5YjQ4MWYiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMucnMi OiIyM2EyZTExYjAyYjNiOGQxNWZiNTYxM2E2MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4NzE5 YTQwODgyMDBkIiwic3JjL3Rlc3RpbmcucnMiOiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThjNmJl NGQ3MWU2NzBiZjUyZjdlMjBlYjE2MDVkOTkwYWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6ImMw NzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3ZTE0MWI3NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2FlY2Rh ZjJmMjUiLCJzcmMvdXRmXzgucnMiOiI3YjdkODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3Mjc1 OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3ODUxYWE3ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFiNTM2 MzU4OGExNTU0YTcxNjlkZTg3MzFlYTljZGVkN2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhjMjdi Iiwic3JjL3hfdXNlcl9kZWZpbmVkLnJzIjoiYzljMDEwNzMwZGZiOWYxNDFkNGZlZDE5MzUwYzA4 YTIxYWYyNDA5MTNhNTRiYjY0ZjVjYTg5ZmY5M2I2YjdkMSJ9LCJwYWNrYWdlIjoiNzI2OGIzODYy OTZhMDI1ZTQ3NGQ1MTQwNjc4Zjc1ZDZkZTk0OTNhZTU1YTVkNzA5ZWViOWRkMDgxNDk5NDVlMSJ9 Ci1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLSt7ImZpbGVzIjp7IkNPTlRSSUJVVElORy5t ZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTkyZDFl ZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3ODlj NjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6IjIyYTRkMjEw YzkyZGFlOWYzMmM2OTQ0ZWYzNDBlZThmZGQwMjdmOTljMDgxNTc3ZTg5MDcxMjNlMmE5MzM4M2Ui LCJJZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1NGVk MDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNiZDMx YzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNFTlNF LU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0Njk0 ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRiYmFl ZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQiOiIx ZDA4YWVmY2I5MmFmYTgxYjE4MTU0MDQ5YzlhYmJjYWQ0NTQwYTIzZjcxNzJlOWY5YmJlZDVhZjMz ZjFhMDg3IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcxNGE0 MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVkYzVj YjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBiIiwi ZG9jL0VVQy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRkYmRk ZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2YzYjEy NGU4YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwiZG9j L0dCSy50eHQiOiJjMWI1MjJiNWE3OTk4ODRlNTAwMWRhNjYxZjQyYzVhOGY0ZDBhY2I5ZWYxZDc0 YjIwNmYyMmI1ZjY1MzY1NjA2IiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNhZjc4 NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lTTy0y MDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3NTMw Y2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3Yzgx Y2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIsImRv Yy9JU08tODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0NTI5 Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNkMzMw Nzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2MjNh ZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4NmUy NDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50eHQi OiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgzOTJl NDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVhMzkx OWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1OS0z LnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0MjczMjFm Y2NjZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJjYzE5 MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lTTy04 ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2UyOGY5 YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5NjEx NTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJkb2Mv SVNPLTg4NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2YmQ3 ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3NTU1 NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZlY2Yy IiwiZG9jL0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMxNTc3 MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5Y2Yx OWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZiNTk2 NiIsImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdkYTJj NzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRjNDkx NDE4MThjYjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4NDQz ZiIsImRvYy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUwMGEy ODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6IjcwYmRj MTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2ZDc2 YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3ZDIy MDNmYWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6ImRjNzEzNzhh OGYwN2EyZDg2NTlmNjllZTgxZmI4NzkxZmVmNTZiYTg2ZjEyNGI0Mjk5NzgyODUyMzdiYjRhN2Ii LCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5ZGFj OWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0IjoiNGI2 YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhkMzk1 ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMyZWNm YmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEyNTEu dHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQwMmVj MDRiNTE1ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVlZTEz MmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93aW5k b3dzLTEyNTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJhYjUw ZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJmODZj NmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0NyIs ImRvYy93aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlkNzgw YWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0Ijoi YzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZlNGZl ZjdiOGVhMSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIxZjUz N2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dzLTEy NTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgzNzc4 M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZlYmE4 YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9jL3gt bWFjLWN5cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2VmMzM5 YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmluZWQudHh0IjoiZjlj ZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0ZTJj MWZmYyIsImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiJiZTk4OWRkMjVjNmI5NDZlM2U4NzQ1 ZmRjOGU4YTgwZmNmMjRiM2JlOTlhZDBiNGI3ODE1M2JhM2Y2YWI2MzEwIiwicnVzdGZtdC50b21s IjoiODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNjZGFh YTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6ImYxMTAwMGY2OGZhOTcwYWY3MDQzODA4ZWEyOWEx OTBjMjk1Zjc2YWNiYzUyODllZTZiMTRhOWQ4OGNkYjkxOWMiLCJzcmMvYmlnNS5ycyI6ImVjNmUy OTEzMDExYTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1N2Nl ZjkiLCJzcmMvZGF0YS5ycyI6IjhhNjE3Y2M1NzAzMjA5MmQ2NTg1MGViMjdlMDBkZTY4N2M4MGFl YTMyOTllODM5YTFmNThiNDJkMGIzNWFiZjMiLCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1NDAx ODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIsInNy Yy9ldWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNkMGNj ZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4MDg1ODcxNjhkNzNmMGM4 MGY4NTIwZjBjYTliMTYxODY2ZWQyZWZlYjE3YTA1ZTg1ZmRmM2I4ZWZlN2JhMjhhIiwic3JjL2hh bmRsZXMucnMiOiJiMDhjZWYxZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0NmI3MzdiN2EwNzVl NDU5M2VhYThjNDIwOGU5ZmUyIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1ZTgyNTc0ZjRi N2Q0YjIzNjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1MiIsInNyYy9s aWIucnMiOiI4MzRmNDRiNjcwZWM0OGVlODJjMGUxMjIyM2QxNTY3MzEzZmRkOWY4OGJjYTVmNGIx MTdjODJjMTgyOGY1NTlmIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4YmZkOGNkYzQ3 NWU5MjExNWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMvbWVtLnJzIjoi OTQ4NTcxMTM3ZDNiMTUxZGY4ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBhZDgzYWJjYWI5MzQx ZDZhZGFiZSIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2EyYmRmYTBlNTFl ODQzZWMyODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hpZnRfamlzLnJz IjoiNjk1MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJkZTUyMDYwYjI5 YmQwZjE2ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMGI3NmVhZTVlZjJjNzg4MWZjZWRlYmJk OGNkNjUyYjUzM2U3OWY2OTQ0NzY2OGEzZTliOGUzYTJhNjY4ZTc0YyIsInNyYy9zaW5nbGVfYnl0 ZS5ycyI6IjNhZDg3MTE2ZmIzMzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5Zjc4MTRkNzA4ZjE2 MTk0ZWQwOGY2ZDZjY2YiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiNGM1YTg2OTFmOGRj NzE3MzExODg5YzYzODk0MDI2ZDJmYjYyNzI1YTg2YzQyMDhjYTI3NGE5Y2M4ZDQyYTUwMyIsInNy Yy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiOTlkMzk5ZTE3NzUwY2Y5YzdjZjMwYmIyNTNk YmZlMzViODFjNGZjYmRlYWQ5M2NmYTQ4YjE0MjkyMTM0NzNjNyIsInNyYy90ZXN0X2RhdGEvYmln NV9vdXQudHh0IjoiNjE5M2NhOTdjMjk3YWEyMGUwOTM5NjAzOGQxOGU5MzhiYjdlYTMzMWMyNmYw ZjI0NTQwOTcyOTY3MjNhMGIxMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCI6IjM2 NTY3NjkxZjU1N2RmMTQ0ZjZjYzUyMDAxNWE4NzAzOGRmYTE1NmYyOTZmY2YxMDNiNTZhZTlhNzE4 YmUxZmMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiJjODZhNzIyNGYzMjE1ZmEwZDA0 ZTY4NTYyMmE3NTJmZGM3Mjc2M2U4YWUwNzYyMzBjN2ZkNjJkZTU3ZWM0MDc0Iiwic3JjL3Rlc3Rf ZGF0YS9ldWNfa3JfaW5fcmVmLnR4dCI6IjFmNDE5ZjRjYTQ3ZDcwOGI1NGM3M2M0NjE1NDVhMDIy YWUyZTIwNDk4ZmRiZjgwMDVhNDgzZDc1MmEyMDQ4ODMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9v dXQudHh0IjoiZTdmMzJlMDI2ZjcwYmUxZTFiNThlMDA0N2JhZjdkM2QyYzUyMDI2OWM0ZjliOTk5 MmUxNThiNGRlY2IwYTFhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IjoiYzk5 MDc4NTc5ODBiMjBiOGU5ZTNiNTg0NDgyZWQ2NTY3YTJiZTYxODVkNzIyMzdiNjMyMmYwNDA0OTQ0 OTI0ZSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiJhYjcyMzFiMmQzZTlhZmFjZGJk N2Q3ZjNiOWU1MzYxYTdmZjlmN2UxY2ZkYjRmM2JkOTA1YjkzNjJiMzA5ZTUzIiwic3JjL3Rlc3Rf ZGF0YS9nYjE4MDMwX2luX3JlZi50eHQiOiJkYzUwNjk0MjFhZGNhMjA0M2M1NWY1MDEyYjU1YTc2 ZmRmZjY1MWQyMmU2ZTY5OWZkMDk3OGY4ZDU3MDY4MTVjIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMw X291dC50eHQiOiJmMDIwOGQ1MjdmNWNhNjNkZTdkOWEwMzIzYmU4ZDVjZjEyZDhhMTA0YjI5NDNk OTJjMjcwMWYwYzMzNjRkYWMxIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0Ijoi NjgxOWZlNDc2MjdlNGVhMDEwMjcwMDNmYzUxNGI5ZjIxYTEzMjJlNzMyZDdmMWZiOTJjYzZjNTQ1 NWJjNmMwNyIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiY2QyNGJiZGNiMTgz NGUyNWRiNTQ2NDZmYmY0YzQxNTYwYTEzZGM3NTQwZjZiZTNkYmE0ZjVkOTdkNDQ1MTNhZiIsInNy Yy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4 NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9k YXRhL2lzb18yMDIyX2pwX291dC50eHQiOiI5YjZmMDE1MzI5ZGRhNmMzZjllZTVjZTZkYmQ2ZmE5 Yzg5YWNjMjEyODNlODg2ODM2Yzc4YjhkODMzNDgwYzIxIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAy Ml9qcF9vdXRfcmVmLnR4dCI6Ijc4Y2IyNjAwOTNhMjAxMTZhZDlhNDJmNDNiMDVkMTg0OGM1YWIx MDBiNmI5YTg1MDc0OTgwOWU5NDM4ODRiMzUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0 IjoiNmRmMzAzMDU1M2ZmYjBhNjYxNWJiMzNkYzhlYTlkY2E2ZDk2MjNhOTAyOGUyZmZlYzc1NGNl M2MzZGE4MjRjYyIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0IjoiM2RjNGU2YTVl MDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMyY2RmNSIs InNyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiNGVjMjQ0NzdlMTY3NWNlNzUwNzMzYmRj M2M1YWRkMWNkMjdiNmJkNGNlMWYwOTI4OTU2NDY0NmU5NjU0ZTg1NyIsInNyYy90ZXN0X2RhdGEv amlzMDIwOF9vdXRfcmVmLnR4dCI6ImMzZTFjZWY1MDMyYjJiMWQ5M2E0MDZmMzFmZjk0MGM0ZTJk ZmU4ODU5YjhiMTdjYTI3NjFmZWU3YTc1YTBlNDgiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4u dHh0IjoiYzAxMWYwZGQ3MmJkN2M4Y2Q5MjJkZjkzNzRlZjhkMjc2OWE3NzE5MDUxNGM3N2Y2YzYy YjQxNTg1MmVlYjlmZSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IjoiN2Q5NDU4 YjNkMmY3M2U3MDkyYTdmNTA1YzA4Y2UxZDIzM2RkZTE4YWE2NzlmYmNmOTg4OTI1NjIzOWNjOWUw NiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6IjAyZTM4OWNjZWYwZGQyMTIyZTYz ZjUwMzg5OTQwMmNiN2Y3OTc5MTJjMjQ0NGNjODBhYjkzMTMxMTE2YzU1MjQiLCJzcmMvdGVzdF9k YXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0IjoiNTEyZjk4NTk1MGNhOTAyZTY0M2M4ODY4MmRiYTk3 MDhiN2MzOGQzYzVlYzI5MjUxNjhhYjAwYWM5NGFiMTlmOSIsInNyYy90ZXN0X2RhdGEvc2hpZnRf amlzX291dC50eHQiOiI1ZmJjNDRkYTdiZjYzOWJmNmNmZTBmYTFmZDNlYmE3MTAyYjg4ZjgxOTE5 YzllYTk5MTMwMjcxMmY2OTQyNmZiIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50 eHQiOiI0NjYzMjJjNmZlZDgyODZjNjQ1ODI3MzE3NTUyOTBjMjI5NjUwOGVmZGQyNTg4MjZlNjI3 OTY4NjY0OWI0ODFmIiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUxMWIwMmIzYjhk MTVmYjU2MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAwZCIsInNyYy90 ZXN0aW5nLnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcwYmY1MmY3ZTIw ZWIxNjA1ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2ZhZDM4ZDc1MGMy YzI0N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwic3JjL3V0Zl84 LnJzIjoiN2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZjMjhmM2I0NWMx OTQ2Nzg1MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1NGE3MTY5ZGU4 NzMxZWE5Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94X3VzZXJfZGVm aW5lZC5ycyI6Ijk0NTZjYTQ2MTY4ZWY4NmM5ODM5OWEyNTM2ZjU3N2VmN2JlM2NkZGU5MGMwYzUx MzkyZDhhYzQ4NTE5ZDNmYWUifSwicGFja2FnZSI6ImI0NWRlOTA0YWEwYjAxMGJjZTJhYjQ1MjY0 ZDA2MzE2ODE4NDdmYTdiNmYyZWFhN2RhYjc2MTk5NDNiYzRmNTkifQotXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9D YXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwJMjAyNS0wNC0yMCAxOToy ODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv Q2FyZ28udG9tbAkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzODgwNTAwNyArMDMwMAotQEAgLTExLDgg KzExLDkgQEAKLSAKLSBbcGFja2FnZV0KLSBlZGl0aW9uID0gIjIwMTgiCi0rcnVzdC12ZXJzaW9u ID0gIjEuMzYiCi0gbmFtZSA9ICJlbmNvZGluZ19ycyIKLS12ZXJzaW9uID0gIjAuOC4zMyIKLSt2 ZXJzaW9uID0gIjAuOC4zNCIKLSBhdXRob3JzID0gWyJIZW5yaSBTaXZvbmVuIDxoc2l2b25lbkBo c2l2b25lbi5maT4iXQotIGRlc2NyaXB0aW9uID0gIkEgR2Vja28tb3JpZW50ZWQgaW1wbGVtZW50 YXRpb24gb2YgdGhlIEVuY29kaW5nIFN0YW5kYXJkIgotIGhvbWVwYWdlID0gImh0dHBzOi8vZG9j cy5ycy9lbmNvZGluZ19ycy8iCi1AQCAtMzYsMTMgKzM3LDEzIEBACi0gW3Byb2ZpbGUucmVsZWFz ZV0KLSBsdG8gPSB0cnVlCi0gCi0rW2RlcGVuZGVuY2llcy5hbnlfYWxsX3dvcmthcm91bmRdCi0r dmVyc2lvbiA9ICIwLjEuMCIKLStvcHRpb25hbCA9IHRydWUKLSsKLSBbZGVwZW5kZW5jaWVzLmNm Zy1pZl0KLSB2ZXJzaW9uID0gIjEuMCIKLSAKLS1bZGVwZW5kZW5jaWVzLnBhY2tlZF9zaW1kXQot LXZlcnNpb24gPSAiMC4zLjkiCi0tb3B0aW9uYWwgPSB0cnVlCi0tCi0gW2RlcGVuZGVuY2llcy5z ZXJkZV0KLSB2ZXJzaW9uID0gIjEuMCIKLSBvcHRpb25hbCA9IHRydWUKLUBAIC03NCwxMCArNzUs NCBAQAotIGxlc3Mtc2xvdy1iaWc1LWhhbnppLWVuY29kZSA9IFtdCi0gbGVzcy1zbG93LWdiLWhh bnppLWVuY29kZSA9IFtdCi0gbGVzcy1zbG93LWthbmppLWVuY29kZSA9IFtdCi0tc2ltZC1hY2Nl bCA9IFsKLS0gICAgInBhY2tlZF9zaW1kIiwKLS0gICAgInBhY2tlZF9zaW1kL2ludG9fYml0cyIs Ci0tXQotLQotLVtiYWRnZXMudHJhdmlzLWNpXQotLXJlcG9zaXRvcnkgPSAiaHNpdm9uZW4vZW5j b2RpbmdfcnMiCi0rc2ltZC1hY2NlbCA9IFsiYW55X2FsbF93b3JrYXJvdW5kIl0KLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JFQURNRS5tZCBiL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL1JFQURNRS5tZAkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQJMjAyNS0wOS0xNyAxNzo0 MToyMS4xMzg4MDUwMDcgKzAzMDAKLUBAIC0xNjcsMTMgKzE2NywxNSBAQAotIAotICMjIyBgc2lt ZC1hY2NlbGAKLSAKLS1FbmFibGVzIFNJTUQgYWNjZWxlcmF0aW9uIHVzaW5nIHRoZSBuaWdodGx5 LWRlcGVuZGVudCBgcGFja2VkX3NpbWRgIGNyYXRlLgotK0VuYWJsZXMgU0lNRCBhY2NlbGVyYXRp b24gdXNpbmcgdGhlIG5pZ2h0bHktZGVwZW5kZW50IGBwb3J0YWJsZV9zaW1kYCBzdGFuZGFyZAot K2xpYnJhcnkgZmVhdHVyZS4KLSAKLSBUaGlzIGlzIGFuIG9wdC1pbiBmZWF0dXJlLCBiZWNhdXNl IGVuYWJsaW5nIHRoaXMgZmVhdHVyZSBfb3B0cyBvdXRfIG9mIFJ1c3QncwotIGd1YXJhbnRlZXMg b2YgZnV0dXJlIGNvbXBpbGVycyBjb21waWxpbmcgb2xkIGNvZGUgKGFrYS4gInN0YWJpbGl0eSBz dG9yeSIpLgotIAotIEN1cnJlbnRseSwgdGhpcyBoYXMgbm90IGJlZW4gdGVzdGVkIHRvIGJlIGFu IGltcHJvdmVtZW50IGV4Y2VwdCBmb3IgdGhlc2UKLS10YXJnZXRzOgotK3RhcmdldHMgYW5kIGVu YWJsaW5nIHRoZSBgc2ltZC1hY2NlbGAgZmVhdHVyZSBpcyBleHBlY3RlZCB0byBicmVhayB0aGUg YnVpbGQKLStvbiBvdGhlciB0YXJnZXRzOgotIAotICogeDg2XzY0Ci0gKiBpNjg2Ci1AQCAtMTg1 LDIyICsxODcsNiBAQAotIFJ1c3RfLCB5b3Ugc2hvdWxkIGVuYWJsZSB0aGlzIGZlYXR1cmUuIE90 aGVyd2lzZSwgcGxlYXNlIF9kbyBub3RfIGVuYWJsZSB0aGlzCi0gZmVhdHVyZS4KLSAKLS1fTm90 ZSFfIElmIHlvdSBhcmUgY29tcGlsaW5nIGZvciBhIHRhcmdldCB0aGF0IGRvZXMgbm90IGhhdmUg MTI4LWJpdCBTSU1ECi0tZW5hYmxlZCBhcyBwYXJ0IG9mIHRoZSB0YXJnZXQgZGVmaW5pdGlvbiBh bmQgeW91IGFyZSBlbmFibGluZyAxMjgtYml0IFNJTUQKLS11c2luZyBgLUMgdGFyZ2V0X2ZlYXR1 cmVgLCB5b3UgbmVlZCB0byBlbmFibGUgdGhlIGBjb3JlX2FyY2hgIENhcmdvIGZlYXR1cmUKLS1m b3IgYHBhY2tlZF9zaW1kYCB0byBjb21waWxlIGEgY3JhdGVzLmlvIHNuYXBzaG90IG9mIGBjb3Jl X2FyY2hgIGluc3RlYWQgb2YKLS11c2luZyB0aGUgc3RhbmRhcmQtbGlicmFyeSBjb3B5IG9mIGBj b3JlOjphcmNoYCwgYmVjYXVzZSB0aGUgYGNvcmU6OmFyY2hgCi0tbW9kdWxlIG9mIHRoZSBwcmUt Y29tcGlsZWQgc3RhbmRhcmQgbGlicmFyeSBoYXMgYmVlbiBjb21waWxlZCB3aXRoIHRoZQotLWFz c3VtcHRpb24gdGhhdCB0aGUgQ1BVIGRvZXNuJ3QgaGF2ZSAxMjgtYml0IFNJTUQuIEF0IHByZXNl bnQgdGhpcyBhcHBsaWVzCi0tbWFpbmx5IHRvIDMyLWJpdCBBUk0gdGFyZ2V0cyB3aG9zZSBmaXJz dCBjb21wb25lbnQgZG9lcyBub3QgaW5jbHVkZSB0aGUKLS1zdWJzdHJpbmcgYG5lb25gLgotLQot LVRoZSBlbmNvZGluZ19ycyBzaWRlIG9mIHRoaW5ncyBoYXMgbm90IGJlZW4gcHJvcGVybHkgc2V0 IHVwIGZvciBQT1dFUiwKLS1Qb3dlclBDLCBNSVBTLCBldGMuLCBTSU1EIGF0IHRoaXMgdGltZSwg c28gZXZlbiBpZiB5b3Ugd2VyZSB0byBmb2xsb3cKLS10aGUgYWR2aWNlIGZyb20gdGhlIHByZXZp b3VzIHBhcmFncmFwaCwgeW91IHByb2JhYmx5IHNob3VsZG4ndCB1c2UKLS10aGUgYHNpbWQtYWNj ZWxgIG9wdGlvbiBvbiB0aGUgbGVzcyBtYWluc3RyZWFtIGFyY2hpdGVjdHVyZXMgYXQgdGhpcwot LXRpbWUuCi0tCi0gVXNlZCBieSBGaXJlZm94LgotIAotICMjIyBgc2VyZGVgCi1AQCAtMzgxLDgg KzM2Nyw5IEBACi0gYXBwZWFyIHRvIHRyZWF0IE1TUlYgY2hhbmdlcyBhcyBzZW12ZXItYnJlYWtp bmcsIHNvIGl0IHdvdWxkIGJlIHVzZWxlc3MgZm9yCi0gdGhpcyBjcmF0ZSB0byB0cmVhdCBNU1JW IGNoYW5nZXMgYXMgc2VtdmVyLWJyZWFraW5nLgotIAotLUFzIG9mIDIwMjEtMDItMDQsIE1TUlYg YXBwZWFycyB0byBiZSBSdXN0IDEuMzYuMCBmb3IgdXNpbmcgdGhlIGNyYXRlIGFuZAotK0FzIG9m IDIwMjQtMDQtMDQsIE1TUlYgYXBwZWFycyB0byBiZSBSdXN0IDEuMzYuMCBmb3IgdXNpbmcgdGhl IGNyYXRlIGFuZAotIDEuNDIuMCBmb3IgZG9jIHRlc3RzIHRvIHBhc3Mgd2l0aG91dCBlcnJvcnMg YWJvdXQgdGhlIGdsb2JhbCBhbGxvY2F0b3IuCi0rV2l0aCB0aGUgYHNpbWQtYWNjZWxgIGZlYXR1 cmUsIHRoZSBNU1JWIGlzIGV2ZW4gaGlnaGVyLgotIAotICMjIENvbXBhdGliaWxpdHkgd2l0aCBy dXN0LWVuY29kaW5nCi0gCi1AQCAtNDQ2LDEwICs0MzMsMTcgQEAKLSAtIFt4XSBBZGQgYWN0dWFs bHkgZmFzdCBDSksgZW5jb2RlIG9wdGlvbnMuCi0gLSBbIF0gfkludmVzdGlnYXRlIFtCb2IgU3Rl YWdhbGwncyBsb29rdXAgdGFibGUgYWNjZWxlcmF0aW9uIGZvciBVVEYtOF0oaHR0cHM6Ly9naXRo dWIuY29tL0JvYlN0ZWFnYWxsL0NwcE5vdzIwMTgvYmxvYi9tYXN0ZXIvRmFzdENvbnZlcnNpb25G cm9tVVRGLTgvRmFzdCUyMENvbnZlcnNpb24lMjBGcm9tJTIwVVRGLTglMjB3aXRoJTIwQyUyQiUy QiUyQyUyMERGQXMlMkMlMjBhbmQlMjBTU0UlMjBJbnRyaW5zaWNzJTIwLSUyMEJvYiUyMFN0ZWFn YWxsJTIwLSUyMEMlMkIlMkJOb3clMjAyMDE4LnBkZikufgotIC0gW3hdIFByb3ZpZGUgYSBidWls ZCBtb2RlIHRoYXQgd29ya3Mgd2l0aG91dCBgYWxsb2NgICh3aXRoIGxlc3NlciBBUEkgc3VyZmFj ZSkuCi0tLSBbIF0gTWlncmF0ZSB0byBgc3RkOjpzaW1kYCBvbmNlIGl0IGlzIHN0YWJsZSBhbmQg ZGVjbGFyZSAxLjAuCi0rLSBbeF0gTWlncmF0ZSB0byBgc3RkOjpzaW1kYCB+b25jZSBpdCBpcyBz dGFibGUgYW5kIGRlY2xhcmUgMS4wLn4KLSstIFsgXSBNaWdyYXRlIGB1bnNhZmVgIHNsaWNlIGFj Y2VzcyBieSBsYXJnZXIgdHlwZXMgdGhhbiBgdThgL2B1MTZgIHRvIGBhbGlnbl90b2AuCi0gCi0g IyMgUmVsZWFzZSBOb3RlcwotIAotKyMjIyAwLjguMzQKLSsKLSsqIFVzZSB0aGUgYHBvcnRhYmxl X3NpbWRgIG5pZ2h0bHkgZmVhdHVyZSBvZiB0aGUgc3RhbmRhcmQgbGlicmFyeSBpbnN0ZWFkIG9m IHRoZSBgcGFja2VkX3NpbWRgIGNyYXRlLiBPbmx5IGFmZmVjdHMgdGhlIGBzaW1kLWFjY2VsYCBv cHRpb25hbCBuaWdodGx5IGZlYXR1cmUuCi0rKiBJbnRlcm5hbCBkb2N1bWVudGF0aW9uIGltcHJv dmVtZW50cyBhbmQgbWlub3IgY29kZSBpbXByb3ZlbWVudHMgYXJvdW5kIGB1bnNhZmVgLgotKyog QWRkZWQgYHJ1c3QtdmVyc2lvbmAgdG8gYENhcmdvLnRvbWxgLgotKwotICMjIyAwLjguMzMKLSAK LSAqIFVzZSBgcGFja2VkX3NpbWRgIGluc3RlYWQgb2YgYHBhY2tlZF9zaW1kXzJgIGFnYWluIG5v dyB0aGF0IHVwZGF0ZXMgYXJlIGJhY2sgdW5kZXIgdGhlIGBwYWNrZWRfc2ltZGAgbmFtZS4gT25s eSBhZmZlY3RzIHRoZSBgc2ltZC1hY2NlbGAgb3B0aW9uYWwgbmlnaHRseSBmZWF0dXJlLgotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2FzY2lpLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvYXNjaWkucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2FzY2lpLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9hc2NpaS5y cwkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzOTgwNDk2OSArMDMwMAotQEAgLTUxLDYgKzUxLDggQEAK LSAgICAgfQotIH0KLSAKLSsvLyBTYWZldHkgaW52YXJpYW50cyBmb3IgbWFza3M6IGRhdGEgJiBt YXNrID0gMCBmb3IgdmFsaWQgQVNDSUkgb3IgYmFzaWMgbGF0aW4gdXRmLTE2Ci0rCi0gLy8gYGFz YCB0cnVuY2F0ZXMsIHNvIHdvcmtzIG9uIDMyLWJpdCwgdG9vLgotICNbYWxsb3coZGVhZF9jb2Rl KV0KLSBwdWIgY29uc3QgQVNDSUlfTUFTSzogdXNpemUgPSAweDgwODBfODA4MF84MDgwXzgwODB1 NjQgYXMgdXNpemU7Ci1AQCAtNjIsNiArNjQsOSBAQAotICNbYWxsb3codW51c2VkX21hY3Jvcyld Ci0gbWFjcm9fcnVsZXMhIGFzY2lpX25haXZlIHsKLSAgICAgKCRuYW1lOmlkZW50LCAkc3JjX3Vu aXQ6dHksICRkc3RfdW5pdDp0eSkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBk c3QgbXVzdCBoYXZlIGxlbl91bml0IGVsZW1lbnRzIGFuZCBiZSBhbGlnbmVkCi0rICAgICAgICAv Ly8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGZh aWxzCi0rICAgICAgICAvLy8gdG8gY29udmVydC4gVGhlIGZpcnN0IHZhbHVlIHdpbGwgYmUgYSB1 OCB0aGF0IGlzID4gMTI3LgotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1 YiB1bnNhZmUgZm4gJG5hbWUoCi0gICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAot QEAgLTcxLDEwICs3NiwxMyBAQAotICAgICAgICAgICAgIC8vIFllcywgbWFudWFsbHkgb21pdHRp bmcgdGhlIGJvdW5kIGNoZWNrIGhlcmUgbWF0dGVycwotICAgICAgICAgICAgIC8vIGEgbG90IGZv ciBwZXJmLgotICAgICAgICAgICAgIGZvciBpIGluIDAuLmxlbiB7Ci0rICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAgICAgbGV0 IGNvZGVfdW5pdCA9ICooc3JjLmFkZChpKSk7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAgICAgICAgICAgICAgIGlm IGNvZGVfdW5pdCA+IDEyNyB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29k ZV91bml0LCBpKSk7Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICAgICAqKGRzdC5hZGQo aSkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgcmV0dXJuIE5vbmU7Ci1AQCAtODUsOSArOTMsMTUgQEAKLSAjW2FsbG93KHVudXNlZF9tYWNy b3MpXQotIG1hY3JvX3J1bGVzISBhc2NpaV9hbHUgewotICAgICAoJG5hbWU6aWRlbnQsCi0rICAg ICAvLyBzYWZldHkgaW52YXJpYW50OiBzcmMvZHN0IE1VU1QgYmUgdTgKLSAgICAgICRzcmNfdW5p dDp0eSwKLSAgICAgICRkc3RfdW5pdDp0eSwKLSsgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHN0 cmlkZV9mbiBtdXN0IGNvbnN1bWUgYW5kIHByb2R1Y2UgdHdvIHVzaXplcywgYW5kIHJldHVybiB0 aGUgaW5kZXggb2YgdGhlIGZpcnN0IG5vbi1hc2NpaSB3aGVuIGl0IGZhaWxzCi0gICAgICAkc3Ry aWRlX2ZuOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0 IGhhdmUgbGVuIGVsZW1lbnRzLCBzcmMgaXMgdmFsaWQgZm9yIHJlYWQsIGRzdCBpcyB2YWxpZCBm b3IKLSsgICAgICAgIC8vLyB3cml0ZQotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBmYWlscwotKyAgICAgICAgLy8vIHRvIGNv bnZlcnQuIFRoZSBmaXJzdCB2YWx1ZSB3aWxsIGJlIGEgdTggdGhhdCBpcyA+IDEyNy4KLSAgICAg ICAgICNbY2ZnX2F0dHIoZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLCBhbGxvdyhuZXZlcl9sb29w LCBjYXN0X3B0cl9hbGlnbm1lbnQpKV0KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAg ICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKAotQEAgLTk4LDYgKzExMiw3IEBACi0gICAgICAgICAg ICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7Ci0gICAgICAgICAgICAgLy8gVGhpcyBsb29wIGlz IG9ubHkgYnJva2VuIG91dCBvZiBhcyBhIGBnb3RvYCBmb3J3YXJkCi0gICAgICAgICAgICAgbG9v cCB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdW50aWxfYWxpZ25tZW50IGJlY29tZXMg dGhlIG51bWJlciBvZiBieXRlcyB3ZSBuZWVkIHRvIG11bmNoIHVudGlsIHdlIGFyZSBhbGlnbmVk IHRvIHVzaXplCi0gICAgICAgICAgICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50ID0gewot ICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIG90aGVyIHVuaXQgYWxpZ25zIGlm IHdlIG1vdmUgdGhlIG5hcnJvd2VyIHVuaXQKLSAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFs aWdubWVudC4KLUBAIC0xMDYsNiArMTIxLDcgQEAKLSAgICAgICAgICAgICAgICAgICAgIGxldCBz cmNfYWxpZ25tZW50ID0gKHNyYyBhcyB1c2l6ZSkgJiBBTFVfQUxJR05NRU5UX01BU0s7Ci0gICAg ICAgICAgICAgICAgICAgICBsZXQgZHN0X2FsaWdubWVudCA9IChkc3QgYXMgdXNpemUpICYgQUxV X0FMSUdOTUVOVF9NQVNLOwotICAgICAgICAgICAgICAgICAgICAgaWYgc3JjX2FsaWdubWVudCAh PSBkc3RfYWxpZ25tZW50IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGJh aWxzIGVhcmx5IGFuZCBlbmRzIHVwIGluIHRoZSBuYcOvdmUgYnJhbmNoIHdoZXJlIHVzaXplLWFs aWdubWVudCBkb2Vzbid0IG1hdHRlcgotICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgKEFMVV9BTElHTk1F TlQgLSBzcmNfYWxpZ25tZW50KSAmIEFMVV9BTElHTk1FTlRfTUFTSwotQEAgLTEzNCwyNSArMTUw LDQwIEBACi0gICAgICAgICAgICAgICAgICAgICAvLyB4ODZfNjQgc2hvdWxkIGJlIHVzaW5nIFNT RTIgaW4gZHVlIGNvdXJzZSwga2VlcGluZyB0aGUgbW92ZQotICAgICAgICAgICAgICAgICAgICAg Ly8gdG8gYWxpZ25tZW50IGhlcmUuIEl0IHdvdWxkIGJlIGdvb2QgdG8gdGVzdCBvbiBtb3JlIEFS TSBDUFVzCi0gICAgICAgICAgICAgICAgICAgICAvLyBhbmQgb24gcmVhbCBNSVBTIGFuZCBQT1dF UiBoYXJkd2FyZS4KLSsgICAgICAgICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlIG9uY2UgYWdhaW4sIGZvciBgdW50 aWxfYWxpZ25tZW50YCBieXRlcwotICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdW50aWxfYWxp Z25tZW50ICE9IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAq KHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0 ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVcGhvbGRz IHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNv ZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQgc28gZmFyCi0gICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdW50 aWxfYWxpZ25tZW50IC09IDE7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIEFMVV9TVFJJREVfU0laRTsKLSAg ICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogbnVtX2FzY2lpIGlzIGtub3duIHRvIGJlIGEgYnl0ZSBpbmRleCBvZiBhIG5vbi1hc2Np aSBieXRlIGR1ZSB0byBzdHJpZGVfZm4ncyBpbnZhcmlhbnQKLSAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBsZXQgU29tZShudW1fYXNjaWkpID0gJHN0cmlkZV9mbigKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGVzZSBhcmUga25vd24gdG8gYmUgdmFsaWQgYW5k IGFsaWduZWQgc2luY2Ugd2UgaGF2ZSBhdAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBsZWFzdCBBTFVfU1RSSURFX1NJWkUgZGF0YSBpbiB0aGVzZSBidWZmZXJzLCBhbmQgb2Zmc2V0 IGlzIHRoZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgZWxlbWVu dHMgY29waWVkIHNvIGZhciwgd2hpY2ggYWNjb3JkaW5nIHRvIHRoZQotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyB1bnRpbF9hbGlnbm1lbnQgY2FsY3VsYXRpb24gYWJvdmUgd2lsbCBj YXVzZSBib3RoIHNyYyBhbmQgZHN0IHRvIGJlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGFsaWduZWQgdG8gdXNpemUgYWZ0ZXIgdGhpcyBhZGQKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3JjLmFkZChvZmZzZXQpIGFzICpjb25zdCB1c2l6ZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZHN0LmFkZChvZmZzZXQpIGFzICptdXQgdXNpemUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSBudW1fYXNjaWk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBo b2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlIGJ5IGluZGV4aW5nIGludG8gbm9uLWFz Y2lpIGJ5dGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKCooc3Jj LmFkZChvZmZzZXQpKSwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGNvbnRpbnVlcyB0byBiZSB0 aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIsIGFuZAotKyAgICAgICAgICAgICAgICAg ICAgICAgIC8vIG1haW50YWlucyB1c2l6ZSBhbGlnbm1lbnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRl cmF0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9TVFJJREVfU0la RTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+ IGxlbiAtIHN0cmlkZS4gVGhpcyBsb29wIHdpbGwgY29udGludWUgYXMgbG9uZyBhcwotKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGBvZmZzZXQgPD0gbGVuIC0gc3RyaWRlYCwgd2hpY2ggbWVh bnMgdGhlcmUgYXJlIGBzdHJpZGVgIGJ5dGVzIHRvIHN0aWxsIGJlIHJlYWQuCi0gICAgICAgICAg ICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLUBA IC0xNjAsMTEgKzE5MSwxNyBAQAotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg IGJyZWFrOwotICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMg aXMgdGhlIG5hw692ZSBjb2RlLCBzYW1lIGFzIGFzY2lpX25haXZlLCBhbmQgaGFzIG5vIHJlcXVp cmVtZW50cwotKyAgICAgICAgICAgIC8vIG90aGVyIHRoYW4gc3JjL2RzdCBiZWluZyB2YWxpZCBm b3IgdGhlIHRoZSByaWdodCBsZW5zCi0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsK LSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQotICAg ICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotICAgICAg ICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUKLSAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAg ICAgICB9Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhl cmUKLSAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRk c3RfdW5pdDsKLSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci0gICAgICAgICAgICAgfQot QEAgLTE3Niw5ICsyMTMsMTYgQEAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1 bGVzISBiYXNpY19sYXRpbl9hbHUgewotICAgICAoJG5hbWU6aWRlbnQsCi0rICAgIC8vIHNhZmV0 eSBpbnZhcmlhbnQ6IHVzZSB1OCBmb3Igc3JjL2Rlc3QgZm9yIGFzY2lpLCBhbmQgdTE2IGZvciBi YXNpY19sYXRpbgotICAgICAgJHNyY191bml0OnR5LAotICAgICAgJGRzdF91bml0OnR5LAotKyAg ICAvLyBzYWZldHkgaW52YXJpYW50OiBzdHJpZGUgZnVuY3Rpb24gbXVzdCBtdW5jaCBBTFVfU1RS SURFX1NJWkUqc2l6ZShzcmNfdW5pdCkgYnl0ZXMgb2ZmIG9mIHNyYyBhbmQKLSsgICAgLy8gd3Jp dGUgQUxVX1NUUklERV9TSVpFKnNpemUoZHN0X3VuaXQpIGJ5dGVzIHRvIGRzdAotICAgICAgJHN0 cmlkZV9mbjppZGVudCkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVz dCBoYXZlIGxlbiBlbGVtZW50cywgc3JjIGlzIHZhbGlkIGZvciByZWFkLCBkc3QgaXMgdmFsaWQg Zm9yCi0rICAgICAgICAvLy8gd3JpdGUKLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFy aWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZmFpbHMKLSsgICAgICAgIC8vLyB0byBj b252ZXJ0LiBUaGUgZmlyc3QgdmFsdWUgd2lsbCBiZSBhIHU4IHRoYXQgaXMgPiAxMjcuCi0gICAg ICAgICAjW2NmZ19hdHRyKAotICAgICAgICAgICAgIGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwK LSAgICAgICAgICAgICBhbGxvdyhuZXZlcl9sb29wLCBjYXN0X3B0cl9hbGlnbm1lbnQsIGNhc3Rf bG9zc2xlc3MpCi1AQCAtMTkyLDYgKzIzNiw4IEBACi0gICAgICAgICAgICAgbGV0IG11dCBvZmZz ZXQgPSAwdXNpemU7Ci0gICAgICAgICAgICAgLy8gVGhpcyBsb29wIGlzIG9ubHkgYnJva2VuIG91 dCBvZiBhcyBhIGBnb3RvYCBmb3J3YXJkCi0gICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogdW50aWxfYWxpZ25tZW50IGJlY29tZXMgdGhlIG51bWJlciBvZiBi eXRlcyB3ZSBuZWVkIHRvIG11bmNoIGZyb20gc3JjL2Rlc3QgdW50aWwgd2UgYXJlIGFsaWduZWQg dG8gdXNpemUKLSsgICAgICAgICAgICAgICAgLy8gV2UgZW5zdXJlIGJhc2ljLWxhdGluIGhhcyB0 aGUgc2FtZSBhbGlnbm1lbnQgYXMgYXNjaWksIHN0YXJ0aW5nIHdpdGggYXNjaWkgc2luY2UgaXQg aXMgc21hbGxlci4KLSAgICAgICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSB7 Ci0gICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgb3RoZXIgdW5pdCBhbGlnbnMg aWYgd2UgbW92ZSB0aGUgbmFycm93ZXIgdW5pdAotICAgICAgICAgICAgICAgICAgICAgLy8gdG8g YWxpZ25tZW50LgotQEAgLTIzNywyNCArMjgzLDM3IEBACi0gICAgICAgICAgICAgICAgICAgICAv LyB4ODZfNjQgc2hvdWxkIGJlIHVzaW5nIFNTRTIgaW4gZHVlIGNvdXJzZSwga2VlcGluZyB0aGUg bW92ZQotICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYWxpZ25tZW50IGhlcmUuIEl0IHdvdWxk IGJlIGdvb2QgdG8gdGVzdCBvbiBtb3JlIEFSTSBDUFVzCi0gICAgICAgICAgICAgICAgICAgICAv LyBhbmQgb24gcmVhbCBNSVBTIGFuZCBQT1dFUiBoYXJkd2FyZS4KLSsgICAgICAgICAgICAgICAg ICAgIC8vCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgdGhlIG5hw692 ZSBjb2RlIG9uY2UgYWdhaW4sIGZvciBgdW50aWxfYWxpZ25tZW50YCBieXRlcwotICAgICAgICAg ICAgICAgICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50ICE9IDAgewotICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zm c2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg ICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRl cyBjb3BpZWQgc28gZmFyCi0gICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7Ci0gICAgICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9 IGxlbiAtIEFMVV9TVFJJREVfU0laRTsKLSAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX2ZuKAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IFRoZXNlIGFyZSBrbm93biB0byBiZSB2YWxpZCBhbmQgYWxp Z25lZCBzaW5jZSB3ZSBoYXZlIGF0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxl YXN0IEFMVV9TVFJJREVfU0laRSBkYXRhIGluIHRoZXNlIGJ1ZmZlcnMsIGFuZCBvZmZzZXQgaXMg dGhlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBlbGVtZW50cyBj b3BpZWQgc28gZmFyLCB3aGljaCBhY2NvcmRpbmcgdG8gdGhlCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHVudGlsX2FsaWdubWVudCBjYWxjdWxhdGlvbiBhYm92ZSB3aWxsIGNhdXNl IGJvdGggc3JjIGFuZCBkc3QgdG8gYmUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g YWxpZ25lZCB0byB1c2l6ZSBhZnRlciB0aGlzIGFkZAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVzaXplLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkc3QuYWRkKG9mZnNldCkgYXMgKm11dCB1c2l6ZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogb2Zmc2V0IGNvbnRpbnVlcyB0byBiZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBm YXIsIGFuZAotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1haW50YWlucyB1c2l6ZSBhbGln bm1lbnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uCi0gICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0ICs9IEFMVV9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIHN0cmlkZS4gVGhpcyBsb29wIHdpbGwg Y29udGludWUgYXMgbG9uZyBhcwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBvZmZzZXQg PD0gbGVuIC0gc3RyaWRlYCwgd2hpY2ggbWVhbnMgdGhlcmUgYXJlIGBzdHJpZGVgIGJ5dGVzIHRv IHN0aWxsIGJlIHJlYWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVu X21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC0yNjIsMTEgKzMyMSwxNSBAQAotICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgIH0KLSsgICAg ICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlIG9uY2UgYWdhaW4sIGZv ciBsZWZ0b3ZlciBieXRlcwotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0rICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAg ICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAg ICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogVXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAgICAgICAgICAgICAg ICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAg fQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0g ICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3Vu aXQ7Ci0gICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgIH0KLUBAIC0y NzcsNyArMzQwLDExIEBACi0gCi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxl cyEgbGF0aW4xX2FsdSB7Ci0rICAgIC8vIHNhZmV0eSBpbnZhcmlhbnQ6IHN0cmlkZSBmdW5jdGlv biBtdXN0IG11bmNoIEFMVV9TVFJJREVfU0laRSpzaXplKHNyY191bml0KSBieXRlcyBvZmYgb2Yg c3JjIGFuZAotKyAgICAvLyB3cml0ZSBBTFVfU1RSSURFX1NJWkUqc2l6ZShkc3RfdW5pdCkgYnl0 ZXMgdG8gZHN0Ci0gICAgICgkbmFtZTppZGVudCwgJHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHks ICRzdHJpZGVfZm46aWRlbnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0 IG11c3QgaGF2ZSBsZW4gZWxlbWVudHMsIHNyYyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZh bGlkIGZvcgotKyAgICAgICAgLy8vIHdyaXRlCi0gICAgICAgICAjW2NmZ19hdHRyKAotICAgICAg ICAgICAgIGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwKLSAgICAgICAgICAgICBhbGxvdyhuZXZl cl9sb29wLCBjYXN0X3B0cl9hbGlnbm1lbnQsIGNhc3RfbG9zc2xlc3MpCi1AQCAtMjg3LDYgKzM1 NCw4IEBACi0gICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7Ci0gICAgICAgICAg ICAgLy8gVGhpcyBsb29wIGlzIG9ubHkgYnJva2VuIG91dCBvZiBhcyBhIGBnb3RvYCBmb3J3YXJk Ci0gICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdW50aWxf YWxpZ25tZW50IGJlY29tZXMgdGhlIG51bWJlciBvZiBieXRlcyB3ZSBuZWVkIHRvIG11bmNoIGZy b20gc3JjL2Rlc3QgdW50aWwgd2UgYXJlIGFsaWduZWQgdG8gdXNpemUKLSsgICAgICAgICAgICAg ICAgLy8gV2UgZW5zdXJlIHRoZSBVVEYtMTYgc2lkZSBoYXMgdGhlIHNhbWUgYWxpZ25tZW50IGFz IHRoZSBMYXRpbi0xIHNpZGUsIHN0YXJ0aW5nIHdpdGggTGF0aW4tMSBzaW5jZSBpdCBpcyBzbWFs bGVyLgotICAgICAgICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsKLSAgICAg ICAgICAgICAgICAgICAgIGlmIDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JHNyY191bml0PigpIDwg Ojpjb3JlOjptZW06OnNpemVfb2Y6OjwkZHN0X3VuaXQ+KCkgewotICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHVucGFjawotQEAgLTMxMywxOSArMzgyLDMwIEBACi0gICAgICAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgIGlmIHVudGlsX2Fs aWdubWVudCArIEFMVV9TVFJJREVfU0laRSA8PSBsZW4gewotKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3IgYHVudGls X2FsaWdubWVudGAgYnl0ZXMKLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdu bWVudCAhPSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihz cmMuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZz ZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQgc28gZmFyCi0g ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIEFMVV9TVFJJREVf U0laRTsKLSAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotICAgICAgICAgICAgICAgICAgICAg ICAgICRzdHJpZGVfZm4oCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VGhlc2UgYXJlIGtub3duIHRvIGJlIHZhbGlkIGFuZCBhbGlnbmVkIHNpbmNlIHdlIGhhdmUgYXQK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhc3QgQUxVX1NUUklERV9TSVpFIGRh dGEgaW4gdGhlc2UgYnVmZmVycywgYW5kIG9mZnNldCBpcyB0aGUKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGNvcGllZCBzbyBmYXIsIHdoaWNoIGFj Y29yZGluZyB0byB0aGUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW50aWxfYWxp Z25tZW50IGNhbGN1bGF0aW9uIGFib3ZlIHdpbGwgY2F1c2UgYm90aCBzcmMgYW5kIGRzdCB0byBi ZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbmVkIHRvIHVzaXplIGFmdGVy IHRoaXMgYWRkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZGQob2Zmc2V0KSBh cyAqY29uc3QgdXNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdC5hZGQob2Zm c2V0KSBhcyAqbXV0IHVzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZzZXQgY29udGludWVzIHRvIGJlIHRoZSBu dW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhciwgYW5kCi0rICAgICAgICAgICAgICAgICAgICAg ICAgLy8gbWFpbnRhaW5zIHVzaXplIGFsaWdubWVudCBmb3IgdGhlIG5leHQgbG9vcCBpdGVyYXRp b24KLSAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gQUxVX1NUUklERV9TSVpFOwot KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVu IC0gc3RyaWRlLiBUaGlzIGxvb3Agd2lsbCBjb250aW51ZSBhcyBsb25nIGFzCi0rICAgICAgICAg ICAgICAgICAgICAgICAgLy8gYG9mZnNldCA8PSBsZW4gLSBzdHJpZGVgLCB3aGljaCBtZWFucyB0 aGVyZSBhcmUgYHN0cmlkZWAgYnl0ZXMgdG8gc3RpbGwgYmUgcmVhZC4KLSAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTMz Myw3ICs0MTMsOSBAQAotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgdGhlIG5h w692ZSBjb2RlIG9uY2UgYWdhaW4sIGZvciBsZWZ0b3ZlciBieXRlcwotICAgICAgICAgICAgIHdo aWxlIG9mZnNldCA8IGxlbiB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFy aWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFk ZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91 bml0IGFzICRkc3RfdW5pdDsKLSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci1AQCAtMzQ4 LDExICs0MzAsMTkgQEAKLSAgICAgICAgICRuYW1lOmlkZW50LAotICAgICAgICAgJHNyY191bml0 OnR5LAotICAgICAgICAgJGRzdF91bml0OnR5LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1 bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciBy ZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAg ICAgJHN0cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMg ZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJl IHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3Rf dW5pdAotICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkL2FsaWduZWQgc3JjL2Rl c3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNy Y191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX2RzdF9hbGlnbmVkOmlkZW50LAotKyAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQgc3Jj L2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpF IHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVu dAotICAgICApID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYy9kc3QgbXVzdCBiZSB2YWxp ZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9mIHRoZWlyIHVuaXRzLgotKyAg ICAgICAgLy8vCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0 dXJuIFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBl bGVtZW50IGluIHRoZSBTb21lIGJlaW5nCi0rICAgICAgICAvLy8gZ3VhcmFudGVlZCB0byBiZSBu b24tQVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNldCB3aGVyZSBp dCBpcyBmb3VuZAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNh ZmUgZm4gJG5hbWUoCi0gICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAotQEAgLTM2 MCw2ICs0NTAsNyBAQAotICAgICAgICAgICAgIGxlbjogdXNpemUsCi0gICAgICAgICApIC0+IE9w dGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsKLSAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9 IDB1c2l6ZTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMg d2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0la RWAgZWxlbWVudHMuCi0gICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewot ICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURF X1NJWkU7Ci0gICAgICAgICAgICAgICAgIC8vIFhYWCBTaG91bGQgd2UgZmlyc3QgcHJvY2VzcyBv bmUgc3RyaWRlIHVuY29uZGl0aW9uYWxseSBhcyB1bmFsaWduZWQgdG8KLUBAIC0zNjgsMjMgKzQ1 OSwyOSBAQAotICAgICAgICAgICAgICAgICAvLyBvbiBIYXN3ZWxsLCBpdCB3b3VsZCBtYWtlIHNl bnNlIHRvIGp1c3QgdXNlIHVuYWxpZ25lZCBhbmQgbm90IGJvdGhlcgotICAgICAgICAgICAgICAg ICAvLyBjaGVja2luZy4gTmVlZCB0byBiZW5jaG1hcmsgb2xkZXIgYXJjaGl0ZWN0dXJlcyBiZWZv cmUgZGVjaWRpbmcuCi0gICAgICAgICAgICAgICAgIGxldCBkc3RfbWFza2VkID0gKGRzdCBhcyB1 c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLOwotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IGNoZWNraW5nIHdoZXRoZXIgc3JjIGlzIGFsaWduZWQKLSAgICAgICAgICAgICAgICAgaWYgKChz cmMgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykgPT0gMCB7Ci0rICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IENoZWNraW5nIHdoZXRoZXIgZHN0IGlzIGFsaWduZWQKLSAgICAg ICAgICAgICAgICAgICAgIGlmIGRzdF9tYXNrZWQgPT0gMCB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Un cmUgdmFsaWQgdG8gcmVhZC93cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGFuZCBoYXZl IHRoZSBhcHByb3ByaWF0ZSBhbGlnbm1lbnRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmICEkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0 KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVh bnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRv IG11bmNoIG5leHQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0 ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog V2UncmUgdmFsaWQgdG8gcmVhZC93cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGFuZCBo YXZlIHRoZSBhcHByb3ByaWF0ZSBhbGlnbm1lbnRzCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICEkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZz ZXQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBt ZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMg dG8gbXVuY2ggbmV4dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZz ZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMzkzLDIwICs0OTAs MjQgQEAKLSAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlm IGRzdF9tYXNrZWQgPT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgdG8gcmVhZC93 cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGFuZCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBh bGlnbm1lbnRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX2RzdF9h bGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0la RTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZz ZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBh dCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRl IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSdyZSB2YWxpZCB0byByZWFk L3dyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgYW5kIGhhdmUgdGhlIGFwcHJvcHJpYXRl IGFsaWdubWVudHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVp dGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJ REVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlz IGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMg aGF2ZSBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0 aW1lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNf c3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtNDE1LDggKzUxNiwxMCBAQAotICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxl biB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXNlcyBsZW4gaW52YXJpYW50IGhlcmUg YW5kIGJlbG93Ci0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zm c2V0KSk7Ci0gICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IHVwaG9sZHMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQKLSAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNv ZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci1AQCAtNDMzLDEzICs1MzYsMjEgQEAKLSAgICAgICAgICRu YW1lOmlkZW50LAotICAgICAgICAgJHNyY191bml0OnR5LAotICAgICAgICAgJGRzdF91bml0OnR5 LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVk IHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVf U0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQ6aWRl bnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWdu ZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcg U0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9zcmNf YWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJl cXVpcmUgdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRp bmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9u ZWl0aGVyX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24g bXVzdCByZXF1aXJlIGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcv d3JpdGluZyAyKlNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRk b3VibGVfc3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhp cyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBh cmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyAyKlNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQv ZHN0X3VuaXQKLSAgICAgICAgICRkb3VibGVfc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50Ci0gICAg ICkgPT4gewotLSAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSsgICAgICAgIC8vLyBTYWZldHk6 IHNyYy9kc3QgbXVzdCBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRz IG9mIHRoZWlyIHVuaXRzLgotKyAgICAgICAgLy8vCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJs ZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9uLUFT Q0lJLCB3aXRoIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBTb21lIGJlaW5nCi0rICAgICAgICAv Ly8gZ3VhcmFudGVlZCB0byBiZSBub24tQVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQgYmVp bmcgdGhlIG9mZnNldCB3aGVyZSBpdCBpcyBmb3VuZCAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0K LSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoCi0gICAgICAgICAgICAgc3JjOiAqY29uc3Qg JHNyY191bml0LAotICAgICAgICAgICAgIGRzdDogKm11dCAkZHN0X3VuaXQsCi1AQCAtNDUwLDgg KzU2MSwxMCBAQAotICAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBvbmx5IGJyb2tlbiBvdXQg b2YgYXMgYSBnb3RvIGZvcndhcmQgd2l0aG91dAotICAgICAgICAgICAgIC8vIGFjdHVhbGx5IGxv b3BpbmcKLSAgICAgICAgICAgICAnb3V0ZXI6IGxvb3AgewotKyAgICAgICAgICAgICAgICAvLyBT YWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3Jp dGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMuCi0gICAgICAgICAgICAg ICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAgICAgICAgICAgICAgICAgIC8v IEZpcnN0LCBwcm9jZXNzIG9uZSB1bmFsaWduZWQKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogdGhpcyBpcyBzYWZlIHRvIGNhbGwgc2luY2Ugd2UncmUgdmFsaWQgZm9yIHRoaXMgcmVh ZC93cml0ZQotICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVk KHNyYywgZHN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgJ291dGVyOwotICAg ICAgICAgICAgICAgICAgICAgfQotQEAgLTQ2MSwzNyArNTc0LDU0IEBACi0gICAgICAgICAgICAg ICAgICAgICAvLyB0aGVyZSB3aWxsIGJlIGVub3VnaCBtb3JlIHRvIGp1c3RpZnkgbW9yZSBleHBl bnNlCi0gICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgY2FzZSBvZiBub24tQVNDSUkuCi0g ICAgICAgICAgICAgICAgICAgICAvLyBVc2UgYWxpZ25lZCByZWFkcyBmb3IgdGhlIHNha2Ugb2Yg b2xkIG1pY3JvYWNoaXRlY3R1cmVzLgotKyAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBjb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUgbnVt YmVyIG9mIHNyY191bml0cyB0aGF0IG5lZWQgdG8gYmUgcmVhZCBiZWZvcmUgdGhlIHJlbWFpbmlu ZyBsaXN0IGlzIGFsaWduZWQuCi0rICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGxlc3Mg dGhhdCBTSU1EX0FMSUdOTUVOVCwgd2hpY2ggaXMgYWxzbyBTSU1EX1NUUklERV9TSVpFIChhcyBk b2N1bWVudGVkKQotICAgICAgICAgICAgICAgICAgICAgbGV0IHVudGlsX2FsaWdubWVudCA9ICgo U0lNRF9BTElHTk1FTlQKLSAgICAgICAgICAgICAgICAgICAgICAgICAtICgoc3JjLmFkZChvZmZz ZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spKQotICAgICAgICAgICAgICAgICAg ICAgICAgICYgU0lNRF9BTElHTk1FTlRfTUFTSykKLSAgICAgICAgICAgICAgICAgICAgICAgICAv IHVuaXRfc2l6ZTsKLS0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgYWRkaXRpb24gd29uJ3Qg b3ZlcmZsb3csIGJlY2F1c2UgZXZlbiBpbiB0aGUgMzItYml0IFBBRSBjYXNlIHRoZQotKyAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGFkZGl0aW9uIHdvbid0IG92ZXJmbG93LCBi ZWNhdXNlIGV2ZW4gaW4gdGhlIDMyLWJpdCBQQUUgY2FzZSB0aGUKLSAgICAgICAgICAgICAgICAg ICAgIC8vIGFkZHJlc3Mgc3BhY2UgaG9sZHMgZW5vdWdoIGNvZGUgdGhhdCB0aGUgc2xpY2UgbGVu Z3RoIGNhbid0IGJlIHRoYXQKLSAgICAgICAgICAgICAgICAgICAgIC8vIGNsb3NlIHRvIGFkZHJl c3Mgc3BhY2Ugc2l6ZS4KLSAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBub3cgZXF1YWxz IFNJTURfU1RSSURFX1NJWkUsIGhlbmNlIHRpbWVzIDMgYmVsb3cuCi0rICAgICAgICAgICAgICAg ICAgICAvLwotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1 Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYDIgKiBTSU1E X1NUUklERV9TSVpFYCBlbGVtZW50cyBwbHVzIGB1bnRpbF9hbGlnbm1lbnRgLgotKyAgICAgICAg ICAgICAgICAgICAgLy8gVGhlIGV4dHJhIFNJTURfU1RSSURFX1NJWkUgaW4gdGhlIGNvbmRpdGlv biBpcyBiZWNhdXNlIGBvZmZzZXRgIGlzIGFscmVhZHkgYFNJTURfU1RSSURFX1NJWkVgLgotICAg ICAgICAgICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICsgKFNJTURfU1RSSURFX1NJWkUg KiAzKSA8PSBsZW4gewotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHVudGlsX2FsaWdubWVu dCAhPSAwIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGlz IHNhZmUgdG8gY2FsbCBzaW5jZSB3ZSdyZSB2YWxpZCBmb3IgdGhpcyByZWFkL3dyaXRlIChhbmQg bW9yZSksIGFuZCBkb24ndCBjYXJlIGFib3V0IGFsaWdubWVudAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBUaGlzIHdpbGwgY29weSBvdmVyIGJ5dGVzIHRoYXQgZ2V0IGRlY29kZWQg dHdpY2Ugc2luY2UgaXQncyBub3QgaW5jcmVtZW50aW5nIGBvZmZzZXRgIGJ5IFNJTURfU1RSSURF X1NJWkUuIFRoaXMgaXMgZmluZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRz dHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g dW50aWxfYWxpZ25tZW50OwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IEF0IHRoaXMgcG9pbnQgd2UncmUgdmFsaWQgZm9yIHJl YWRpbmcvd3JpdGluZyAyKlNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMKLSsgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IE5vdyBgb2Zmc2V0YCBpcyBhbGlnbmVkIGZvciBgc3JjYAot ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byA9 IGxlbiAtIChTSU1EX1NUUklERV9TSVpFICogMik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGlzIHdoZXRoZXIgZHN0IGlzIGFsaWduZWQKLSAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgZHN0X21hc2tlZCA9IChkc3QuYWRkKG9mZnNldCkgYXMgdXNpemUpICYg U0lNRF9BTElHTk1FTlRfTUFTSzsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBkc3RfbWFz a2VkID09IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYm90aCBhcmUgYWxpZ25lZCwgd2Ug Y2FuIGNhbGwgdGhlIGFsaWduZWQgZnVuY3Rpb24uIFdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dy aXRpbmcgZG91YmxlIHN0cmlkZSBmcm9tIHRoZSBpbml0aWFsIGNvbmRpdGlvbgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBsb29wIGJyZWFrIGNvbmRpdGlvbiBi ZWxvdwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUoYWR2YW5j ZSkgPQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkb3VibGVfc3RyaWRl X2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gYWR2YW5jZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXNlcyBzYWZldHktdXNhYmxlIGlu dmFyaWFudCBvbiBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGUgdG8gcmV0dXJuCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ3VhcmFudGVlZCBub24tYXNj aWkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29k ZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpF ICogMjsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBp cyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFs d2F5cyBoYXZlIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVu Y2ggbmV4dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0 ID4gbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28gewotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBvbmUgbW9yZSwg YW5kIGNhbiBzdGlsbCBhc3N1bWUgYWxpZ25tZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNl dCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrICdvdXRlcjsKLUBAIC01MDAsMTggKzYzMCwyNSBAQAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IG9ubHkgc3JjIGlzIGFsaWduZWQgaGVyZS4gV2UncmUgdmFsaWQg Zm9yIHJlYWRpbmcvd3JpdGluZyBkb3VibGUgc3RyaWRlIGZyb20gdGhlIGluaXRpYWwgY29uZGl0 aW9uCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIGxvb3AgYnJl YWsgY29uZGl0aW9uIGJlbG93Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBs ZXQgU29tZShhZHZhbmNlKSA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JGRvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNl dCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGFkdmFuY2U7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVzZXMgc2Fm ZXR5LXVzYWJsZSBpbnZhcmlhbnQgb24gYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3RyaWRl IHRvIHJldHVybgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGd1YXJh bnRlZWQgbm9uLWFzY2lpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lN RF9TVFJJREVfU0laRSAqIDI7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGlj aCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVs ZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGVfdGltZXNfdHdvIHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dy aXRpbmcgb25lIG1vcmUsIGFuZCBjYW4gc3RpbGwgYXNzdW1lIGFsaWdubWVudAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9zcmNfYWxpZ25l ZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrICdvdXRlcjsKLUBAIC01MjIsMTEgKzY1OSwxMyBAQAot ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAv LyBBdCBtb3N0IHR3byBpdGVyYXRpb25zLCBzbyB1bnJvbGwKLSAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhlIGNoZWNrIGFib3ZlIGVuc3VyZXMgd2UncmUg YWxsb3dlZCB0byByZWFkL3dyaXRlIHRoaXMsIGFuZCB3ZSBkb24ndCB1c2UgYWxpZ25tZW50Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChz cmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0g bGVuIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhlIGNo ZWNrIGFib3ZlIGVuc3VyZXMgd2UncmUgYWxsb3dlZCB0byByZWFkL3dyaXRlIHRoaXMsIGFuZCB3 ZSBkb24ndCB1c2UgYWxpZ25tZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNl dCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC01MzgsOCArNjc3LDEwIEBACi0gICAg ICAgICAgICAgICAgIGJyZWFrICdvdXRlcjsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg d2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiByZWxpZXMg c3RyYWlnaHRmb3J3YXJkbHkgb24gdGhlIGBsZW5gIGludmFyaWFudAotICAgICAgICAgICAgICAg ICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICBp ZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJs ZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21l KChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci1AQCAtNTU2 LDMwICs2OTcsNDUgQEAKLSAgICAgICAgICRuYW1lOmlkZW50LAotICAgICAgICAgJHNyY191bml0 OnR5LAotICAgICAgICAgJGRzdF91bml0OnR5LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1 bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciBy ZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAg ICAgJHN0cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMg ZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJl IHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3Rf dW5pdAotICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkL2FsaWduZWQgc3JjL2Rl c3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNy Y191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX2RzdF9hbGlnbmVkOmlkZW50LAotKyAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQgc3Jj L2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpF IHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVu dAotKwotICAgICApID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYy9kc3QgbXVzdCBiZSB2 YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9mIHRoZWlyIHVuaXRzLgot ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUo c3JjOiAqY29uc3QgJHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46IHVzaXplKSB7 Ci0gICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7Ci0rICAgICAgICAgICAgLy8g U2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dy aXRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzLgotICAgICAgICAgICAg IGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAgICAgICAgICAgICAgbGV0IGxlbl9t aW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAv LyBXaGV0aGVyIGRzdCBpcyBhbGlnbmVkCi0gICAgICAgICAgICAgICAgIGxldCBkc3RfbWFza2Vk ID0gKGRzdCBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLOwotKyAgICAgICAgICAgICAg ICAvLyBXaGV0aGVyIHNyYyBpcyBhbGlnbmVkCi0gICAgICAgICAgICAgICAgIGlmICgoc3JjIGFz IHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spID09IDAgewotICAgICAgICAgICAgICAgICAg ICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBCb3RoIHdlcmUgYWxpZ25l ZCwgd2UgY2FuIHVzZSB0aGUgYWxpZ25lZCBmdW5jdGlvbgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zm c2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklE RV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMg YG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgLCB3aGljaCBtZWFucyBpbiB0aGUgbmV4 dCBpdGVyYXRpb24gd2UncmUgdmFsaWQgZm9yCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzLgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRl IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgd2FzIGFsaWduZWQsIGRz dCB3YXMgbm90Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfc3JjX2FsaWdu ZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklE RV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdlJ3JlIHZhbGlkIGZv cgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nL3dyaXRpbmcgYXQgbGVh c3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTU4 OCwxNiArNzQ0LDIyIEBACi0gICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg ICAgICAgICBpZiBkc3RfbWFza2VkID09IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxv b3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyB3YXMgYWxp Z25lZCwgZHN0IHdhcyBub3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9k c3RfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJ TURfU1RSSURFX1NJWkVgLCB3aGljaCBtZWFucyBpbiB0aGUgbmV4dCBpdGVyYXRpb24gd2UncmUg dmFsaWQgZm9yCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWRpbmcvd3JpdGlu ZyBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzLgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBOZWl0aGVyIHdlcmUgYWxpZ25lZAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRz dC5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBT SU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgLCB3aGljaCBtZWFucyBp biB0aGUgbmV4dCBpdGVyYXRpb24gd2UncmUgdmFsaWQgZm9yCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVs ZW1lbnRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWlu dXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtNjA2LDYgKzc2OCw3IEBACi0gICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwg bGVuIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiByZWxpZXMgc3RyYWlnaHRmb3J3YXJk bHkgb24gdGhlIGBsZW5gIGludmFyaWFudAotICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0 ID0gKihzcmMuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0 KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g MTsKLUBAIC02MjAsNTYgKzc4Myw3NCBAQAotICAgICAgICAgJG5hbWU6aWRlbnQsCi0gICAgICAg ICAkc3JjX3VuaXQ6dHksCi0gICAgICAgICAkZHN0X3VuaXQ6dHksCi0rICAgICAgICAvLyBTYWZl dHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUg dmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91 bml0Ci0gICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3JjL2Rl c3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNy Y191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50LAotKyAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQvYWxp Z25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RS SURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQ6 aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVu YWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURf U1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9h bGlnbmVkOmlkZW50Ci0gICAgICkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjL2RzdCBt dXN0IGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2YgdGhlaXIg dW5pdHMuCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2FmZSBm biAkbmFtZShzcmM6ICpjb25zdCAkc3JjX3VuaXQsIGRzdDogKm11dCAkZHN0X3VuaXQsIGxlbjog dXNpemUpIHsKLSAgICAgICAgICAgICBsZXQgdW5pdF9zaXplID0gOjpjb3JlOjptZW06OnNpemVf b2Y6Ojwkc3JjX3VuaXQ+KCk7Ci0gICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7 Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZh bGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1l bnRzLgotICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSsgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGNvcnJlY3RseSBjYWxjdWxhdGVzIHRoZSBudW1iZXIg b2Ygc3JjX3VuaXRzIHRoYXQgbmVlZCB0byBiZSByZWFkIGJlZm9yZSB0aGUgcmVtYWluaW5nIGxp c3QgaXMgYWxpZ25lZC4KLSsgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBieSBkZWZpbml0aW9u IGxlc3MgdGhhbiBTSU1EX1NUUklERV9TSVpFLgotICAgICAgICAgICAgICAgICBsZXQgbXV0IHVu dGlsX2FsaWdubWVudCA9ICgoU0lNRF9TVFJJREVfU0laRQotICAgICAgICAgICAgICAgICAgICAg LSAoKHNyYyBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKSkKLSAgICAgICAgICAgICAg ICAgICAgICYgU0lNRF9BTElHTk1FTlRfTUFTSykKLSAgICAgICAgICAgICAgICAgICAgIC8gdW5p dF9zaXplOwotICAgICAgICAgICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7Ci0r ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQg Y29weSwgc2luY2UgdW50aWxfYWxpZ25tZW50IGlzIDwgU0lNRF9TVFJJREVfU0laRSA8IGxlbiwg dGhpcyBpcyBpbi1ib3VuZHMKLSAgICAgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQp KSA9ICooc3JjLmFkZChvZmZzZXQpKSBhcyAkZHN0X3VuaXQ7Ci0gICAgICAgICAgICAgICAgICAg ICBvZmZzZXQgKz0gMTsKLSAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAx OwotICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaGVyZSBv ZmZzZXQgd2lsbCBiZSBgdW50aWxfYWxpZ25tZW50YCwgaS5lLiBlbm91Z2ggdG8gYWxpZ24gYHNy Y2AuCi0gICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9T VFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1 Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYDIgKiBTSU1E X1NUUklERV9TSVpFYCBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lN RF9TVFJJREVfU0laRSAqIDIgPD0gbGVuIHsKLSAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5f bWludXNfc3RyaWRlX3RpbWVzX3R3byA9IGxlbl9taW51c19zdHJpZGUgLSBTSU1EX1NUUklERV9T SVpFOwotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBhdCB0aGlzIHBvaW50IHNyYyBp cyBrbm93biB0byBiZSBhbGlnbmVkIGF0IG9mZnNldCwgZHN0IGlzIG5vdC4KLSAgICAgICAgICAg ICAgICAgICAgIGlmIChkc3QuYWRkKG9mZnNldCkgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRf TUFTSyA9PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBjaGVja2VkIGFsaWdubWVudCBvZiBkc3Qg YWJvdmUsIHdlIGNhbiB1c2UgdGhlIGFsaWdubWVudCBmdW5jdGlvbnMuIFdlJ3JlIGFsbG93ZWQg dG8gcmVhZC93cml0ZSAyKlNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMsIHdoaWNoIHdlIGRvLgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRk KG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpF OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNl dCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2 ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQg dGltZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVz X3N0cmlkZV90aW1lc190d28gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg ICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHdl IGVuc3VyZWQgYWxpZ25tZW50IG9mIHNyYyBhbHJlYWR5LgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZz ZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURF X1NJWkU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQo c3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJ REVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NU UklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGVfdGltZXNfdHdvIHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2Ug YXJlIHZhbGlkIHRvIG11bmNoIFNJTURfU1RSSURFX1NJWkUgbW9yZSBlbGVtZW50cywgd2hpY2gg d2UgZG8KLSAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0IDwgbGVuX21pbnVzX3N0cmlkZSB7Ci0g ICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwg ZHN0LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NU UklERV9TSVpFOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAg ICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXNl cyBsZW4gaW52YXJpYW50IGhlcmUgYW5kIGJlbG93Ci0gICAgICAgICAgICAgICAgIGxldCBjb2Rl X3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIC8vIE9uIHg4Nl82 NCwgdGhpcyBsb29wIGF1dG92ZWN0b3JpemVzIGJ1dCBpbiB0aGUgcGFjawotICAgICAgICAgICAg ICAgICAvLyBjYXNlIHRoZXJlIGFyZSBpbnN0cnVjdGlvbnMgd2hvc2UgcHVycG9zZSBpcyB0byBt YWtlIHN1cmUKLUBAIC02OTMsNyArODc0LDEyIEBACi0gCi0gI1thbGxvdyh1bnVzZWRfbWFjcm9z KV0KLSBtYWNyb19ydWxlcyEgYXNjaWlfc2ltZF91bmFsaWduIHsKLSsgICAgLy8gU2FmZXR5OiBz dHJpZGVfbmVpdGhlcl9hbGlnbmVkIG11c3QgYmUgYSBmdW5jdGlvbiB0aGF0IHJlcXVpcmVzIHNy Yy9kZXN0IGJlIHZhbGlkIGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIGZvciBTSU1EX1NUUklE RV9TSVpFIGVsZW1lbnRzIG9mIHR5cGUgc3JjX3VuaXQvZGVzdF91bml0Ci0gICAgICgkbmFtZTpp ZGVudCwgJHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHksICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVk OmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZh bGlkIGZvciByZWFkcy93cml0ZXMgb2YgbGVuIGVsZW1lbnRzIG9mIHR5cGUgc3JjX3VuaXQvZHN0 X3VuaXQKLSsgICAgICAgIC8vLwotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50 OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0 aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZwotKyAgICAgICAgLy8vIGd1YXJhbnRl ZWQgdG8gYmUgbm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZz ZXQgd2hlcmUgaXQgaXMgZm91bmQKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAg ICBwdWIgdW5zYWZlIGZuICRuYW1lKAotICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5p dCwKLUBAIC03MDEsMjEgKzg4NywyNiBAQAotICAgICAgICAgICAgIGxlbjogdXNpemUsCi0gICAg ICAgICApIC0+IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsKLSAgICAgICAgICAgICBsZXQg bXV0IG9mZnNldCA9IDB1c2l6ZTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hl Y2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgc3Ry aWRlYCBlbGVtZW50cy4KLSAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7 Ci0gICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9TVFJJ REVfU0laRTsKLSAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IFdlIGtub3cgd2UncmUgdmFsaWQgZm9yIGBzdHJpZGVgIHJlYWRzL3dyaXRlcywg c28gd2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbi4gV2UgZG9uJ3QgbmVlZCBhbGlnbm1lbnQuCi0g ICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChv ZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBgb2Zm c2V0ID4gbGVuIC0gc3RyaWRlYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBg c3RyaWRlYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCi0gICAgICAgICAgICAgICAgICAg ICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewotKyAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFVzZXMgbGVuIGludmFyaWFudCBoZXJlIGFuZCBiZWxvdwotICAg ICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotICAgICAg ICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKLSAgICAgICAgICAgICAgICAgICAg IHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3Vu aXQ7Ci1AQCAtNzI4LDIxICs5MTksMjcgQEAKLSAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQot IG1hY3JvX3J1bGVzISBsYXRpbjFfc2ltZF91bmFsaWduIHsKLSsgICAgLy8gU2FmZXR5OiBzdHJp ZGVfbmVpdGhlcl9hbGlnbmVkIG11c3QgYmUgYSBmdW5jdGlvbiB0aGF0IHJlcXVpcmVzIHNyYy9k ZXN0IGJlIHZhbGlkIGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIGZvciBTSU1EX1NUUklERV9T SVpFIGVsZW1lbnRzIG9mIHR5cGUgc3JjX3VuaXQvZGVzdF91bml0Ci0gICAgICgkbmFtZTppZGVu dCwgJHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHksICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkOmlk ZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlk IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9mIGxlbiBlbGVtZW50cyBvZiB0eXBlIHNyY191 bml0L2RzdF91bml0Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVu c2FmZSBmbiAkbmFtZShzcmM6ICpjb25zdCAkc3JjX3VuaXQsIGRzdDogKm11dCAkZHN0X3VuaXQs IGxlbjogdXNpemUpIHsKLSAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKLSsg ICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQg Zm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgc3RyaWRlYCBlbGVtZW50cy4KLSAgICAgICAg ICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgIGxldCBs ZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRTsKLSAgICAgICAgICAgICAg ICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGtub3cgd2UncmUg dmFsaWQgZm9yIGBzdHJpZGVgIHJlYWRzL3dyaXRlcywgc28gd2UgY2FuIGNhbGwgdGhpcyBmdW5j dGlvbi4gV2UgZG9uJ3QgbmVlZCBhbGlnbm1lbnQuCi0gICAgICAgICAgICAgICAgICAgICAkc3Ry aWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7Ci0g ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAg ICAgICAgICAgICAgIC8vIFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIHN0cmlkZWAgd2hpY2ggbWVh bnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4 dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlk ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgd2hp bGUgb2Zmc2V0IDwgbGVuIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVc2VzIGxlbiBp bnZhcmlhbnQgaGVyZQotICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRk KG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3Vu aXQgYXMgJGRzdF91bml0OwotICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKLUBAIC03NTMs NyArOTUwLDExIEBACi0gCi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEg YXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUgewotKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUg bXVzdCBiZSB2YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVu YWxpZ25lZC4gKGNhbmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGln bmVkKWAgZnVuY3Rpb25zKQotICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6 aWRlbnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFs aWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCi0rICAgICAgICAvLy8g dGhlICRsb2FkLyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMv d3JpdGVzIG9yIHJlcXVpcmUKLSsgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDgg b3IgdTh4MTYuCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2Fm ZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHU4KSAtPiBib29sIHsKLSAgICAg ICAgICAgICBsZXQgc2ltZCA9ICRsb2FkKHNyYyk7Ci1AQCAtNzY4LDE5ICs5NjksMzIgQEAKLSAK LSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISBhc2NpaV90b19hc2NpaV9z aW1kX2RvdWJsZV9zdHJpZGUgewotKyAgICAvLyBTYWZldHk6IHN0b3JlIG11c3QgYmUgdmFsaWQg Zm9yIDMyIGJ5dGVzIG9mIHdyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVkIChjYW5kaWRhdGVz OiBgc3RvcmUoOHwxNilfKGFsaWduZWR8dW5hbGlnbmVkKWApCi0gICAgICgkbmFtZTppZGVudCwg JHN0b3JlOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgbXVzdCBiZSB2YWxp ZCBmb3IgMzIgYnl0ZXMgb2YgYWxpZ25lZCB1OHgxNiByZWFkCi0rICAgICAgICAvLy8gZHN0IG11 c3QgYmUgdmFsaWQgZm9yIDMyIGJ5dGVzIG9mIHVuYWxpZ25lZCB3cml0ZSBhY2NvcmRpbmcgdG8K LSsgICAgICAgIC8vLyB0aGUgJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25l ZCB3cml0ZXMgb3IgcmVxdWlyZQotKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4 OCBvciB1OHgxNi4KLSsgICAgICAgIC8vLwotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52 YXJpYW50OiBSZXR1cm5zIFNvbWUoaW5kZXgpIGlmIHRoZSBlbGVtZW50IGF0IGBpbmRleGAgaXMg aW52YWxpZCBBU0NJSQotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1 bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTgsIGRzdDogKm11dCB1OCkgLT4gT3B0aW9uPHVz aXplPiB7Ci0gICAgICAgICAgICAgbGV0IGZpcnN0ID0gbG9hZDE2X2FsaWduZWQoc3JjKTsKLSAg ICAgICAgICAgICBsZXQgc2Vjb25kID0gbG9hZDE2X2FsaWduZWQoc3JjLmFkZChTSU1EX1NUUklE RV9TSVpFKSk7Ci0gICAgICAgICAgICAgJHN0b3JlKGRzdCwgZmlyc3QpOwotICAgICAgICAgICAg IGlmIHVubGlrZWx5KCFzaW1kX2lzX2FzY2lpKGZpcnN0IHwgc2Vjb25kKSkgewotKyAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IG1hc2tfYXNjaWkgcHJvZHVjZXMgYSBtYXNrIG9mIGFsbCB0aGUg aGlnaCBiaXRzLgotICAgICAgICAgICAgICAgICBsZXQgbWFza19maXJzdCA9IG1hc2tfYXNjaWko Zmlyc3QpOwotICAgICAgICAgICAgICAgICBpZiBtYXNrX2ZpcnN0ICE9IDAgewotKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMgdGhpcyB3aWxs IGJlIHRoZSBudW1iZXIgb2YgYXNjaWkgYnl0ZXMKLSsgICAgICAgICAgICAgICAgICAgIC8vIGJl Zm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKLSsg ICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gU0FGRVRZOiBXaGF0IGFib3V0IGJpZy1lbmRpYW4g c3lzdGVtcz8KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKG1hc2tfZmlyc3QudHJh aWxpbmdfemVyb3MoKSBhcyB1c2l6ZSk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgJHN0b3JlKGRzdC5hZGQoU0lNRF9TVFJJREVfU0laRSksIHNlY29uZCk7Ci0gICAgICAg ICAgICAgICAgIGxldCBtYXNrX3NlY29uZCA9IG1hc2tfYXNjaWkoc2Vjb25kKTsKLSsgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMgdGhpcyB3aWxsIGJl IHRoZSBudW1iZXIgb2YgYXNjaWkgYnl0ZXMKLSsgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRo ZSBmaXJzdCBub24tYXNjaWksIGkuZS4gdmFsaWQgZm9yIGluZGV4aW5nIHNyYwotICAgICAgICAg ICAgICAgICByZXR1cm4gU29tZShTSU1EX1NUUklERV9TSVpFICsgbWFza19zZWNvbmQudHJhaWxp bmdfemVyb3MoKSBhcyB1c2l6ZSk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgICRzdG9y ZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUpLCBzZWNvbmQpOwotQEAgLTc5MSw3ICsxMDA1LDEx IEBACi0gCi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEgYXNjaWlfdG9f YmFzaWNfbGF0aW5fc2ltZF9zdHJpZGUgewotKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVz dCBiZSB2YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxp Z25lZC4gKGNhbmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVk KWAgZnVuY3Rpb25zKQotICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRl bnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQg Zm9yIDE2LzMyIGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCi0rICAgICAgICAvLy8g dGhlICRsb2FkLyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMv d3JpdGVzIG9yIHJlcXVpcmUKLSsgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDgg b3IgdTh4MTYuCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2Fm ZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHUxNikgLT4gYm9vbCB7Ci0gICAg ICAgICAgICAgbGV0IHNpbWQgPSAkbG9hZChzcmMpOwotQEAgLTgwOCwxMyArMTAyNiwxOCBAQAot IAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2lj X2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZSB7Ci0rICAgIC8vIFNhZmV0eTogc3RvcmUgbXVzdCBi ZSB2YWxpZCBmb3IgMTYgYnl0ZXMgb2Ygd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQKLSAg ICAgKCRuYW1lOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6 IHNyYyBtdXN0IGJlIHZhbGlkIGZvciAyKlNJTURfU1RSSURFX1NJWkUgYnl0ZXMgb2YgYWxpZ25l ZCByZWFkcywKLSsgICAgICAgIC8vLyBhbGlnbmVkIHRvIGVpdGhlciAxNng4IG9yIHU4eDE2Lgot KyAgICAgICAgLy8vIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAyKlNJTURfU1RSSURFX1NJWkUgYnl0 ZXMgb2YgYWxpZ25lZCBvciB1bmFsaWduZWQgcmVhZHMKLSAgICAgICAgICNbaW5saW5lKGFsd2F5 cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICpt dXQgdTE2KSAtPiBPcHRpb248dXNpemU+IHsKLSAgICAgICAgICAgICBsZXQgZmlyc3QgPSBsb2Fk MTZfYWxpZ25lZChzcmMpOwotICAgICAgICAgICAgIGxldCBzZWNvbmQgPSBsb2FkMTZfYWxpZ25l ZChzcmMuYWRkKFNJTURfU1RSSURFX1NJWkUpKTsKLSAgICAgICAgICAgICBsZXQgKGEsIGIpID0g c2ltZF91bnBhY2soZmlyc3QpOwotICAgICAgICAgICAgICRzdG9yZShkc3QsIGEpOwotKyAgICAg ICAgICAgIC8vIFNhZmV0eTogZGl2aWRlIGJ5IDIgc2luY2UgaXQncyBhIHUxNiBwb2ludGVyCi0g ICAgICAgICAgICAgJHN0b3JlKGRzdC5hZGQoU0lNRF9TVFJJREVfU0laRSAvIDIpLCBiKTsKLSAg ICAgICAgICAgICBpZiB1bmxpa2VseSghc2ltZF9pc19hc2NpaShmaXJzdCB8IHNlY29uZCkpIHsK LSAgICAgICAgICAgICAgICAgbGV0IG1hc2tfZmlyc3QgPSBtYXNrX2FzY2lpKGZpcnN0KTsKLUBA IC04MzcsNyArMTA2MCwxMSBAQAotIAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9f cnVsZXMhIHVucGFja19zaW1kX3N0cmlkZSB7Ci0rICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBt dXN0IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5h bGlnbmVkLiAoY2FuZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWdu ZWQpYCBmdW5jdGlvbnMpCi0gICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTpp ZGVudCkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxp ZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KLSsgICAgICAgIC8vLyB0 aGUgJGxvYWQvJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93 cml0ZXMgb3IgcmVxdWlyZQotKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBv ciB1OHgxNi4KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZl IGZuICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTE2KSB7Ci0gICAgICAgICAgICAg bGV0IHNpbWQgPSAkbG9hZChzcmMpOwotQEAgLTg1MCw3ICsxMDc3LDExIEBACi0gCi0gI1thbGxv dyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2lt ZF9zdHJpZGUgewotKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVzdCBiZSB2YWxpZCBmb3Ig MTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZC4gKGNhbmRpZGF0 ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVkKWAgZnVuY3Rpb25zKQot ICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsKLSsgICAg ICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIDMyLzE2IGJ5dGVz IG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCi0rICAgICAgICAvLy8gdGhlICRsb2FkLyRzdG9y ZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9yIHJlcXVp cmUKLSsgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYuCi0gICAg ICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6 ICpjb25zdCB1MTYsIGRzdDogKm11dCB1OCkgLT4gYm9vbCB7Ci0gICAgICAgICAgICAgbGV0IGZp cnN0ID0gJGxvYWQoc3JjKTsKLUBAIC04NjcsNyArMTA5OCwxMSBAQAotIAotICNbYWxsb3codW51 c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIHBhY2tfc2ltZF9zdHJpZGUgewotKyAgICAvLyBT YWZldHk6IGxvYWQvc3RvcmUgbXVzdCBiZSB2YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0 ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZC4gKGNhbmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8 OClfKHVuYWxpZ25lZHxhbGlnbmVkKWAgZnVuY3Rpb25zKQotICAgICAoJG5hbWU6aWRlbnQsICRs b2FkOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBh bmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIDMyLzE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3Jk aW5nIHRvCi0rICAgICAgICAvLy8gdGhlICRsb2FkLyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93 IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9yIHJlcXVpcmUKLSsgICAgICAgIC8vLyBhbGln bm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYuCi0gICAgICAgICAjW2lubGluZShhbHdheXMp XQotICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1MTYsIGRzdDogKm11 dCB1OCkgewotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICRsb2FkKHNyYyk7Ci1AQCAtODkzLDYg KzExMjgsOCBAQAotIAotICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNp emUgPSA3OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGZvciBzdHJpZGUgbWFjcm9zOiBXZSBzdGlj ayB0byB0aGUgbG9hZDhfYWxpZ25lZC9ldGMgZmFtaWx5IG9mIGZ1bmN0aW9ucy4gV2UgY29uc2lz dGVudGx5IHByb2R1Y2UKLSsgICAgICAgIC8vIG5laXRoZXJfdW5hbGlnbmVkIHZhcmlhbnRzIHVz aW5nIG9ubHkgdW5hbGlnbmVkIGlucHV0cy4KLSAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRf c3RyaWRlIShhc2NpaV90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkMTZfdW5h bGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7Ci0gCi0gICAgICAgICBhc2NpaV90b19iYXNpY19s YXRpbl9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX25laXRoZXJfYWxp Z25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmU4X3VuYWxpZ25lZCk7Ci1AQCAtOTAxLDYgKzEx MzgsOCBAQAotICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGJhc2lj X2xhdGluX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwg c3RvcmUxNl91bmFsaWduZWQpOwotICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJp ZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsK LSAKLSsgICAgICAgIC8vIFNhZmV0eSBmb3IgY29udmVyc2lvbiBtYWNyb3M6IFdlIHVzZSB0aGUg dW5hbGlnbiBtYWNybyB3aXRoIHVuYWxpZ24gZnVuY3Rpb25zIGFib3ZlLiBBbGwgc3RyaWRlIGZ1 bmN0aW9ucyB3ZXJlIHByb2R1Y2VkCi0rICAgICAgICAvLyBieSBzdHJpZGUgbWFjcm9zIHRoYXQg dW5pdmVyc2FsbHkgbXVuY2ggYSBzaW5nbGUgU0lNRF9TVFJJREVfU0laRSB3b3J0aCBvZiBlbGVt ZW50cy4KLSAgICAgICAgIGFzY2lpX3NpbWRfdW5hbGlnbiEoYXNjaWlfdG9fYXNjaWksIHU4LCB1 OCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7Ci0gICAgICAgICBhc2Np aV9zaW1kX3VuYWxpZ24hKGFzY2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19i YXNpY19sYXRpbl9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3NpbWRf dW5hbGlnbiEoYmFzaWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2Fz Y2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOwotQEAgLTkxOSw2ICsxMTU4LDkgQEAKLSAKLSAg ICAgICAgIHB1YiBjb25zdCBTSU1EX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDE1OwotIAotKyAg ICAgICAgLy8gU2FmZXR5IGZvciBzdHJpZGUgbWFjcm9zOiBXZSBzdGljayB0byB0aGUgbG9hZDhf YWxpZ25lZC9ldGMgZmFtaWx5IG9mIGZ1bmN0aW9ucy4gV2UgY29uc2lzdGVudGx5IG5hbWUKLSsg ICAgICAgIC8vIGFsaWduZWQvdW5hbGlnbmVkIGZ1bmN0aW9ucyBhY2NvcmRpbmcgdG8gc3JjL2Rz dCBiZWluZyBhbGlnbmVkL3VuYWxpZ25lZAotKwotICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2lt ZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9ib3RoX2FsaWduZWQsIGxvYWQxNl9hbGln bmVkLCBzdG9yZTE2X2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJp ZGUhKGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25lZCwgbG9hZDE2X2FsaWduZWQsIHN0 b3JlMTZfdW5hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShh c2NpaV90b19hc2NpaV9zdHJpZGVfZHN0X2FsaWduZWQsIGxvYWQxNl91bmFsaWduZWQsIHN0b3Jl MTZfYWxpZ25lZCk7Ci1AQCAtOTQ0LDYgKzExODYsOSBAQAotICAgICAgICAgcGFja19zaW1kX3N0 cmlkZSEocGFja19zdHJpZGVfZHN0X2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl9h bGlnbmVkKTsKLSAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX25laXRoZXJf YWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7Ci0gCi0rICAgICAg ICAvLyBTYWZldHkgZm9yIGNvbnZlcnNpb24gbWFjcm9zOiBXZSB1c2UgdGhlIGNvcnJlY3QgcGF0 dGVybiBvZiBib3RoL3NyYy9kc3QvbmVpdGhlciBoZXJlLiBBbGwgc3RyaWRlIGZ1bmN0aW9ucyB3 ZXJlIHByb2R1Y2VkCi0rICAgICAgICAvLyBieSBzdHJpZGUgbWFjcm9zIHRoYXQgdW5pdmVyc2Fs bHkgbXVuY2ggYSBzaW5nbGUgU0lNRF9TVFJJREVfU0laRSB3b3J0aCBvZiBlbGVtZW50cy4KLSsK LSAgICAgICAgIGFzY2lpX3NpbWRfY2hlY2tfYWxpZ24hKGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgs IGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlk ZV9zcmNfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBhc2NpaV90 b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3NpbWRfY2hl Y2tfYWxpZ24hKGFzY2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19iYXNpY19s YXRpbl9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfc3Jj X2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9kc3RfYWxpZ25lZCwgYXNjaWlf dG9fYmFzaWNfbGF0aW5fc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7Ci0gICAgICAgICBhc2NpaV9z aW1kX2NoZWNrX2FsaWduIShiYXNpY19sYXRpbl90b19hc2NpaSwgdTE2LCB1OCwgYmFzaWNfbGF0 aW5fdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxpZ25lZCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3Ry aWRlX3NyY19hbGlnbmVkLCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfZHN0X2FsaWduZWQs IGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOwotQEAgLTk1OCwx MiArMTIwMywxNiBAQAotIAotICAgICAgICAgcHViIGNvbnN0IFNJTURfU1RSSURFX1NJWkU6IHVz aXplID0gMTY7Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFRoaXMg c2hvdWxkIGJlIGlkZW50aWNhbCB0byBTSU1EX1NUUklERV9TSVpFICh1c2VkIGJ5IGFzY2lpX3Np bWRfY2hlY2tfYWxpZ25fdW5yb2xsZWQpCi0gICAgICAgICBwdWIgY29uc3QgU0lNRF9BTElHTk1F TlQ6IHVzaXplID0gMTY7Ci0gCi0gICAgICAgICBwdWIgY29uc3QgTUFYX1NUUklERV9TSVpFOiB1 c2l6ZSA9IDE2OwotIAotICAgICAgICAgcHViIGNvbnN0IFNJTURfQUxJR05NRU5UX01BU0s6IHVz aXplID0gMTU7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgZm9yIHN0cmlkZSBtYWNyb3M6IFdlIHN0 aWNrIHRvIHRoZSBsb2FkOF9hbGlnbmVkL2V0YyBmYW1pbHkgb2YgZnVuY3Rpb25zLiBXZSBjb25z aXN0ZW50bHkgbmFtZQotKyAgICAgICAgLy8gYWxpZ25lZC91bmFsaWduZWQgZnVuY3Rpb25zIGFj Y29yZGluZyB0byBzcmMvZHN0IGJlaW5nIGFsaWduZWQvdW5hbGlnbmVkCi0rCi0gICAgICAgICBh c2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91 YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7Ci0gICAgICAgICBhc2Np aV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91Ymxl X3N0cmlkZV9zcmNfYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOwotIAotQEAgLTk4OSw2ICsx MjM4LDkgQEAKLSAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX2JvdGhfYWxp Z25lZCwgbG9hZDhfYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsKLSAgICAgICAgIHBhY2tfc2lt ZF9zdHJpZGUhKHBhY2tfc3RyaWRlX3NyY19hbGlnbmVkLCBsb2FkOF9hbGlnbmVkLCBzdG9yZTE2 X3VuYWxpZ25lZCk7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgZm9yIGNvbnZlcnNpb24gbWFjcm9z OiBXZSB1c2UgdGhlIGNvcnJlY3QgcGF0dGVybiBvZiBib3RoL3NyYy9kc3QvbmVpdGhlci9kb3Vi bGVfYm90aC9kb3VibGVfc3JjIGhlcmUuIEFsbCBzdHJpZGUgZnVuY3Rpb25zIHdlcmUgcHJvZHVj ZWQKLSsgICAgICAgIC8vIGJ5IHN0cmlkZSBtYWNyb3MgdGhhdCB1bml2ZXJzYWxseSBtdW5jaCBh IHNpbmdsZSBTSU1EX1NUUklERV9TSVpFIHdvcnRoIG9mIGVsZW1lbnRzLgotKwotICAgICAgICAg YXNjaWlfc2ltZF9jaGVja19hbGlnbl91bnJvbGxlZCEoYXNjaWlfdG9fYXNjaWksIHU4LCB1OCwg YXNjaWlfdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRl X3NyY19hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBhc2Np aV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19hc2Np aV9zaW1kX2RvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfc2ltZF9j aGVja19hbGlnbl91bnJvbGxlZCEoYXNjaWlfdG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYsIGFzY2lp X3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGlu X3N0cmlkZV9zcmNfYWxpZ25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX25laXRoZXJf YWxpZ25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9kb3VibGVfc3RyaWRlX2JvdGhfYWxp Z25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9kb3VibGVfc3RyaWRlX3NyY19hbGlnbmVk KTsKLSAKLUBAIC05OTgsMTQgKzEyNTAsMjEgQEAKLSAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0 YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IikpXSB7 Ci0gICAgICAgICAvLyBBbGlnbmVkIEFMVSB3b3JkLCBsaXR0bGUtZW5kaWFuLCA2NC1iaXQKLSAK LSsgICAgICAgIC8vLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0 ZXMgY29uc3VtZWQgYnkKLSsgICAgICAgIC8vLyB1bnBhY2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdp Y2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFzIGl0IGNvbnN1bWVzIHR3byB1c2l6ZXMuCi0rICAgICAg ICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2YgYnl0ZXMgcHJvZHVjZWQgYnkgcGFja19h bHUuCi0rICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5p dHMgcHJvZHVjZWQvY29uc3VtZWQgYnkgdW5wYWNrX2FsdS9wYWNrX2FsdSByZXNwZWN0aXZlbHku Ci0gICAgICAgICBwdWIgY29uc3QgQUxVX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OwotIAotICAg ICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKLSAKLSsgICAgICAg IC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIHBvaW50ZXIgd2lkdGggaW4gYnl0ZXMK LSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UOiB1c2l6ZSA9IDg7Ci0gCi0rICAgICAg ICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIGEgbWFzayBmb3IgZ2V0dGluZyB0aGUgYml0 cyBvZiBhIHBvaW50ZXIgbm90IGFsaWduZWQgdG8gQUxVX0FMSUdOTUVOVAotICAgICAgICAgcHVi IGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSA3OwotIAotKyAgICAgICAgLy8vIFNh ZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgZm91ciBgdXNp emVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiB1bnBh Y2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNvbmRfd29yZDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkg ewotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICgoMHgwMDAwXzAwMDBfRkYwMF8wMDAwdXNpemUg JiB3b3JkKSA8PCAyNCkgfAotQEAgLTEwMjQsMTIgKzEyODMsMTQgQEAKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+ PiAxNikgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF9GRjAwXzAwMDBfMDAw MHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDI0KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICgoMHgwMDAwXzAwRkZfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMzIpOwotKyAg ICAgICAgICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAg ICpkc3QgPSBmaXJzdDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kOwotICAg ICAgICAgICAgICooZHN0LmFkZCgyKSkgPSB0aGlyZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQo MykpID0gZm91cnRoOwotICAgICAgICAgfQotIAotKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11 c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgdHdvIGB1c2l6ZWBzCi0gICAgICAg ICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHBhY2tfYWx1KGZpcnN0OiB1 c2l6ZSwgc2Vjb25kOiB1c2l6ZSwgdGhpcmQ6IHVzaXplLCBmb3VydGg6IHVzaXplLCBkc3Q6ICpt dXQgdXNpemUpIHsKLSAgICAgICAgICAgICBsZXQgd29yZCA9ICgoMHgwMEZGXzAwMDBfMDAwMF8w MDAwdXNpemUgJiBzZWNvbmQpIDw8IDgpIHwKLUBAIC0xMDQ4LDIwICsxMzA5LDI4IEBACi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAwMDB1c2l6ZSAm IHRoaXJkKSA+PiAxNikgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAw XzAwMDBfMDBGRl8wMDAwdXNpemUgJiB0aGlyZCkgPj4gOCkgfAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgweDAwMDBfMDAwMF8wMDAwXzAwRkZ1c2l6ZSAmIHRoaXJkKTsKLSsgICAg ICAgICAgICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAq ZHN0ID0gd29yZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7Ci0g ICAgICAgICB9Ci0gICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0 bGUiLCB0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpKV0gewotICAgICAgICAgLy8gQWxpZ25l ZCBBTFUgd29yZCwgbGl0dGxlLWVuZGlhbiwgMzItYml0Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5 IGludmFyaWFudDogdGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5Ci0rICAg ICAgICAvLy8gdW5wYWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRo LCBhcyBpdCBjb25zdW1lcyB0d28gdXNpemVzLgotKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgotKyAgICAgICAgLy8vIFRo aXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVk IGJ5IHVucGFja19hbHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgotICAgICAgICAgcHViIGNvbnN0 IEFMVV9TVFJJREVfU0laRTogdXNpemUgPSA4OwotIAotICAgICAgICAgcHViIGNvbnN0IE1BWF9T VFJJREVfU0laRTogdXNpemUgPSA4OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDog dGhpcyBpcyB0aGUgcG9pbnRlciB3aWR0aCBpbiBieXRlcwotICAgICAgICAgcHViIGNvbnN0IEFM VV9BTElHTk1FTlQ6IHVzaXplID0gNDsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6 IHRoaXMgaXMgYSBtYXNrIGZvciBnZXR0aW5nIHRoZSBiaXRzIG9mIGEgcG9pbnRlciBub3QgYWxp Z25lZCB0byBBTFVfQUxJR05NRU5UCi0gICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9N QVNLOiB1c2l6ZSA9IDM7Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0 byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyBmb3VyIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGlu ZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHVucGFja19hbHUod29yZDogdXNpemUsIHNl Y29uZF93b3JkOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAgICAgICAgICAgbGV0IGZp cnN0ID0gKCgweDAwMDBfRkYwMHVzaXplICYgd29yZCkgPDwgOCkgfAotQEAgLTEwNzIsMTIgKzEz NDEsMTQgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHNl Y29uZF93b3JkKTsKLSAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweEZGMDBfMDAwMHVzaXpl ICYgc2Vjb25kX3dvcmQpID4+IDgpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw RkZfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDE2KTsKLSsgICAgICAgICAgICAvLyBTYWZl dHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7Ci0g ICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZDsKLSAgICAgICAgICAgICAqKGRzdC5h ZGQoMikpID0gdGhpcmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsKLSAg ICAgICAgIH0KLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlk IHNwYWNlIGZvciB3cml0aW5nIHR3byBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlz KV0KLSAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDogdXNp emUsIHRoaXJkOiB1c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAg ICAgICAgICAgbGV0IHdvcmQgPSAoKDB4MDBGRl8wMDAwdXNpemUgJiBzZWNvbmQpIDw8IDgpIHwK LUBAIC0xMDg4LDIwICsxMzU5LDI4IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCgweDAwMDBfMDBGRnVzaXplICYgZm91cnRoKSA8PCAxNikgfAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHRoaXJkKSA+PiA4KSB8Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiB0aGlyZCk7Ci0rICAg ICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAg KmRzdCA9IHdvcmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZF93b3JkOwot ICAgICAgICAgfQotICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9lbmRpYW4gPSAiYmln IiwgdGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKSldIHsKLSAgICAgICAgIC8vIEFsaWduZWQg QUxVIHdvcmQsIGJpZy1lbmRpYW4sIDY0LWJpdAotIAotKyAgICAgICAgLy8vIFNhZmV0eSBpbnZh cmlhbnQ6IHRoaXMgaXMgdGhlIGFtb3VudCBvZiBieXRlcyBjb25zdW1lZCBieQotKyAgICAgICAg Ly8vIHVucGFja19hbHUuIFRoaXMgd2lsbCBiZSB0d2ljZSB0aGUgcG9pbnRlciB3aWR0aCwgYXMg aXQgY29uc3VtZXMgdHdvIHVzaXplcy4KLSsgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51 bWJlciBvZiBieXRlcyBwcm9kdWNlZCBieSBwYWNrX2FsdS4KLSsgICAgICAgIC8vLyBUaGlzIGlz IGFsc28gdGhlIG51bWJlciBvZiB1MTYgY29kZSB1bml0cyBwcm9kdWNlZC9jb25zdW1lZCBieSB1 bnBhY2tfYWx1L3BhY2tfYWx1IHJlc3BlY3RpdmVseS4KLSAgICAgICAgIHB1YiBjb25zdCBBTFVf U1RSSURFX1NJWkU6IHVzaXplID0gMTY7Ci0gCi0gICAgICAgICBwdWIgY29uc3QgTUFYX1NUUklE RV9TSVpFOiB1c2l6ZSA9IDE2OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhp cyBpcyB0aGUgcG9pbnRlciB3aWR0aCBpbiBieXRlcwotICAgICAgICAgcHViIGNvbnN0IEFMVV9B TElHTk1FTlQ6IHVzaXplID0gODsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRo aXMgaXMgYSBtYXNrIGZvciBnZXR0aW5nIHRoZSBiaXRzIG9mIGEgcG9pbnRlciBub3QgYWxpZ25l ZCB0byBBTFVfQUxJR05NRU5UCi0gICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9NQVNL OiB1c2l6ZSA9IDc7Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2 YWxpZCBzcGFjZSBmb3Igd3JpdGluZyBmb3VyIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGluZShh bHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHVucGFja19hbHUod29yZDogdXNpemUsIHNlY29u ZF93b3JkOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAgICAgICAgICAgbGV0IGZpcnN0 ID0gKCgweEZGMDBfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDgpIHwKLUBAIC0xMTIw LDEyICsxMzk5LDE0IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8w MEZGXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCAxNikgfAotICAgICAgICAgICAgICAgICAg ICAgICAgICgoMHgwMDAwXzAwMDBfMDAwMF9GRjAwdXNpemUgJiBzZWNvbmRfd29yZCkgPDwgOCkg fAotICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDAwMF8wMDAwXzAwRkZ1c2l6ZSAm IHNlY29uZF93b3JkKTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2Vk IGhlcmUKLSAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICAgKihkc3QuYWRk KDEpKSA9IHNlY29uZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMikpID0gdGhpcmQ7Ci0gICAg ICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsKLSAgICAgICAgIH0KLSAKLSsgICAgICAg IC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIHR3 byBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBm biBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDogdXNpemUsIHRoaXJkOiB1c2l6ZSwgZm91 cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAgICAgICAgICAgbGV0IHdvcmQgPSAo KDB4MDBGRjAwMDBfMDAwMDAwMDB1c2l6ZSAmIGZpcnN0KSA8PCA4KSB8Ci1AQCAtMTE0NCwyMCAr MTQyNSwyOCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwMDBGRl8w MDAwMDAwMHVzaXplICYgZm91cnRoKSA+PiAxNikgfAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoMHgwMDAwMDAwMF8wMEZGMDAwMHVzaXplICYgZm91cnRoKSA+PiA4KSB8Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDBfMDAwMDAwRkZ1c2l6ZSAmICBm b3VydGgpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQot ICAgICAgICAgICAgICpkc3QgPSB3b3JkOwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBz ZWNvbmRfd29yZDsKLSAgICAgICAgIH0KLSAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRf ZW5kaWFuID0gImJpZyIsIHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIikpXSB7Ci0gICAgICAg ICAvLyBBbGlnbmVkIEFMVSB3b3JkLCBiaWctZW5kaWFuLCAzMi1iaXQKLSAKLSsgICAgICAgIC8v LyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQg YnkKLSsgICAgICAgIC8vLyB1bnBhY2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50 ZXIgd2lkdGgsIGFzIGl0IGNvbnN1bWVzIHR3byB1c2l6ZXMuCi0rICAgICAgICAvLy8gVGhpcyBp cyBhbHNvIHRoZSBudW1iZXIgb2YgYnl0ZXMgcHJvZHVjZWQgYnkgcGFja19hbHUuCi0rICAgICAg ICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQv Y29uc3VtZWQgYnkgdW5wYWNrX2FsdS9wYWNrX2FsdSByZXNwZWN0aXZlbHkuCi0gICAgICAgICBw dWIgY29uc3QgQUxVX1NUUklERV9TSVpFOiB1c2l6ZSA9IDg7Ci0gCi0gICAgICAgICBwdWIgY29u c3QgTUFYX1NUUklERV9TSVpFOiB1c2l6ZSA9IDg7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52 YXJpYW50OiB0aGlzIGlzIHRoZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCi0gICAgICAgICBwdWIg Y29uc3QgQUxVX0FMSUdOTUVOVDogdXNpemUgPSA0OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGlu dmFyaWFudDogdGhpcyBpcyBhIG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVy IG5vdCBhbGlnbmVkIHRvIEFMVV9BTElHTk1FTlQKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJ R05NRU5UX01BU0s6IHVzaXplID0gMzsKLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0 IHBvaW50IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKLSAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1 c2l6ZSwgc2Vjb25kX3dvcmQ6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSAgICAgICAgICAg ICBsZXQgZmlyc3QgPSAoKDB4RkYwMF8wMDAwdXNpemUgJiB3b3JkKSA+PiA4KSB8Ci1AQCAtMTE2 OCwxMiArMTQ1NywxNCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAw dXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMTYpOwotICAgICAgICAgICAgIGxldCBmb3VydGggPSAo KDB4MDAwMF9GRjAwdXNpemUgJiBzZWNvbmRfd29yZCkgPDwgOCkgfAotICAgICAgICAgICAgICAg ICAgICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgc2Vjb25kX3dvcmQpOwotKyAgICAgICAgICAg IC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICpkc3QgPSBm aXJzdDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kOwotICAgICAgICAgICAg ICooZHN0LmFkZCgyKSkgPSB0aGlyZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMykpID0gZm91 cnRoOwotICAgICAgICAgfQotIAotKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQg dG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgdHdvIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGlu ZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHBhY2tfYWx1KGZpcnN0OiB1c2l6ZSwgc2Vj b25kOiB1c2l6ZSwgdGhpcmQ6IHVzaXplLCBmb3VydGg6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUp IHsKLSAgICAgICAgICAgICBsZXQgd29yZCA9ICgoMHgwMEZGXzAwMDB1c2l6ZSAmIGZpcnN0KSA8 PCA4KSB8Ci1AQCAtMTE4NCw2ICsxNDc1LDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKDB4MDAwMF8wMEZGdXNpemUgJiB0aGlyZCkgPDwgMTYpIHwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiBmb3VydGgpID4+IDgpIHwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIGZvdXJ0aCk7 Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAg ICAgICAgKmRzdCA9IHdvcmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZF93 b3JkOwotICAgICAgICAgfQotQEAgLTExOTUsNiArMTQ4Nyw4IEBACi0gfQotIAotIGNmZ19pZiEg ewotKyAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogdGhpcyBjb3VudHMgdGhlIHplcm9l cyBmcm9tIHRoZSAiZmlyc3QgYnl0ZSIgb2YgdXRmLTggZGF0YSBwYWNrZWQgaW50byBhIHVzaXpl Ci0rICAgIC8vIHdpdGggdGhlIHRhcmdldCBlbmRpYW5uZXNzCi0gICAgIGlmICNbY2ZnKHRhcmdl dF9lbmRpYW4gPSAibGl0dGxlIildIHsKLSAgICAgICAgICNbYWxsb3coZGVhZF9jb2RlKV0KLSAg ICAgICAgICNbaW5saW5lKGFsd2F5cyldCi1AQCAtMTIxMiwxOSArMTUwNiwyNCBAQAotIAotIGNm Z19pZiEgewotICAgICBpZiAjW2NmZyhhbGwoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgdGFyZ2V0 X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfYXJjaCA9ICJkaXNhYmxlZCIpKV0gewotKyAgICAg ICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBXaWxsIHJldHVybiB0aGUgdmFsdWUgYW5k IHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBub24tQVNDSUkgYnl0ZSBpbiB0aGUgc2xpY2UgaW4gYSBT b21lIGlmIGZvdW5kLgotKyAgICAgICAgLy8vIEluIG90aGVyIHdvcmRzLCB0aGUgZmlyc3QgZWxl bWVudCBvZiB0aGUgU29tZSBpcyBhbHdheXMgYD4gMTI3YAotICAgICAgICAgI1tpbmxpbmUoYWx3 YXlzKV0KLSAgICAgICAgIHB1YiBmbiB2YWxpZGF0ZV9hc2NpaShzbGljZTogJlt1OF0pIC0+IE9w dGlvbjwodTgsIHVzaXplKT4gewotICAgICAgICAgICAgIGxldCBzcmMgPSBzbGljZS5hc19wdHIo KTsKLSAgICAgICAgICAgICBsZXQgbGVuID0gc2xpY2UubGVuKCk7Ci0gICAgICAgICAgICAgbGV0 IG11dCBvZmZzZXQgPSAwdXNpemU7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNo ZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYHN0 cmlkZWAgZWxlbWVudHMuCi0gICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4g ewotICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RS SURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBzcmMgYXQgb2Zmc2V0IGlzIHZhbGlkIGZvciBhIGBTSU1EX1NUUklERV9TSVpF YCByZWFkCi0gICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91 bmFsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OwotICAgICAgICAgICAgICAgICAgICAgaWYgIXNp bWRfaXNfYXNjaWkoc2ltZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURf U1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGBvZmZzZXQgPiBs ZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFz dCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgotICAgICAg ICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMTIzMyw2 ICsxNTMyLDcgQEAKLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewotICAgICAgICAg ICAgICAgICBsZXQgY29kZV91bml0ID0gc2xpY2Vbb2Zmc2V0XTsKLSAgICAgICAgICAgICAgICAg aWYgY29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogU2Fm ZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKLSAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAgIG9mZnNldCArPSAxOwotQEAgLTEyNDAsMTMgKzE1NDAsMTcgQEAKLSAgICAg ICAgICAgICBOb25lCi0gICAgICAgICB9Ci0gICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwoZmVhdHVy ZSA9ICJzaW1kLWFjY2VsIiwgdGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpKV0gewotKyAgICAgICAg Ly8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBl bmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgU29tZSBi ZWluZwotKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8gYmUgbm9uLUFTQ0lJICg+IDEyNyksIGFu ZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hlcmUgaXQgaXMgZm91bmQKLSAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgZm4gdmFsaWRhdGVfYXNjaWkoc2xpY2U6 ICZbdThdKSAtPiBPcHRpb248KHU4LCB1c2l6ZSk+IHsKLSAgICAgICAgICAgICBsZXQgc3JjID0g c2xpY2UuYXNfcHRyKCk7Ci0gICAgICAgICAgICAgbGV0IGxlbiA9IHNsaWNlLmxlbigpOwotICAg ICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotKyAgICAgICAgICAgIC8vIFNhZmV0 eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFz dCBgc3RyaWRlYCBlbGVtZW50cy4KLSAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9 IGxlbiB7Ci0gICAgICAgICAgICAgICAgIC8vIEZpcnN0LCBwcm9jZXNzIG9uZSB1bmFsaWduZWQg dmVjdG9yCi0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIGlzIHZhbGlkIGZvciBhIGBT SU1EX1NUUklERV9TSVpFYCByZWFkCi0gICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZl IHsgbG9hZDE2X3VuYWxpZ25lZChzcmMpIH07Ci0gICAgICAgICAgICAgICAgIGxldCBtYXNrID0g bWFza19hc2NpaShzaW1kKTsKLSAgICAgICAgICAgICAgICAgaWYgbWFzayAhPSAwIHsKLUBAIC0x MjU1LDE4ICsxNTU5LDI2IEBACi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgobm9u X2FzY2lpLCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBv ZmZzZXQgPSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IE5v dyB0aGF0IG9mZnNldCBoYXMgY2hhbmdlZCB3ZSBkb24ndCB5ZXQga25vdyBob3cgbXVjaCBpdCBp cyB2YWxpZCBmb3IKLSAKLSAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBub3cgc2VlbiAxNiBB U0NJSSBieXRlcy4gTGV0J3MgZ3Vlc3MgdGhhdAotICAgICAgICAgICAgICAgICAvLyB0aGVyZSB3 aWxsIGJlIGVub3VnaCBtb3JlIHRvIGp1c3RpZnkgbW9yZSBleHBlbnNlCi0gICAgICAgICAgICAg ICAgIC8vIGluIHRoZSBjYXNlIG9mIG5vbi1BU0NJSS4KLSAgICAgICAgICAgICAgICAgLy8gVXNl IGFsaWduZWQgcmVhZHMgZm9yIHRoZSBzYWtlIG9mIG9sZCBtaWNyb2FjaGl0ZWN0dXJlcy4KLSsg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGNvcnJlY3RseSBjYWxjdWxhdGVzIHRoZSBu dW1iZXIgb2Ygc3JjX3VuaXRzIHRoYXQgbmVlZCB0byBiZSByZWFkIGJlZm9yZSB0aGUgcmVtYWlu aW5nIGxpc3QgaXMgYWxpZ25lZC4KLSsgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBieSBkZWZp bml0aW9uIGxlc3MgdGhhbiBTSU1EX0FMSUdOTUVOVCwgd2hpY2ggaXMgZGVmaW5lZCB0byBiZSBl cXVhbCB0byBTSU1EX1NUUklERV9TSVpFLgotICAgICAgICAgICAgICAgICBsZXQgdW50aWxfYWxp Z25tZW50ID0gdW5zYWZlIHsgKFNJTURfQUxJR05NRU5UIC0gKChzcmMuYWRkKG9mZnNldCkgYXMg dXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykpICYgU0lNRF9BTElHTk1FTlRfTUFTSyB9Owot ICAgICAgICAgICAgICAgICAvLyBUaGlzIGFkZGl0aW9uIHdvbid0IG92ZXJmbG93LCBiZWNhdXNl IGV2ZW4gaW4gdGhlIDMyLWJpdCBQQUUgY2FzZSB0aGUKLSAgICAgICAgICAgICAgICAgLy8gYWRk cmVzcyBzcGFjZSBob2xkcyBlbm91Z2ggY29kZSB0aGF0IHRoZSBzbGljZSBsZW5ndGggY2FuJ3Qg YmUgdGhhdAotICAgICAgICAgICAgICAgICAvLyBjbG9zZSB0byBhZGRyZXNzIHNwYWNlIHNpemUu Ci0gICAgICAgICAgICAgICAgIC8vIG9mZnNldCBub3cgZXF1YWxzIFNJTURfU1RSSURFX1NJWkUs IGhlbmNlIHRpbWVzIDMgYmVsb3cuCi0rICAgICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVh ZGluZyBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHBsdXMgYHVudGls X2FsaWdubWVudGAuCi0rICAgICAgICAgICAgICAgIC8vIFRoZSBleHRyYSBTSU1EX1NUUklERV9T SVpFIGluIHRoZSBjb25kaXRpb24gaXMgYmVjYXVzZSBgb2Zmc2V0YCBpcyBhbHJlYWR5IGBTSU1E X1NUUklERV9TSVpFYC4KLSAgICAgICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICsgKFNJ TURfU1RSSURFX1NJWkUgKiAzKSA8PSBsZW4gewotICAgICAgICAgICAgICAgICAgICAgaWYgdW50 aWxfYWxpZ25tZW50ICE9IDAgewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog dGhpcyBpcyBzYWZlIHRvIGNhbGwgc2luY2Ugd2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZCAoYW5k IG1vcmUpLCBhbmQgZG9uJ3QgY2FyZSBhYm91dCBhbGlnbm1lbnQKLSsgICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGlzIHdpbGwgY29weSBvdmVyIGJ5dGVzIHRoYXQgZ2V0IGRlY29kZWQgdHdp Y2Ugc2luY2UgaXQncyBub3QgaW5jcmVtZW50aW5nIGBvZmZzZXRgIGJ5IFNJTURfU1RSSURFX1NJ WkUuIFRoaXMgaXMgZmluZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVu c2FmZSB7IGxvYWQxNl91bmFsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OwotICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBtYXNrICE9IDAgewotQEAgLTEyNzYsNTMgKzE1ODgsNzggQEAKLSAgICAg ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IHVudGlsX2FsaWdubWVudDsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogQXQgdGhpcyBwb2ludCB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyAy KlNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogTm93IGBvZmZzZXRgIGlzIGFsaWduZWQgZm9yIGBzcmNgCi0gICAgICAgICAgICAgICAgICAg ICBsZXQgbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28gPSBsZW4gLSAoU0lNRF9TVFJJREVfU0la RSAqIDIpOwotICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBXZSB3ZXJlIHZhbGlkIGZvciB0aGlzIHJlYWQsIGFuZCB3ZXJlIGFs aWduZWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0ID0gdW5zYWZlIHsgbG9h ZDE2X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OwotICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBzZWNvbmQgPSB1bnNhZmUgeyBsb2FkMTZfYWxpZ25lZChzcmMuYWRkKG9mZnNldCArIFNJ TURfU1RSSURFX1NJWkUpKSB9OwotICAgICAgICAgICAgICAgICAgICAgICAgIGlmICFzaW1kX2lz X2FzY2lpKGZpcnN0IHwgc2Vjb25kKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogbWFza19hc2NpaSBwcm9kdWNlcyBhIG1hc2sgb2YgYWxsIHRoZSBoaWdoIGJpdHMu Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrX2ZpcnN0ID0gbWFza19hc2Np aShmaXJzdCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hc2tfZmlyc3QgIT0g MCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9uIGxpdHRs ZSBlbmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBhc2NpaSBieXRlcwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoZSBmaXJzdCBub24t YXNjaWksIGkuZS4gdmFsaWQgZm9yIGluZGV4aW5nIHNyYwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gVE9ETyBTQUZFVFk6IFdoYXQgYWJvdXQgYmlnLWVuZGlhbiBzeXN0ZW1z PwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG1hc2tfZmlyc3Qu dHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrX3NlY29u ZCA9IG1hc2tfYXNjaWkoc2Vjb25kKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVt YmVyIG9mIGFzY2lpIGJ5dGVzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBi ZWZvcmUgdGhlIGZpcnN0IG5vbi1hc2NpaSwgaS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0la RSArIG1hc2tfc2Vjb25kLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBXZSBrbm93IHRoaXMgaXMgbm9uLUFTQ0lJLCBhbmQgY2FuIHVwaG9sZCB0aGUgc2FmZXR5LXVz YWJsZSBpbnZhcmlhbnQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9u X2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQob2Zmc2V0KSB9OwotKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKLSAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJ TURfU1RSSURFX1NJWkUgKiAyOwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5z IHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMg dG8gbXVuY2ggbmV4dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+ IGxlbl9taW51c19zdHJpZGVfdGltZXNfdHdvIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg ICAgfQotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2Nl ZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYAot ICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4g ewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Ugd2VyZSB2YWxpZCBmb3Ig dGhpcyByZWFkLCBhbmQgd2VyZSBhbGlnbmVkLgotICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG1hc2tfYXNjaWkgcHJvZHVjZXMgYSBt YXNrIG9mIGFsbCB0aGUgaGlnaCBiaXRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWFz ayAhPSAwIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvbiBsaXR0 bGUgZW5kaWFuIHN5c3RlbXMgdGhpcyB3aWxsIGJlIHRoZSBudW1iZXIgb2YgYXNjaWkgYnl0ZXMK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoZSBmaXJzdCBub24tYXNj aWksIGkuZS4gdmFsaWQgZm9yIGluZGV4aW5nIHNyYwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvZmZzZXQgKz0gbWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQob2Zm c2V0KSB9OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGtub3cg dGhpcyBpcyBub24tQVNDSUksIGFuZCBjYW4gdXBob2xkIHRoZSBzYWZldHktdXNhYmxlIGludmFy aWFudCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChub25f YXNjaWksIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogdGhpcyBpcyB0aGUgdW5hbGlnbmVkIGJyYW5jaAotICAgICAgICAgICAgICAg ICAgICAgLy8gQXQgbW9zdCB0d28gaXRlcmF0aW9ucywgc28gdW5yb2xsCi0rICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9y IHJlYWRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgCi0gICAgICAgICAgICAgICAgICAg ICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBXZSdyZSB2YWxpZCBmb3IgdGhpcyByZWFkIGJ1dCBtdXN0IHVz ZSBhbiB1bmFsaWduZWQgcmVhZAotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kID0g dW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChzcmMuYWRkKG9mZnNldCkpIH07Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG1hc2sgPSBtYXNrX2FzY2lpKHNpbWQpOwotICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIG1hc2sgIT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldCArPSBtYXNrLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBub25fYXNjaWkgPSB1bnNhZmUgeyAqc3JjLmFkZChvZmZzZXQp IH07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50IHVwaGVsZCBoZXJlIChzYW1lIGFzIGFib3ZlKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURF X1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNr IHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9T SVpFYAotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJ WkUgPD0gbGVuIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSdy ZSB2YWxpZCBmb3IgdGhpcyByZWFkIGJ1dCBtdXN0IHVzZSBhbiB1bmFsaWduZWQgcmVhZAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfdW5h bGlnbmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgbWFzayAhPSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSBtYXNrLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQob2Zmc2V0KSB9 OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZh cmlhbnQgdXBoZWxkIGhlcmUgKHNhbWUgYXMgYWJvdmUpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQg Kz0gU0lNRF9TVFJJREVfU0laRTsKLUBAIC0xMzMxLDggKzE2NjgsMTAgQEAKLSAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4g ewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHJlbGllcyBzdHJhaWdodGZvcndhcmRseSBv biB0aGUgYGxlbmAgaW52YXJpYW50Ci0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSB1 bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSkgfTsKLSAgICAgICAgICAgICAgICAgaWYgY29kZV91 bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91 bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gMTsKLUBAIC0xMzQwLDMxICsxNjc5LDQwIEBACi0gICAgICAgICAgICAgTm9uZQotICAg ICAgICAgfQotICAgICB9IGVsc2UgewotKyAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlh bnQ6IHJldHVybnMgYnl0ZSBpbmRleCBvZiBmaXJzdCBub24tYXNjaWkgYnl0ZQotICAgICAgICAg I1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIGZuIGZpbmRfbm9uX2FzY2lpKHdvcmQ6IHVzaXpl LCBzZWNvbmRfd29yZDogdXNpemUpIC0+IE9wdGlvbjx1c2l6ZT4gewotICAgICAgICAgICAgIGxl dCB3b3JkX21hc2tlZCA9IHdvcmQgJiBBU0NJSV9NQVNLOwotICAgICAgICAgICAgIGxldCBzZWNv bmRfbWFza2VkID0gc2Vjb25kX3dvcmQgJiBBU0NJSV9NQVNLOwotICAgICAgICAgICAgIGlmICh3 b3JkX21hc2tlZCB8IHNlY29uZF9tYXNrZWQpID09IDAgewotKyAgICAgICAgICAgICAgICAvLyBC b3RoIGFyZSBhc2NpaSwgaW52YXJpYW50IHVwaGVsZAotICAgICAgICAgICAgICAgICByZXR1cm4g Tm9uZTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgaWYgd29yZF9tYXNrZWQgIT0gMCB7 Ci0gICAgICAgICAgICAgICAgIGxldCB6ZXJvcyA9IGNvdW50X3plcm9zKHdvcmRfbWFza2VkKTsK LS0gICAgICAgICAgICAgICAgLy8gYHplcm9zYCBub3cgY29udGFpbnMgNyAoZm9yIHRoZSBzZXZl biBiaXRzIG9mIG5vbi1BU0NJSSkKLSsgICAgICAgICAgICAgICAgLy8gYHplcm9zYCBub3cgY29u dGFpbnMgMCB0byA3IChmb3IgdGhlIHNldmVuIGJpdHMgb2YgbWFza2VkIEFTQ0lJIGluIGxpdHRs ZSBlbmRpYW4sCi0rICAgICAgICAgICAgICAgIC8vIG9yIHVwIHRvIDcgYml0cyBvZiBub24tQVND SUkgaW4gYmlnIGVuZGlhbiBpZiB0aGUgZmlyc3QgYnl0ZSBpcyBub24tQVNDSUkpCi0gICAgICAg ICAgICAgICAgIC8vIHBsdXMgOCB0aW1lcyB0aGUgbnVtYmVyIG9mIEFTQ0lJIGluIHRleHQgb3Jk ZXIgYmVmb3JlIHRoZQotICAgICAgICAgICAgICAgICAvLyBub24tQVNDSUkgYnl0ZSBpbiB0aGUg bGl0dGxlLWVuZGlhbiBjYXNlIG9yIDggdGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbgotICAg ICAgICAgICAgICAgICAvLyB0ZXh0IG9yZGVyIGJlZm9yZSB0aGUgbm9uLUFTQ0lJIGJ5dGUgaW4g dGhlIGJpZy1lbmRpYW4gY2FzZS4KLSAgICAgICAgICAgICAgICAgbGV0IG51bV9hc2NpaSA9ICh6 ZXJvcyA+PiAzKSBhcyB1c2l6ZTsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBp bnZhcmlhbnQgdXBoZWxkIGhlcmUKLSAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUobnVtX2Fz Y2lpKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgbGV0IHplcm9zID0gY291bnRfemVy b3Moc2Vjb25kX21hc2tlZCk7Ci0tICAgICAgICAgICAgLy8gYHplcm9zYCBub3cgY29udGFpbnMg NyAoZm9yIHRoZSBzZXZlbiBiaXRzIG9mIG5vbi1BU0NJSSkKLSsgICAgICAgICAgICAvLyBgemVy b3NgIG5vdyBjb250YWlucyAwIHRvIDcgKGZvciB0aGUgc2V2ZW4gYml0cyBvZiBtYXNrZWQgQVND SUkgaW4gbGl0dGxlIGVuZGlhbiwKLSsgICAgICAgICAgICAvLyBvciB1cCB0byA3IGJpdHMgb2Yg bm9uLUFTQ0lJIGluIGJpZyBlbmRpYW4gaWYgdGhlIGZpcnN0IGJ5dGUgaXMgbm9uLUFTQ0lJKQot ICAgICAgICAgICAgIC8vIHBsdXMgOCB0aW1lcyB0aGUgbnVtYmVyIG9mIEFTQ0lJIGluIHRleHQg b3JkZXIgYmVmb3JlIHRoZQotICAgICAgICAgICAgIC8vIG5vbi1BU0NJSSBieXRlIGluIHRoZSBs aXR0bGUtZW5kaWFuIGNhc2Ugb3IgOCB0aW1lcyB0aGUgbnVtYmVyIG9mIEFTQ0lJIGluCi0gICAg ICAgICAgICAgLy8gdGV4dCBvcmRlciBiZWZvcmUgdGhlIG5vbi1BU0NJSSBieXRlIGluIHRoZSBi aWctZW5kaWFuIGNhc2UuCi0gICAgICAgICAgICAgbGV0IG51bV9hc2NpaSA9ICh6ZXJvcyA+PiAz KSBhcyB1c2l6ZTsKLSsgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhl bGQgaGVyZQotICAgICAgICAgICAgIFNvbWUoQUxVX0FMSUdOTUVOVCArIG51bV9hc2NpaSkKLSAg ICAgICAgIH0KLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGBzcmNgIG11c3QgYmUgdmFsaWQgZm9y IHRoZSByZWFkcyBvZiB0d28gYHVzaXplYHMKLSsgICAgICAgIC8vLwotKyAgICAgICAgLy8vIFNh ZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBieXRlIGluZGV4IG9mIGZpcnN0IG5v bi1hc2NpaSBieXRlCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZl IGZuIHZhbGlkYXRlX2FzY2lpX3N0cmlkZShzcmM6ICpjb25zdCB1c2l6ZSkgLT4gT3B0aW9uPHVz aXplPiB7Ci0gICAgICAgICAgICAgbGV0IHdvcmQgPSAqc3JjOwotQEAgLTEzNzIsNiArMTcyMCw4 IEBACi0gICAgICAgICAgICAgZmluZF9ub25fYXNjaWkod29yZCwgc2Vjb25kX3dvcmQpCi0gICAg ICAgICB9Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0 dXJuIFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBl bGVtZW50IGluIHRoZSBTb21lIGJlaW5nCi0rICAgICAgICAvLy8gZ3VhcmFudGVlZCB0byBiZSBu b24tQVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNldCB3aGVyZSBp dCBpcyBmb3VuZAotICAgICAgICAgI1tjZmdfYXR0cihmZWF0dXJlID0gImNhcmdvLWNsaXBweSIs IGFsbG93KGNhc3RfcHRyX2FsaWdubWVudCkpXQotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0K LSAgICAgICAgIHB1YiBmbiB2YWxpZGF0ZV9hc2NpaShzbGljZTogJlt1OF0pIC0+IE9wdGlvbjwo dTgsIHVzaXplKT4gewotQEAgLTEzNzksMjMgKzE3MjksMzAgQEAKLSAgICAgICAgICAgICBsZXQg bGVuID0gc2xpY2UubGVuKCk7Ci0gICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7 Ci0gICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSAoQUxVX0FMSUdOTUVOVCAt ICgoc3JjIGFzIHVzaXplKSAmIEFMVV9BTElHTk1FTlRfTUFTSykpICYgQUxVX0FMSUdOTUVOVF9N QVNLOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogSWYgdGhpcyBjaGVjayBmYWlscyB3ZSdyZSB2 YWxpZCB0byByZWFkIGB1bnRpbF9hbGlnbm1lbnQgKyBBTFVfU1RSSURFX1NJWkVgIGVsZW1lbnRz Ci0gICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICsgQUxVX1NUUklERV9TSVpFIDw9IGxl biB7Ci0gICAgICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAhPSAwIHsKLSAgICAg ICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSBzbGljZVtvZmZzZXRdOwotICAgICAgICAg ICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHktdXNhYmxlIGludmFpcmFudCB1cGhlbGQgaGVyZQotICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci0gICAgICAgICAg ICAgICAgICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKLSAgICAgICAgICAgICAgICAgfQotKyAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSByZWFkIHVudGls X2FsaWdubWVudCBlbGVtZW50cyBhbmQKLSsgICAgICAgICAgICAgICAgLy8gYXJlIHZhbGlkIGZv ciBgQUxVX1NUUklERV9TSVpFYCBtb3JlLgotICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVz X3N0cmlkZSA9IGxlbiAtIEFMVV9TVFJJREVfU0laRTsKLSAgICAgICAgICAgICAgICAgbG9vcCB7 Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHdlIHdlcmUgdmFsaWQgZm9yIHRoaXMg cmVhZAotICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9IHVuc2FmZSB7IHNyYy5hZGQob2Zm c2V0KSBhcyAqY29uc3QgdXNpemUgfTsKLSAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21l KG51bV9hc2NpaSkgPSB1bnNhZmUgeyB2YWxpZGF0ZV9hc2NpaV9zdHJpZGUocHRyKSB9IHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbnVtX2FzY2lpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YWlyYW50IHVwaGVsZCBoZXJlIHVzaW5n IHRoZSBpbnZhcmlhbnQgZnJvbSB2YWxpZGF0ZV9hc2NpaV9zdHJpZGUoKQotICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiBTb21lKCh1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSkgfSwg b2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBv ZmZzZXQgKz0gQUxVX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBUaGlzIGlzIGBvZmZzZXQgPiBBTFVfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5 cyBoYXZlIGF0IGxlYXN0IGAyICogQUxVX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBu ZXh0IHRpbWUuCi0gICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3Ry aWRlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg ICAgIH0KLUBAIC0xNDA0LDYgKzE3NjEsNyBAQAotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8 IGxlbiB7Ci0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSBzbGljZVtvZmZzZXRdOwot ICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhaXJhbnQgdXBoZWxkIGhlcmUKLSAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotQEAgLTE0MjgsMzYgKzE3ODYsNDcg QEAKLSAKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6IHVzaXplID0gMzsK LSAgICAgfSBlbHNlIHsKLSsgICAgICAgIC8vIFNhZmV0eTogc3JjIHBvaW50cyB0byB0d28gdmFs aWQgYHVzaXplYHMsIGRzdCBwb2ludHMgdG8gZm91ciB2YWxpZCBgdXNpemVgcwotICAgICAgICAg I1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiB1bnBhY2tfbGF0aW4xX3N0cmlk ZV9hbHUoc3JjOiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewotKyAgICAgICAgICAg IC8vIFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAg bGV0IHdvcmQgPSAqc3JjOwotICAgICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICooc3JjLmFk ZCgxKSk7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBkc3Qgc2FmZXR5IGludmFyaWFudCBwYXNz ZWQgZG93bgotICAgICAgICAgICAgIHVucGFja19hbHUod29yZCwgc2Vjb25kX3dvcmQsIGRzdCk7 Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICAvLyBTYWZldHk6IHNyYyBwb2ludHMgdG8gZm91ciB2 YWxpZCBgdXNpemVgcywgZHN0IHBvaW50cyB0byB0d28gdmFsaWQgYHVzaXplYHMKLSAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gcGFja19sYXRpbjFfc3RyaWRl X2FsdShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0rICAgICAgICAgICAg Ly8gU2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICBs ZXQgZmlyc3QgPSAqc3JjOwotICAgICAgICAgICAgIGxldCBzZWNvbmQgPSAqKHNyYy5hZGQoMSkp OwotICAgICAgICAgICAgIGxldCB0aGlyZCA9ICooc3JjLmFkZCgyKSk7Ci0gICAgICAgICAgICAg bGV0IGZvdXJ0aCA9ICooc3JjLmFkZCgzKSk7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBkc3Qg c2FmZXR5IGludmFyaWFudCBwYXNzZWQgZG93bgotICAgICAgICAgICAgIHBhY2tfYWx1KGZpcnN0 LCBzZWNvbmQsIHRoaXJkLCBmb3VydGgsIGRzdCk7Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICAv LyBTYWZldHk6IHNyYyBwb2ludHMgdG8gdHdvIHZhbGlkIGB1c2l6ZWBzLCBkc3QgcG9pbnRzIHRv IGZvdXIgdmFsaWQgYHVzaXplYHMKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAg ICB1bnNhZmUgZm4gYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX2FsdShzcmM6ICpjb25zdCB1 c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSAtPiBib29sIHsKLSsgICAgICAgICAgICAvLyBTYWZldHk6 IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgIGxldCB3b3JkID0g KnNyYzsKLSAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAqKHNyYy5hZGQoMSkpOwotICAg ICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSB3b3JkcyBjb250YWlucyBub24tQVNDSUkKLSAgICAg ICAgICAgICBpZiAod29yZCAmIEFTQ0lJX01BU0spIHwgKHNlY29uZF93b3JkICYgQVNDSUlfTUFT SykgIT0gMCB7Ci0gICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBkc3Qgc2FmZXR5IGludmFyaWFudCBwYXNzZWQgZG93 bgotICAgICAgICAgICAgIHVucGFja19hbHUod29yZCwgc2Vjb25kX3dvcmQsIGRzdCk7Ci0gICAg ICAgICAgICAgdHJ1ZQotICAgICAgICAgfQotIAotKyAgICAgICAgLy8gU2FmZXR5OiBzcmMgcG9p bnRzIGZvdXIgdmFsaWQgYHVzaXplYHMsIGRzdCBwb2ludHMgdG8gdHdvIHZhbGlkIGB1c2l6ZWBz Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIGJhc2ljX2xh dGluX3RvX2FzY2lpX3N0cmlkZV9hbHUoc3JjOiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1c2l6 ZSkgLT4gYm9vbCB7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFu dCB1c2VkIGhlcmUKLSAgICAgICAgICAgICBsZXQgZmlyc3QgPSAqc3JjOwotICAgICAgICAgICAg IGxldCBzZWNvbmQgPSAqKHNyYy5hZGQoMSkpOwotICAgICAgICAgICAgIGxldCB0aGlyZCA9ICoo c3JjLmFkZCgyKSk7Ci1AQCAtMTQ2NSwxNiArMTgzNCwyMiBAQAotICAgICAgICAgICAgIGlmIChm aXJzdCAmIEJBU0lDX0xBVElOX01BU0spIHwgKHNlY29uZCAmIEJBU0lDX0xBVElOX01BU0spIHwg KHRoaXJkICYgQkFTSUNfTEFUSU5fTUFTSykgfCAoZm91cnRoICYgQkFTSUNfTEFUSU5fTUFTSykg IT0gMCB7Ci0gICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICB9Ci0r ICAgICAgICAgICAgLy8gU2FmZXR5OiBkc3Qgc2FmZXR5IGludmFyaWFudCBwYXNzZWQgZG93bgot ICAgICAgICAgICAgIHBhY2tfYWx1KGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBmb3VydGgsIGRzdCk7 Ci0gICAgICAgICAgICAgdHJ1ZQotICAgICAgICAgfQotIAotKyAgICAgICAgLy8gU2FmZXR5OiBz cmMsIGRzdCBib3RoIHBvaW50IHRvIHR3byB2YWxpZCBgdXNpemVgcyBlYWNoCi0rICAgICAgICAv LyBTYWZldHktdXNhYmxlIGludmFyaWFudDogV2lsbCByZXR1cm4gYnl0ZSBpbmRleCBvZiBmaXJz dCBub24tYXNjaWkgYnl0ZS4KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1 bnNhZmUgZm4gYXNjaWlfdG9fYXNjaWlfc3RyaWRlKHNyYzogKmNvbnN0IHVzaXplLCBkc3Q6ICpt dXQgdXNpemUpIC0+IE9wdGlvbjx1c2l6ZT4gewotKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3Jj IHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgbGV0IHdvcmQgPSAqc3Jj OwotICAgICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICooc3JjLmFkZCgxKSk7Ci0rICAgICAg ICAgICAgLy8gU2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAg ICAgICAqZHN0ID0gd29yZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dv cmQ7Ci0rICAgICAgICAgICAgLy8gUmVsaWVzIG9uIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhl cmUKLSAgICAgICAgICAgICBmaW5kX25vbl9hc2NpaSh3b3JkLCBzZWNvbmRfd29yZCkKLSAgICAg ICAgIH0KLSAKLUBAIC0xNDgyLDYgKzE4NTcsNyBAQAotICAgICAgICAgYmFzaWNfbGF0aW5fYWx1 IShiYXNpY19sYXRpbl90b19hc2NpaSwgdTE2LCB1OCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3Ry aWRlX2FsdSk7Ci0gICAgICAgICBsYXRpbjFfYWx1ISh1bnBhY2tfbGF0aW4xLCB1OCwgdTE2LCB1 bnBhY2tfbGF0aW4xX3N0cmlkZV9hbHUpOwotICAgICAgICAgbGF0aW4xX2FsdSEocGFja19sYXRp bjEsIHUxNiwgdTgsIHBhY2tfbGF0aW4xX3N0cmlkZV9hbHUpOwotKyAgICAgICAgLy8gU2FmZXR5 IGludmFyaWFudCB1cGhlbGQ6IGFzY2lpX3RvX2FzY2lpX3N0cmlkZSB3aWxsIHJldHVybiBieXRl IGluZGV4IG9mIGZpcnN0IG5vbi1hc2NpaSBpZiBmb3VuZAotICAgICAgICAgYXNjaWlfYWx1IShh c2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2NpaV90b19hc2NpaV9zdHJpZGUpOwotICAgICB9Ci0g fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2hhbmRsZXMu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9oYW5kbGVzLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9oYW5kbGVzLnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTIuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy9oYW5kbGVzLnJzCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM5ODA0OTY5ICswMzAwCi1AQCAt MzQsNyArMzQsNyBAQAotICAgICAgICAgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFy Z2V0X2ZlYXR1cmUgPSAibmVvbiIpCi0gICAgICkKLSApKV0KLS11c2UgcGFja2VkX3NpbWQ6OnUx Nng4OwotK3VzZSBjb3JlOjpzaW1kOjp1MTZ4ODsKLSAKLSB1c2Ugc3VwZXI6OkRlY29kZXJSZXN1 bHQ7Ci0gdXNlIHN1cGVyOjpFbmNvZGVyUmVzdWx0OwotQEAgLTkwLDE5ICs5MCwyMyBAQAotIAot ICNbZGVyaXZlKERlYnVnLCBDb3B5LCBDbG9uZSldCi0gc3RydWN0IFVuYWxpZ25lZFUxNlNsaWNl IHsKLSsgICAgLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIHJlYWRp bmcgMipsZW4gYnl0ZXMKLSAgICAgcHRyOiAqY29uc3QgdTgsCi0gICAgIGxlbjogdXNpemUsCi0g fQotIAotIGltcGwgVW5hbGlnbmVkVTE2U2xpY2UgewotKyAgICAvLy8gU2FmZXR5OiBwdHIgbXVz dCBiZSB2YWxpZCBmb3IgcmVhZGluZyAyKmxlbiBieXRlcwotICAgICAjW2lubGluZShhbHdheXMp XQotICAgICBwdWIgdW5zYWZlIGZuIG5ldyhwdHI6ICpjb25zdCB1OCwgbGVuOiB1c2l6ZSkgLT4g VW5hbGlnbmVkVTE2U2xpY2UgewotKyAgICAgICAgLy8gU2FmZXR5OiBmaWVsZCBpbnZhcmlhbnQg cGFzc2VkIHVwIHRvIGNhbGxlciBoZXJlCi0gICAgICAgICBVbmFsaWduZWRVMTZTbGljZSB7IHB0 ciwgbGVuIH0KLSAgICAgfQotIAotICAgICAjW2lubGluZShhbHdheXMpXQotICAgICBwdWIgZm4g dHJpbV9sYXN0KCZtdXQgc2VsZikgewotICAgICAgICAgYXNzZXJ0IShzZWxmLmxlbiA+IDApOwot KyAgICAgICAgLy8gU2FmZXR5OiBpbnZhcmlhbnQgdXBoZWxkIGhlcmU6IGEgc2xpY2UgaXMgc3Rp bGwgdmFsaWQgd2l0aCBhIHNob3J0ZXIgbGVuCi0gICAgICAgICBzZWxmLmxlbiAtPSAxOwotICAg ICB9Ci0gCi1AQCAtMTEzLDcgKzExNyw5IEBACi0gICAgICAgICBhc3NlcnQhKGkgPCBzZWxmLmxl bik7Ci0gICAgICAgICB1bnNhZmUgewotICAgICAgICAgICAgIGxldCBtdXQgdTogTWF5YmVVbmlu aXQ8dTE2PiA9IE1heWJlVW5pbml0Ojp1bmluaXQoKTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6 IGkgaXMgYXQgbW9zdCBsZW4gLSAxLCB3aGljaCB3b3JrcyBoZXJlCi0gICAgICAgICAgICAgOjpj b3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoc2VsZi5wdHIuYWRkKGkgKiAyKSwgdS5hc19t dXRfcHRyKCkgYXMgKm11dCB1OCwgMik7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiB2YWxpZCBy ZWFkIGFib3ZlIGxldHMgdXMgZG8gdGhpcwotICAgICAgICAgICAgIHUuYXNzdW1lX2luaXQoKQot ICAgICAgICAgfQotICAgICB9Ci1AQCAtMTIxLDggKzEyNywxMyBAQAotICAgICAjW2NmZyhmZWF0 dXJlID0gInNpbWQtYWNjZWwiKV0KLSAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgcHViIGZu IHNpbWRfYXQoJnNlbGYsIGk6IHVzaXplKSAtPiB1MTZ4OCB7Ci0rICAgICAgICAvLyBTYWZldHk6 IGkvbGVuIGFyZSBvbiB0aGUgc2NhbGUgb2YgdTE2cywgZWFjaCBvbmUgY29ycmVzcG9uZHMgdG8g MiB1OHMKLSAgICAgICAgIGFzc2VydCEoaSArIFNJTURfU1RSSURFX1NJWkUgLyAyIDw9IHNlbGYu bGVuKTsKLSAgICAgICAgIGxldCBieXRlX2luZGV4ID0gaSAqIDI7Ci0rICAgICAgICAvLyBTYWZl dHk6IGxvYWQxNl91bmFsaWduZWQgbmVlZHMgU0lNRF9TVFJJREVfU0laRT0xNiB1OCBlbGVtZW50 cyB0byByZWFkLAotKyAgICAgICAgLy8gb3IgMTYvMiA9IDggdTE2IGVsZW1lbnRzIHRvIHJlYWQu Ci0rICAgICAgICAvLyBXZSBoYXZlIGNoZWNrZWQgdGhhdCB3ZSBoYXZlIGF0IGxlYXN0IHRoYXQg bWFueSBhYm92ZS4KLSsKLSAgICAgICAgIHVuc2FmZSB7IHRvX3UxNl9sYW5lcyhsb2FkMTZfdW5h bGlnbmVkKHNlbGYucHRyLmFkZChieXRlX2luZGV4KSkpIH0KLSAgICAgfQotIAotQEAgLTEzNiw2 ICsxNDcsNyBAQAotICAgICAgICAgLy8gWFhYIHRoZSByZXR1cm4gdmFsdWUgc2hvdWxkIGJlIHJl c3RyaWN0ZWQgbm90IHRvCi0gICAgICAgICAvLyBvdXRsaXZlIHNlbGYuCi0gICAgICAgICBhc3Nl cnQhKGZyb20gPD0gc2VsZi5sZW4pOwotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIHVwaG9sZHMg dGhlIHNhbWUgaW52YXJpYW50OiBgZnJvbWAgaXMgaW4gYm91bmRzIGFuZCB3ZSdyZSByZXR1cm5p bmcgYSBzaG9ydGVyIHNsaWNlCi0gICAgICAgICB1bnNhZmUgeyBVbmFsaWduZWRVMTZTbGljZTo6 bmV3KHNlbGYucHRyLmFkZChmcm9tICogMiksIHNlbGYubGVuIC0gZnJvbSkgfQotICAgICB9Ci0g Ci1AQCAtMTQ0LDYgKzE1Niw4IEBACi0gICAgIHB1YiBmbiBjb3B5X2JtcF90bzxFOiBFbmRpYW4+ KCZzZWxmLCBvdGhlcjogJm11dCBbdTE2XSkgLT4gT3B0aW9uPCh1MTYsIHVzaXplKT4gewotICAg ICAgICAgYXNzZXJ0IShzZWxmLmxlbiA8PSBvdGhlci5sZW4oKSk7Ci0gICAgICAgICBsZXQgbXV0 IG9mZnNldCA9IDA7Ci0rICAgICAgICAvLyBTYWZldHk6IFNJTURfU1RSSURFX1NJWkUgaXMgbWVh c3VyZWQgaW4gYnl0ZXMsIHdoZXJlYXMgbGVuIGlzIGluIHUxNnMuIFdlIGNoZWNrIHdlIGNhbgot KyAgICAgICAgLy8gbXVuY2ggU0lNRF9TVFJJREVfU0laRSAvIDIgdTE2cyB3aGljaCBtZWFucyB3 ZSBjYW4gd3JpdGUgU0lNRF9TVFJJREVfU0laRSB1OHMKLSAgICAgICAgIGlmIFNJTURfU1RSSURF X1NJWkUgLyAyIDw9IHNlbGYubGVuIHsKLSAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlk ZSA9IHNlbGYubGVuIC0gU0lNRF9TVFJJREVfU0laRSAvIDI7Ci0gICAgICAgICAgICAgbG9vcCB7 Ci1AQCAtMTUxLDYgKzE2NSw3IEBACi0gICAgICAgICAgICAgICAgIGlmIEU6Ok9QUE9TSVRFX0VO RElBTiB7Ci0gICAgICAgICAgICAgICAgICAgICBzaW1kID0gc2ltZF9ieXRlX3N3YXAoc2ltZCk7 Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSBoYXZl IGVub3VnaCBzcGFjZSBvbiB0aGUgb3RoZXIgc2lkZSB0byB3cml0ZSB0aGlzCi0gICAgICAgICAg ICAgICAgIHVuc2FmZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzdG9yZThfdW5hbGlnbmVkKG90 aGVyLmFzX211dF9wdHIoKS5hZGQob2Zmc2V0KSwgc2ltZCk7Ci0gICAgICAgICAgICAgICAgIH0K LUBAIC0xNTgsNiArMTczLDcgQEAKLSAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpF IC8gMjsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGVuc3VyZXMgd2Ugc3RpbGwg aGF2ZSBzcGFjZSBmb3Igd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHU4cwotICAgICAgICAgICAg ICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwotICAgICAgICAgICAgICAgICB9Ci1AQCAtMjM2LDYgKzI1Miw3IEBACi0gKSAtPiBD b3B5QXNjaWlSZXN1bHQ8dXNpemUsICh1MTYsIHVzaXplKT4gewotICAgICBsZXQgbGVuID0gOjpj b3JlOjpjbXA6Om1pbihzcmMubGVuKCksIGRzdC5sZW4oKSk7Ci0gICAgIGxldCBtdXQgb2Zmc2V0 ID0gMDsKLSsgICAgLy8gU2FmZXR5OiBUaGlzIGNoZWNrIGVuc3VyZXMgd2UgYXJlIGFibGUgdG8g cmVhZC93cml0ZSBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzCi0gICAgIGlmIFNJ TURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0g bGVuIC0gU0lNRF9TVFJJREVfU0laRTsKLSAgICAgICAgIGxvb3AgewotQEAgLTI0OSwxMCArMjY2 LDEzIEBACi0gICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICBsZXQgcGFja2VkID0gc2ltZF9wYWNrKGZpcnN0LCBzZWNvbmQpOwotKyAgICAgICAgICAg IC8vIFNhZmV0eTogV2UgYXJlIGFibGUgdG8gd3JpdGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50 cyBpbiB0aGlzIGl0ZXJhdGlvbgotICAgICAgICAgICAgIHVuc2FmZSB7Ci0gICAgICAgICAgICAg ICAgIHN0b3JlMTZfdW5hbGlnbmVkKGRzdC5hc19tdXRfcHRyKCkuYWRkKG9mZnNldCksIHBhY2tl ZCk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9T SVpFOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lN RF9TVFJJREVfU0laRWAsIHdoaWNoIGVuc3VyZXMgdGhhdCB3ZSBjYW4gd3JpdGUgYXQgbGVhc3Qg U0lNRF9TVFJJREVfU0laRSBlbGVtZW50cwotKyAgICAgICAgICAgIC8vIGluIHRoZSBuZXh0IGl0 ZXJhdGlvbgotICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAg ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICB9Ci1AQCAtNjM3LDcgKzY1Nyw3IEBA Ci0gICAgICAgICBzZWxmLndyaXRlX2NvZGVfdW5pdCgoMHhEQzAwICsgKGFzdHJhbCAmIDB4M0ZG KSkgYXMgdTE2KTsKLSAgICAgfQotICAgICAjW2lubGluZShhbHdheXMpXQotLSAgICBwdWIgZm4g d3JpdGVfc3Vycm9nYXRlX3BhaXIoJm11dCBzZWxmLCBoaWdoOiB1MTYsIGxvdzogdTE2KSB7Ci0r ICAgIGZuIHdyaXRlX3N1cnJvZ2F0ZV9wYWlyKCZtdXQgc2VsZiwgaGlnaDogdTE2LCBsb3c6IHUx NikgewotICAgICAgICAgc2VsZi53cml0ZV9jb2RlX3VuaXQoaGlnaCk7Ci0gICAgICAgICBzZWxm LndyaXRlX2NvZGVfdW5pdChsb3cpOwotICAgICB9Ci1AQCAtNjQ2LDYgKzY2Niw3IEBACi0gICAg ICAgICBzZWxmLndyaXRlX2JtcF9leGNsX2FzY2lpKGNvbWJpbmVkKTsKLSAgICAgICAgIHNlbGYu d3JpdGVfYm1wX2V4Y2xfYXNjaWkoY29tYmluaW5nKTsKLSAgICAgfQotKyAgICAvLyBTYWZldHkt dXNhYmxlIGludmFyaWFudDogQ29weUFzY2lpUmVzdWx0OjpHb09uIHdpbGwgb25seSBjb250YWlu IGJ5dGVzID49MHg4MAotICAgICAjW2lubGluZShhbHdheXMpXQotICAgICBwdWIgZm4gY29weV9h c2NpaV9mcm9tX2NoZWNrX3NwYWNlX2JtcDwnYj4oCi0gICAgICAgICAmJ2IgbXV0IHNlbGYsCi1A QCAtNjU5LDYgKzY4MCw4IEBACi0gICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg ICAgKERlY29kZXJSZXN1bHQ6OklucHV0RW1wdHksIHNyY19yZW1haW5pbmcubGVuKCkpCi0gICAg ICAgICAgICAgfTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gaXMgZG9j dW1lbnRlZCBhcyBuZWVkaW5nIHZhbGlkIHBvaW50ZXJzIGZvciBzcmMvZGVzdCBhbmQgbGVuLCB3 aGljaAotKyAgICAgICAgICAgIC8vIGlzIHRydWUgc2luY2Ugd2UndmUgcGFzc2VkIHRoZSBtaW51 bXVtIGxlbmd0aCBvZiB0aGUgdHdvCi0gICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsKLSAgICAg ICAgICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW4oc3JjX3JlbWFpbmluZy5hc19wdHIoKSwg ZHN0X3JlbWFpbmluZy5hc19tdXRfcHRyKCksIGxlbmd0aCkKLSAgICAgICAgICAgICB9IHsKLUBA IC02NjcsMTYgKzY5MCwyMCBAQAotICAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3MgKz0gbGVu Z3RoOwotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcHlBc2NpaVJlc3VsdDo6U3RvcCgo cGVuZGluZywgc291cmNlLnBvcywgc2VsZi5wb3MpKTsKLSAgICAgICAgICAgICAgICAgfQotKyAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBmdW5jdGlvbiBpcyBkb2N1bWVudGVkIGFzIHJl dHVybmluZyBieXRlcyA+PTB4ODAgaW4gdGhlIFNvbWUKLSAgICAgICAgICAgICAgICAgU29tZSgo bm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5w b3MgKz0gY29uc3VtZWQ7Ci0gICAgICAgICAgICAgICAgICAgICBzZWxmLnBvcyArPSBjb25zdW1l ZDsKLSAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3MgKz0gMTsgLy8gKzEgZm9yIG5vbl9h c2NpaQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG5v bi1hc2NpaSBidWJibGVkIG91dCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICBub25fYXNjaWkK LSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgIH07Ci0rICAgICAg ICAvLyBTYWZldHk6IG5vbi1hc2NpaSByZXR1cm5lZCBoZXJlCi0gICAgICAgICBDb3B5QXNjaWlS ZXN1bHQ6OkdvT24oKG5vbl9hc2NpaV9yZXQsIFV0ZjE2Qm1wSGFuZGxlOjpuZXcoc2VsZikpKQot ICAgICB9Ci0rICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBDb3B5QXNjaWlSZXN1bHQ6 OkdvT24gd2lsbCBvbmx5IGNvbnRhaW4gYnl0ZXMgPj0weDgwCi0gICAgICNbaW5saW5lKGFsd2F5 cyldCi0gICAgIHB1YiBmbiBjb3B5X2FzY2lpX2Zyb21fY2hlY2tfc3BhY2VfYXN0cmFsPCdiPigK LSAgICAgICAgICYnYiBtdXQgc2VsZiwKLUBAIC02OTEsNiArNzE4LDggQEAKLSAgICAgICAgICAg ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAoRGVjb2RlclJlc3VsdDo6SW5wdXRFbXB0eSwg c3JjX3JlbWFpbmluZy5sZW4oKSkKLSAgICAgICAgICAgICB9OwotKyAgICAgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBmdW5jdGlvbiBpcyBkb2N1bWVudGVkIGFzIG5lZWRpbmcgdmFsaWQgcG9pbnRl cnMgZm9yIHNyYy9kZXN0IGFuZCBsZW4sIHdoaWNoCi0rICAgICAgICAgICAgLy8gaXMgdHJ1ZSBz aW5jZSB3ZSd2ZSBwYXNzZWQgdGhlIG1pbnVtdW0gbGVuZ3RoIG9mIHRoZSB0d28KLSAgICAgICAg ICAgICBtYXRjaCB1bnNhZmUgewotICAgICAgICAgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRp bihzcmNfcmVtYWluaW5nLmFzX3B0cigpLCBkc3RfcmVtYWluaW5nLmFzX211dF9wdHIoKSwgbGVu Z3RoKQotICAgICAgICAgICAgIH0gewotQEAgLTY5OSwxMSArNzI4LDEzIEBACi0gICAgICAgICAg ICAgICAgICAgICBzZWxmLnBvcyArPSBsZW5ndGg7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1 cm4gQ29weUFzY2lpUmVzdWx0OjpTdG9wKChwZW5kaW5nLCBzb3VyY2UucG9zLCBzZWxmLnBvcykp OwotICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhlIGZ1 bmN0aW9uIGlzIGRvY3VtZW50ZWQgYXMgcmV0dXJuaW5nIGJ5dGVzID49MHg4MCBpbiB0aGUgU29t ZQotICAgICAgICAgICAgICAgICBTb21lKChub25fYXNjaWksIGNvbnN1bWVkKSkgPT4gewotICAg ICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyArPSBjb25zdW1lZDsKLSAgICAgICAgICAgICAg ICAgICAgIHNlbGYucG9zICs9IGNvbnN1bWVkOwotICAgICAgICAgICAgICAgICAgICAgaWYgc2Vs Zi5wb3MgKyAxIDwgZHN0X2xlbiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBv cyArPSAxOyAvLyArMSBmb3Igbm9uX2FzY2lpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IG5vbi1hc2NpaSBidWJibGVkIG91dCBoZXJlCi0gICAg ICAgICAgICAgICAgICAgICAgICAgbm9uX2FzY2lpCi0gICAgICAgICAgICAgICAgICAgICB9IGVs c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb3B5QXNjaWlSZXN1bHQ6OlN0 b3AoKAotQEAgLTcxNSw2ICs3NDYsNyBAQAotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgfQotICAgICAgICAgfTsKLSsgICAgICAgIC8vIFNhZmV0eTogbm9uLWFzY2lpIHJldHVybmVk IGhlcmUKLSAgICAgICAgIENvcHlBc2NpaVJlc3VsdDo6R29Pbigobm9uX2FzY2lpX3JldCwgVXRm MTZBc3RyYWxIYW5kbGU6Om5ldyhzZWxmKSkpCi0gICAgIH0KLSAgICAgI1tpbmxpbmUoYWx3YXlz KV0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJz CTIwMjUtMDktMTcgMTc6NDE6MjEuMTQwODA0OTMxICswMzAwCi1AQCAtNjg5LDcgKzY4OSw3IEBA Ci0gLy8hIGZvciBkaXNjdXNzaW9uIGFib3V0IHRoZSBVVEYtMTYgZmFtaWx5LgotIAotICMhW25v X3N0ZF0KLS0jIVtjZmdfYXR0cihmZWF0dXJlID0gInNpbWQtYWNjZWwiLCBmZWF0dXJlKGNvcmVf aW50cmluc2ljcykpXQotKyMhW2NmZ19hdHRyKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIGZlYXR1 cmUoY29yZV9pbnRyaW5zaWNzLCBwb3J0YWJsZV9zaW1kKSldCi0gCi0gI1tjZmcoZmVhdHVyZSA9 ICJhbGxvYyIpXQotICNbY2ZnX2F0dHIodGVzdCwgbWFjcm9fdXNlKV0KLUBAIC02OTksMTcgKzY5 OSw2IEBACi0gI1ttYWNyb191c2VdCi0gZXh0ZXJuIGNyYXRlIGNmZ19pZjsKLSAKLS0jW2NmZyhh bGwoCi0tICAgIGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsCi0tICAgIGFueSgKLS0gICAgICAgIHRh cmdldF9mZWF0dXJlID0gInNzZTIiLAotLSAgICAgICAgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0 dGxlIiwgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpLAotLSAgICAgICAgYWxsKHRhcmdldF9lbmRp YW4gPSAibGl0dGxlIiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIpCi0tICAgICkKLS0pKV0KLS0j W21hY3JvX3VzZShzaHVmZmxlKV0KLS1leHRlcm4gY3JhdGUgcGFja2VkX3NpbWQ7Ci0tCi0gI1tj ZmcoZmVhdHVyZSA9ICJzZXJkZSIpXQotIGV4dGVybiBjcmF0ZSBzZXJkZTsKLSAKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9tZW0ucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9tZW0ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL21lbS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbWVtLnJzCTIwMjUtMDktMTcg MTc6NDE6MjEuMTQwODA0OTMxICswMzAwCi1AQCAtMTE2LDYgKzExNiwxMSBAQAotICAgICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUg PSBsZW4gLSBBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplOwotICAgICAgICAgICAgICAgICAgICAg aWYgb2Zmc2V0ICsgKDQgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSkpIDw9IGxlbiB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgYWJvdmUgY2hlY2sgbGV0cyB1 cyBwZXJmb3JtIDQgY29uc2VjdXRpdmUgcmVhZHMgb2YKLSsgICAgICAgICAgICAgICAgICAgICAg ICAvLyBsZW5ndGggQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZS4gQUxVX0FMSUdOTUVOVCBpcyB0 aGUgc2l6ZSBvZiB1c2l6ZSwgYW5kIHVuaXRfc2l6ZQotKyAgICAgICAgICAgICAgICAgICAgICAg IC8vIGlzIHRoZSBzaXplIG9mIHRoZSBgc3JjYCBwb2ludGVyLCBzbyB0aGlzIGlzIGVxdWFsIHRv IHBlcmZvcm1pbmcgZm91ciB1c2l6ZSByZWFkcy4KLSsgICAgICAgICAgICAgICAgICAgICAgICAv LwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaW52YXJpYW50IGlzIHVwaGVsZCBv biBhbGwgbG9vcCBpdGVyYXRpb25zCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9t aW51c191bnJvbGwgPSBsZW4gLSAoNCAqIChBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplKSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB1bnJvbGxfYWNjdSA9IHVuc2FmZSB7ICooc3JjLmFkZChvZmZzZXQpIGFzICpjb25z dCB1c2l6ZSkgfQotQEAgLTEzNCwxMiArMTM5LDE0IEBACi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQgKiAoQUxVX0FMSUdOTUVO VCAvIHVuaXRfc2l6ZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog dGhpcyBjaGVjayBsZXRzIHVzIGNvbnRpbnVlIHRvIHBlcmZvcm0gdGhlIDQgcmVhZHMgZWFybGll cgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfdW5y b2xsIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDw9IGxl bl9taW51c19zdHJpZGUgewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhl IGFib3ZlIGNoZWNrIGxldHMgdXMgcGVyZm9ybSBvbmUgdXNpemUgcmVhZC4KLSAgICAgICAgICAg ICAgICAgICAgICAgICBhY2N1IHw9IHVuc2FmZSB7ICooc3JjLmFkZChvZmZzZXQpIGFzICpjb25z dCB1c2l6ZSkgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gQUxVX0FMSUdO TUVOVCAvIHVuaXRfc2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC0xODksNiArMTk2 LDExIEBACi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBsZXQg bGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemU7Ci0g ICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyAoNCAqIChTSU1EX1NUUklERV9TSVpFIC8g dW5pdF9zaXplKSkgPD0gbGVuIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IHRoZSBhYm92ZSBjaGVjayBsZXRzIHVzIHBlcmZvcm0gNCBjb25zZWN1dGl2ZSByZWFkcyBvZgot KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aCBTSU1EX1NUUklERV9TSVpFIC8gdW5p dF9zaXplLiBTSU1EX1NUUklERV9TSVpFIGlzIHRoZSBzaXplIG9mICRzaW1kX3R5LCBhbmQgdW5p dF9zaXplCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgdGhlIHNpemUgb2YgdGhlIGBz cmNgIHBvaW50ZXIsIHNvIHRoaXMgaXMgZXF1YWwgdG8gcGVyZm9ybWluZyBmb3VyICRzaW1kX3R5 IHJlYWRzLgotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVGhpcyBpbnZhcmlhbnQgaXMgdXBoZWxkIG9uIGFsbCBsb29wIGl0ZXJhdGlvbnMK LSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3Vucm9sbCA9IGxlbiAtICg0 ICogKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICBsb29wIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVucm9sbF9hY2N1 ID0gdW5zYWZlIHsgKihzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0ICRzaW1kX3R5KSB9Ci1AQCAt MjA4LDYgKzIyMCw3IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IDQgKiAoU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZSk7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBjaGVjayBsZXRz IHVzIGNvbnRpbnVlIHRvIHBlcmZvcm0gdGhlIDQgcmVhZHMgZWFybGllcgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfdW5yb2xsIHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci1AQCAtMjE1LDYgKzIyOCw3IEBACi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHNpbWRfYWNjdSA9ICRzcGxhdDsKLSAgICAgICAgICAg ICAgICAgICAgIHdoaWxlIG9mZnNldCA8PSBsZW5fbWludXNfc3RyaWRlIHsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBhYm92ZSBjaGVjayBsZXRzIHVzIHBlcmZvcm0g b25lICRzaW1kX3R5IHJlYWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2ltZF9hY2N1ID0g c2ltZF9hY2N1IHwgdW5zYWZlIHsgKihzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0ICRzaW1kX3R5 KSB9OwotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpF IC8gdW5pdF9zaXplOwotICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTIzNCw4ICsyNDgsOCBA QAotIGNmZ19pZiEgewotICAgICBpZiAjW2NmZyhhbGwoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwg YW55KHRhcmdldF9mZWF0dXJlID0gInNzZTIiLCBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUi LCB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiksIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIs IHRhcmdldF9mZWF0dXJlID0gIm5lb24iKSkpKV0gewotICAgICAgICAgdXNlIGNyYXRlOjpzaW1k X2Z1bmNzOjoqOwotLSAgICAgICAgdXNlIHBhY2tlZF9zaW1kOjp1OHgxNjsKLS0gICAgICAgIHVz ZSBwYWNrZWRfc2ltZDo6dTE2eDg7Ci0rICAgICAgICB1c2UgY29yZTo6c2ltZDo6dTh4MTY7Ci0r ICAgICAgICB1c2UgY29yZTo6c2ltZDo6dTE2eDg7Ci0gCi0gICAgICAgICBjb25zdCBTSU1EX0FM SUdOTUVOVDogdXNpemUgPSAxNjsKLSAKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy9zaW1kX2Z1bmNzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvc2ltZF9mdW5jcy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9z cmMvc2ltZF9mdW5jcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvc2ltZF9mdW5jcy5ycwkyMDI1LTA5 LTE3IDE3OjQxOjIxLjE0MTgwNDg5MiArMDMwMAotQEAgLTcsNTUgKzcsNzQgQEAKLSAvLyBvcHRp b24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVk Ci0gLy8gZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KLSAKLS11c2UgcGFja2VkX3Np bWQ6OnUxNng4OwotLXVzZSBwYWNrZWRfc2ltZDo6dTh4MTY7Ci0tdXNlIHBhY2tlZF9zaW1kOjpJ bnRvQml0czsKLSt1c2UgYW55X2FsbF93b3JrYXJvdW5kOjphbGxfbWFzazE2eDg7Ci0rdXNlIGFu eV9hbGxfd29ya2Fyb3VuZDo6YWxsX21hc2s4eDE2OwotK3VzZSBhbnlfYWxsX3dvcmthcm91bmQ6 OmFueV9tYXNrMTZ4ODsKLSt1c2UgYW55X2FsbF93b3JrYXJvdW5kOjphbnlfbWFzazh4MTY7Ci0r dXNlIGNvcmU6OnNpbWQ6OmNtcDo6U2ltZFBhcnRpYWxFcTsKLSt1c2UgY29yZTo6c2ltZDo6Y21w OjpTaW1kUGFydGlhbE9yZDsKLSt1c2UgY29yZTo6c2ltZDo6bWFzazE2eDg7Ci0rdXNlIGNvcmU6 OnNpbWQ6Om1hc2s4eDE2OwotK3VzZSBjb3JlOjpzaW1kOjpzaW1kX3N3aXp6bGU7Ci0rdXNlIGNv cmU6OnNpbWQ6OnUxNng4OwotK3VzZSBjb3JlOjpzaW1kOjp1OHgxNjsKLSt1c2UgY29yZTo6c2lt ZDo6VG9CeXRlczsKLSAKLSAvLyBUT0RPOiBNaWdyYXRlIHVuYWxpZ25lZCBhY2Nlc3MgdG8gc3Rk bGliIGNvZGUgaWYvd2hlbiB0aGUgUkZDCi0gLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy9yZmNzL3B1bGwvMTcyNSBpcyBpbXBsZW1lbnRlZC4KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFu dDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIHVuYWxpZ25lZCByZWFkIG9mIDE2IGJ5dGVzCi0g I1tpbmxpbmUoYWx3YXlzKV0KLSBwdWIgdW5zYWZlIGZuIGxvYWQxNl91bmFsaWduZWQocHRyOiAq Y29uc3QgdTgpIC0+IHU4eDE2IHsKLS0gICAgbGV0IG11dCBzaW1kID0gOjpjb3JlOjptZW06OnVu aW5pdGlhbGl6ZWQoKTsKLS0gICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcocHRy LCAmbXV0IHNpbWQgYXMgKm11dCB1OHgxNiBhcyAqbXV0IHU4LCAxNik7Ci0tICAgIHNpbWQKLSsg ICAgbGV0IG11dCBzaW1kID0gOjpjb3JlOjptZW06Ok1heWJlVW5pbml0Ojo8dTh4MTY+Ojp1bmlu aXQoKTsKLSsgICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcocHRyLCBzaW1kLmFz X211dF9wdHIoKSBhcyAqbXV0IHU4LCAxNik7Ci0rICAgIC8vIFNhZmV0eTogY29waWVkIDE2IGJ5 dGVzIG9mIGluaXRpYWxpemVkIG1lbW9yeSBpbnRvIHRoaXMsIGl0IGlzIG5vdyBpbml0aWFsaXpl ZAotKyAgICBzaW1kLmFzc3VtZV9pbml0KCkKLSB9Ci0gCi0rLy8vIFNhZmV0eSBpbnZhcmlhbnQ6 IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiBhbGlnbmVkLWZvci11OHgxNiByZWFkIG9mIDE2IGJ5 dGVzCi0gI1thbGxvdyhkZWFkX2NvZGUpXQotICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVuc2Fm ZSBmbiBsb2FkMTZfYWxpZ25lZChwdHI6ICpjb25zdCB1OCkgLT4gdTh4MTYgewotICAgICAqKHB0 ciBhcyAqY29uc3QgdTh4MTYpCi0gfQotIAotKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVz dCBiZSB2YWxpZCBmb3IgYW4gdW5hbGlnbmVkIHN0b3JlIG9mIDE2IGJ5dGVzCi0gI1tpbmxpbmUo YWx3YXlzKV0KLSBwdWIgdW5zYWZlIGZuIHN0b3JlMTZfdW5hbGlnbmVkKHB0cjogKm11dCB1OCwg czogdTh4MTYpIHsKLSAgICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoJnMgYXMg KmNvbnN0IHU4eDE2IGFzICpjb25zdCB1OCwgcHRyLCAxNik7Ci0gfQotIAotKy8vLyBTYWZldHkg aW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gYWxpZ25lZC1mb3ItdTh4MTYgc3Rv cmUgb2YgMTYgYnl0ZXMKLSAjW2FsbG93KGRlYWRfY29kZSldCi0gI1tpbmxpbmUoYWx3YXlzKV0K LSBwdWIgdW5zYWZlIGZuIHN0b3JlMTZfYWxpZ25lZChwdHI6ICptdXQgdTgsIHM6IHU4eDE2KSB7 Ci0gICAgICoocHRyIGFzICptdXQgdTh4MTYpID0gczsKLSB9Ci0gCi0rLy8vIFNhZmV0eSBpbnZh cmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiB1bmFsaWduZWQgcmVhZCBvZiAxNiBieXRl cwotICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVuc2FmZSBmbiBsb2FkOF91bmFsaWduZWQocHRy OiAqY29uc3QgdTE2KSAtPiB1MTZ4OCB7Ci0tICAgIGxldCBtdXQgc2ltZCA9IDo6Y29yZTo6bWVt Ojp1bmluaXRpYWxpemVkKCk7Ci0tICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5n KHB0ciBhcyAqY29uc3QgdTgsICZtdXQgc2ltZCBhcyAqbXV0IHUxNng4IGFzICptdXQgdTgsIDE2 KTsKLS0gICAgc2ltZAotKyAgICBsZXQgbXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6TWF5YmVVbmlu aXQ6Ojx1MTZ4OD46OnVuaW5pdCgpOwotKyAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFw cGluZyhwdHIgYXMgKmNvbnN0IHU4LCBzaW1kLmFzX211dF9wdHIoKSBhcyAqbXV0IHU4LCAxNik7 Ci0rICAgIC8vIFNhZmV0eTogY29waWVkIDE2IGJ5dGVzIG9mIGluaXRpYWxpemVkIG1lbW9yeSBp bnRvIHRoaXMsIGl0IGlzIG5vdyBpbml0aWFsaXplZAotKyAgICBzaW1kLmFzc3VtZV9pbml0KCkK LSB9Ci0gCi0rLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiBh bGlnbmVkLWZvci11MTZ4OCByZWFkIG9mIDE2IGJ5dGVzCi0gI1thbGxvdyhkZWFkX2NvZGUpXQot ICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVuc2FmZSBmbiBsb2FkOF9hbGlnbmVkKHB0cjogKmNv bnN0IHUxNikgLT4gdTE2eDggewotICAgICAqKHB0ciBhcyAqY29uc3QgdTE2eDgpCi0gfQotIAot Ky8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gdW5hbGlnbmVk IHN0b3JlIG9mIDE2IGJ5dGVzCi0gI1tpbmxpbmUoYWx3YXlzKV0KLSBwdWIgdW5zYWZlIGZuIHN0 b3JlOF91bmFsaWduZWQocHRyOiAqbXV0IHUxNiwgczogdTE2eDgpIHsKLSAgICAgOjpjb3JlOjpw dHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoJnMgYXMgKmNvbnN0IHUxNng4IGFzICpjb25zdCB1OCwg cHRyIGFzICptdXQgdTgsIDE2KTsKLSB9Ci0gCi0rLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBt dXN0IGJlIHZhbGlkIGZvciBhbiBhbGlnbmVkLWZvci11MTZ4OCBzdG9yZSBvZiAxNiBieXRlcwot ICNbYWxsb3coZGVhZF9jb2RlKV0KLSAjW2lubGluZShhbHdheXMpXQotIHB1YiB1bnNhZmUgZm4g c3RvcmU4X2FsaWduZWQocHRyOiAqbXV0IHUxNiwgczogdTE2eDgpIHsKLUBAIC0xMDAsNyArMTE5 LDcgQEAKLSAKLSAjW2lubGluZShhbHdheXMpXQotIHB1YiBmbiB0b191MTZfbGFuZXMoczogdTh4 MTYpIC0+IHUxNng4IHsKLS0gICAgcy5pbnRvX2JpdHMoKQotKyAgICB1MTZ4ODo6ZnJvbV9uZV9i eXRlcyhzKQotIH0KLSAKLSBjZmdfaWYhIHsKLUBAIC0xMDgsMTAgKzEyNywxMSBAQAotIAotICAg ICAgICAgLy8gRXhwb3NlIGxvdy1sZXZlbCBtYXNrIGluc3RlYWQgb2YgaGlnaGVyLWxldmVsIGNv bmNsdXNpb24sCi0gICAgICAgICAvLyBiZWNhdXNlIHRoZSBub24tQVNDSUkgY2FzZSB3b3VsZCBw ZXJmb3JtIGxlc3Mgd2VsbCBvdGhlcndpc2UuCi0rICAgICAgICAvLyBTYWZldHktdXNhYmxlIGlu dmFyaWFudDogVGhpcyByZXR1cm5lZCB2YWx1ZSBpcyB3aGV0aGVyIGVhY2ggaGlnaCBiaXQgaXMg c2V0Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIGZuIG1hc2tfYXNj aWkoczogdTh4MTYpIC0+IGkzMiB7Ci0gICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAg ICAgICAgX21tX21vdmVtYXNrX2VwaTgocy5pbnRvX2JpdHMoKSkKLSsgICAgICAgICAgICAgICAg X21tX21vdmVtYXNrX2VwaTgocy5pbnRvKCkpCi0gICAgICAgICAgICAgfQotICAgICAgICAgfQot IAotQEAgLTEyNSwxNCArMTQ1LDE2IEBACi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAg ICAgICAgcHViIGZuIHNpbWRfaXNfYXNjaWkoczogdTh4MTYpIC0+IGJvb2wgewotICAgICAgICAg ICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KHMuaW50b19i aXRzKCkpID09IDAKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0 aGUgY29ycmVjdCBwbGF0Zm9ybQotKyAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfZXBpOChz LmludG8oKSkgPT0gMAotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgfSBlbHNlIGlm ICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV17Ci0gICAgICAgICAjW2lubGluZShhbHdh eXMpXQotICAgICAgICAgcHViIGZuIHNpbWRfaXNfYXNjaWkoczogdTh4MTYpIC0+IGJvb2wgewot ICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgIHZtYXh2cV91OChzLmludG9f Yml0cygpKSA8IDB4ODAKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygp ZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQotKyAgICAgICAgICAgICAgICB2bWF4dnFfdTgocy5pbnRv KCkpIDwgMHg4MAotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgfSBlbHNlIHsKLUBA IC0xNDEsNyArMTYzLDcgQEAKLSAgICAgICAgICAgICAvLyBUaGlzIG9wdGltaXplcyBiZXR0ZXIg b24gQVJNIHRoYW4KLSAgICAgICAgICAgICAvLyB0aGUgbHQgZm9ybXVsYXRpb24uCi0gICAgICAg ICAgICAgbGV0IGhpZ2hlc3RfYXNjaWkgPSB1OHgxNjo6c3BsYXQoMHg3Rik7Ci0tICAgICAgICAg ICAgIXMuZ3QoaGlnaGVzdF9hc2NpaSkuYW55KCkKLSsgICAgICAgICAgICAhYW55X21hc2s4eDE2 KHMuc2ltZF9ndChoaWdoZXN0X2FzY2lpKSkKLSAgICAgICAgIH0KLSAgICAgfQotIH0KLUBAIC0x NTQsMjAgKzE3NiwyMSBAQAotICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgbGV0IGFib3ZlX3N0cl9sYXRpbjEgPSB1OHgxNjo6c3BsYXQo MHhDNCk7Ci0tICAgICAgICAgICAgcy5sdChhYm92ZV9zdHJfbGF0aW4xKS5hbGwoKQotKyAgICAg ICAgICAgIHMuc2ltZF9sdChhYm92ZV9zdHJfbGF0aW4xKS5hbGwoKQotICAgICAgICAgfQotICAg ICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXXsKLSAgICAgICAgICNb aW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgZm4gc2ltZF9pc19zdHJfbGF0aW4xKHM6IHU4 eDE2KSAtPiBib29sIHsKLSAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICB2 bWF4dnFfdTgocy5pbnRvX2JpdHMoKSkgPCAweEM0Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KLSsgICAgICAgICAgICAgICAg dm1heHZxX3U4KHMuaW50bygpKSA8IDB4QzQKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0g ICAgIH0gZWxzZSB7Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIGZu IHNpbWRfaXNfc3RyX2xhdGluMShzOiB1OHgxNikgLT4gYm9vbCB7Ci0gICAgICAgICAgICAgbGV0 IGFib3ZlX3N0cl9sYXRpbjEgPSB1OHgxNjo6c3BsYXQoMHhDNCk7Ci0tICAgICAgICAgICAgcy5s dChhYm92ZV9zdHJfbGF0aW4xKS5hbGwoKQotKyAgICAgICAgICAgIGFsbF9tYXNrOHgxNihzLnNp bWRfbHQoYWJvdmVfc3RyX2xhdGluMSkpCi0gICAgICAgICB9Ci0gICAgIH0KLSB9Ci1AQCAtMTc3 LDIxICsyMDAsMjMgQEAKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIg Zm4gc2ltZF9pc19iYXNpY19sYXRpbihzOiB1MTZ4OCkgLT4gYm9vbCB7Ci0gICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG9fYml0cygpKSA8IDB4 ODAKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVj dCBwbGF0Zm9ybQotKyAgICAgICAgICAgICAgICB2bWF4dnFfdTE2KHMuaW50bygpKSA8IDB4ODAK LSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gCi0gICAgICAgICAjW2lubGluZShhbHdheXMp XQotICAgICAgICAgcHViIGZuIHNpbWRfaXNfbGF0aW4xKHM6IHUxNng4KSAtPiBib29sIHsKLSAg ICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICB2bWF4dnFfdTE2KHMuaW50b19i aXRzKCkpIDwgMHgxMDAKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygp ZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQotKyAgICAgICAgICAgICAgICB2bWF4dnFfdTE2KHMuaW50 bygpKSA8IDB4MTAwCi0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVsc2Ugewot ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBzaW1kX2lzX2Jhc2lj X2xhdGluKHM6IHUxNng4KSAtPiBib29sIHsKLSAgICAgICAgICAgICBsZXQgYWJvdmVfYXNjaWkg PSB1MTZ4ODo6c3BsYXQoMHg4MCk7Ci0tICAgICAgICAgICAgcy5sdChhYm92ZV9hc2NpaSkuYWxs KCkKLSsgICAgICAgICAgICBhbGxfbWFzazE2eDgocy5zaW1kX2x0KGFib3ZlX2FzY2lpKSkKLSAg ICAgICAgIH0KLSAKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi1AQCAtMjAwLDcgKzIyNSw3 IEBACi0gICAgICAgICAgICAgLy8gc2VlbXMgZmFzdGVyIGluIHRoaXMgY2FzZSB3aGlsZSB0aGUg YWJvdmUKLSAgICAgICAgICAgICAvLyBmdW5jdGlvbiBpcyBiZXR0ZXIgdGhlIG90aGVyIHdheSBy b3VuZC4uLgotICAgICAgICAgICAgIGxldCBoaWdoZXN0X2xhdGluMSA9IHUxNng4OjpzcGxhdCgw eEZGKTsKLS0gICAgICAgICAgICAhcy5ndChoaWdoZXN0X2xhdGluMSkuYW55KCkKLSsgICAgICAg ICAgICAhYW55X21hc2sxNng4KHMuc2ltZF9ndChoaWdoZXN0X2xhdGluMSkpCi0gICAgICAgICB9 Ci0gICAgIH0KLSB9Ci1AQCAtMjA5LDcgKzIzNCw3IEBACi0gcHViIGZuIGNvbnRhaW5zX3N1cnJv Z2F0ZXMoczogdTE2eDgpIC0+IGJvb2wgewotICAgICBsZXQgbWFzayA9IHUxNng4OjpzcGxhdCgw eEY4MDApOwotICAgICBsZXQgc3Vycm9nYXRlX2JpdHMgPSB1MTZ4ODo6c3BsYXQoMHhEODAwKTsK LS0gICAgKHMgJiBtYXNrKS5lcShzdXJyb2dhdGVfYml0cykuYW55KCkKLSsgICAgYW55X21hc2sx Nng4KChzICYgbWFzaykuc2ltZF9lcShzdXJyb2dhdGVfYml0cykpCi0gfQotIAotIGNmZ19pZiEg ewotQEAgLTIxNyw3ICsyNDIsOCBAQAotICAgICAgICAgbWFjcm9fcnVsZXMhIGFhcmNoNjRfcmV0 dXJuX2ZhbHNlX2lmX2JlbG93X2hlYnJldyB7Ci0gICAgICAgICAgICAgKCRzOmlkZW50KSA9PiAo ewotICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgaWYgdm1h eHZxX3UxNigkcy5pbnRvX2JpdHMoKSkgPCAweDA1OTAgewotKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQotKyAgICAgICAg ICAgICAgICAgICAgaWYgdm1heHZxX3UxNigkcy5pbnRvKCkpIDwgMHgwNTkwIHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgIH0KLUBAIC0yMzQsNyArMjYwLDcgQEAKLSAKLSAgICAgICAgIG1hY3Jv X3J1bGVzISBub25fYWFyY2g2NF9yZXR1cm5fZmFsc2VfaWZfYWxsIHsKLSAgICAgICAgICAgICAo JHM6aWRlbnQpID0+ICh7Ci0tICAgICAgICAgICAgICAgIGlmICRzLmFsbCgpIHsKLSsgICAgICAg ICAgICAgICAgaWYgYWxsX21hc2sxNng4KCRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1 cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9KQotQEAgLTI0NSw3 ICsyNzEsNyBAQAotIG1hY3JvX3J1bGVzISBpbl9yYW5nZTE2eDggewotICAgICAoJHM6aWRlbnQs ICRzdGFydDpleHByLCAkZW5kOmV4cHIpID0+IHt7Ci0gICAgICAgICAvLyBTSU1EIHN1YiBpcyB3 cmFwcGluZwotLSAgICAgICAgKCRzIC0gdTE2eDg6OnNwbGF0KCRzdGFydCkpLmx0KHUxNng4Ojpz cGxhdCgkZW5kIC0gJHN0YXJ0KSkKLSsgICAgICAgICgkcyAtIHUxNng4OjpzcGxhdCgkc3RhcnQp KS5zaW1kX2x0KHUxNng4OjpzcGxhdCgkZW5kIC0gJHN0YXJ0KSkKLSAgICAgfX07Ci0gfQotIAot QEAgLTI1OSw0MyArMjg1LDQ0IEBACi0gCi0gICAgIGFhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2Jl bG93X2hlYnJldyEocyk7Ci0gCi0tICAgIGxldCBiZWxvd19oZWJyZXcgPSBzLmx0KHUxNng4Ojpz cGxhdCgweDA1OTApKTsKLSsgICAgbGV0IGJlbG93X2hlYnJldyA9IHMuc2ltZF9sdCh1MTZ4ODo6 c3BsYXQoMHgwNTkwKSk7Ci0gCi0gICAgIG5vbl9hYXJjaDY0X3JldHVybl9mYWxzZV9pZl9hbGwh KGJlbG93X2hlYnJldyk7Ci0gCi0tICAgIGlmIChiZWxvd19oZWJyZXcgfCBpbl9yYW5nZTE2eDgh KHMsIDB4MDkwMCwgMHgyMDBGKSB8IGluX3JhbmdlMTZ4OCEocywgMHgyMDY4LCAweEQ4MDIpKS5h bGwoKSB7Ci0rICAgIGlmIGFsbF9tYXNrMTZ4OCgKLSsgICAgICAgIGJlbG93X2hlYnJldyB8IGlu X3JhbmdlMTZ4OCEocywgMHgwOTAwLCAweDIwMEYpIHwgaW5fcmFuZ2UxNng4IShzLCAweDIwNjgs IDB4RDgwMiksCi0rICAgICkgewotICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICB9Ci0gCi0g ICAgIC8vIFF1aWNrIHJlZnV0YXRpb24gZmFpbGVkLiBMZXQncyBkbyB0aGUgZnVsbCBjaGVjay4K LSAKLSsgICAgYW55X21hc2sxNng4KAotICAgICAoaW5fcmFuZ2UxNng4IShzLCAweDA1OTAsIDB4 MDkwMCkKLSAgICAgICAgIHwgaW5fcmFuZ2UxNng4IShzLCAweEZCMUQsIDB4RkUwMCkKLSAgICAg ICAgIHwgaW5fcmFuZ2UxNng4IShzLCAweEZFNzAsIDB4RkVGRikKLSAgICAgICAgIHwgaW5fcmFu Z2UxNng4IShzLCAweEQ4MDIsIDB4RDgwNCkKLSAgICAgICAgIHwgaW5fcmFuZ2UxNng4IShzLCAw eEQ4M0EsIDB4RDgzQykKLS0gICAgICAgIHwgcy5lcSh1MTZ4ODo6c3BsYXQoMHgyMDBGKSkKLS0g ICAgICAgIHwgcy5lcSh1MTZ4ODo6c3BsYXQoMHgyMDJCKSkKLS0gICAgICAgIHwgcy5lcSh1MTZ4 ODo6c3BsYXQoMHgyMDJFKSkKLS0gICAgICAgIHwgcy5lcSh1MTZ4ODo6c3BsYXQoMHgyMDY3KSkp Ci0tICAgIC5hbnkoKQotKyAgICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIw MEYpKQotKyAgICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIwMkIpKQotKyAg ICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIwMkUpKQotKyAgICAgICAgICAg IHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIwNjcpKSksCi0rICAgICkKLSB9Ci0gCi0gI1tp bmxpbmUoYWx3YXlzKV0KLSBwdWIgZm4gc2ltZF91bnBhY2soczogdTh4MTYpIC0+ICh1MTZ4OCwg dTE2eDgpIHsKLS0gICAgdW5zYWZlIHsKLS0gICAgICAgIGxldCBmaXJzdDogdTh4MTYgPSBzaHVm ZmxlISgKLSsgICAgbGV0IGZpcnN0OiB1OHgxNiA9IHNpbWRfc3dpenpsZSEoCi0gICAgICAgICAg ICAgcywKLSAgICAgICAgICAgICB1OHgxNjo6c3BsYXQoMCksCi0gICAgICAgICAgICAgWzAsIDE2 LCAxLCAxNywgMiwgMTgsIDMsIDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyM10KLSAgICAg ICAgICk7Ci0tICAgICAgICBsZXQgc2Vjb25kOiB1OHgxNiA9IHNodWZmbGUhKAotKyAgICBsZXQg c2Vjb25kOiB1OHgxNiA9IHNpbWRfc3dpenpsZSEoCi0gICAgICAgICAgICAgcywKLSAgICAgICAg ICAgICB1OHgxNjo6c3BsYXQoMCksCi0gICAgICAgICAgICAgWzgsIDI0LCA5LCAyNSwgMTAsIDI2 LCAxMSwgMjcsIDEyLCAyOCwgMTMsIDI5LCAxNCwgMzAsIDE1LCAzMV0KLSAgICAgICAgICk7Ci0t ICAgICAgICAoZmlyc3QuaW50b19iaXRzKCksIHNlY29uZC5pbnRvX2JpdHMoKSkKLS0gICAgfQot KyAgICAodTE2eDg6OmZyb21fbmVfYnl0ZXMoZmlyc3QpLCB1MTZ4ODo6ZnJvbV9uZV9ieXRlcyhz ZWNvbmQpKQotIH0KLSAKLSBjZmdfaWYhIHsKLUBAIC0zMDMsMjMgKzMzMCwyMiBAQAotICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBzaW1kX3BhY2soYTogdTE2eDgs IGI6IHUxNng4KSAtPiB1OHgxNiB7Ci0gICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAg ICAgICAgX21tX3BhY2t1c19lcGkxNihhLmludG9fYml0cygpLCBiLmludG9fYml0cygpKS5pbnRv X2JpdHMoKQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBj b3JyZWN0IHBsYXRmb3JtCi0rICAgICAgICAgICAgICAgIF9tbV9wYWNrdXNfZXBpMTYoYS5pbnRv KCksIGIuaW50bygpKS5pbnRvKCkKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0g ZWxzZSB7Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIGZuIHNpbWRf cGFjayhhOiB1MTZ4OCwgYjogdTE2eDgpIC0+IHU4eDE2IHsKLS0gICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICBsZXQgZmlyc3Q6IHU4eDE2ID0gYS5pbnRvX2JpdHMoKTsKLS0g ICAgICAgICAgICAgICAgbGV0IHNlY29uZDogdTh4MTYgPSBiLmludG9fYml0cygpOwotLSAgICAg ICAgICAgICAgICBzaHVmZmxlISgKLSsgICAgICAgICAgICBsZXQgZmlyc3Q6IHU4eDE2ID0gYS50 b19uZV9ieXRlcygpOwotKyAgICAgICAgICAgIGxldCBzZWNvbmQ6IHU4eDE2ID0gYi50b19uZV9i eXRlcygpOwotKyAgICAgICAgICAgIHNpbWRfc3dpenpsZSEoCi0gICAgICAgICAgICAgICAgICAg ICBmaXJzdCwKLSAgICAgICAgICAgICAgICAgICAgIHNlY29uZCwKLSAgICAgICAgICAgICAgICAg ICAgIFswLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAy OCwgMzBdCi0gICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0t ICAgIH0KLSB9Ci0gCi0gI1tjZmcodGVzdCldCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvc2luZ2xlX2J5dGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvc2luZ2xlX2J5dGUucnMJMjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbmdsZV9ieXRlLnJz CTIwMjUtMDktMTcgMTc6NDE6MjEuMTQxODA0ODkyICswMzAwCi1AQCAtNTMsNiArNTMsOSBAQAot ICAgICAgICAgICAgICAgICAgICAgLy8gc3RhdGljYWxseSBvbWl0IHRoZSBib3VuZCBjaGVjayB3 aGVuIGFjY2Vzc2luZwotICAgICAgICAgICAgICAgICAgICAgLy8gYFt1MTY7IDEyOF1gIHdpdGgg YW4gaW5kZXgKLSAgICAgICAgICAgICAgICAgICAgIC8vIGBub25fYXNjaWkgYXMgdXNpemUgLSAw eDgwdXNpemVgLgotKyAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogYG5vbl9hc2NpaWAgaXMgYSB1OCBieXRlID49MHg4MCwgZnJvbSB0aGUgaW52 YXJpYW50cwotKyAgICAgICAgICAgICAgICAgICAgLy8gb24gVXRmOERlc3RpbmF0aW9uOjpjb3B5 X2FzY2lpX2Zyb21fY2hlY2tfc3BhY2VfYm1wKCkKLSAgICAgICAgICAgICAgICAgICAgIGxldCBt YXBwZWQgPQotICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7ICooc2VsZi50YWJsZS5n ZXRfdW5jaGVja2VkKG5vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZSkpIH07Ci0gICAgICAg ICAgICAgICAgICAgICAvLyBsZXQgbWFwcGVkID0gc2VsZi50YWJsZVtub25fYXNjaWkgYXMgdXNp emUgLSAweDgwdXNpemVdOwotQEAgLTE1MSw5ICsxNTQsMTIgQEAKLSAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgKERlY29kZXJSZXN1bHQ6OklucHV0RW1wdHksIHNyYy5sZW4oKSkKLSAg ICAgICAgIH07Ci0rICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiBjb252ZXJ0ZWQgPD0gbGVu Z3RoLiBRdWl0ZSBvZnRlbiB3ZSBoYXZlIGBjb252ZXJ0ZWQgPCBsZW5ndGhgCi0rICAgICAgICAv LyB3aGljaCB3aWxsIGJlIHNlcGFyYXRlbHkgbWFya2VkLgotICAgICAgICAgbGV0IG11dCBjb252 ZXJ0ZWQgPSAwdXNpemU7Ci0gICAgICAgICAnb3V0ZXJtb3N0OiBsb29wIHsKLSAgICAgICAgICAg ICBtYXRjaCB1bnNhZmUgewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbmd0aCBpcyB0 aGUgbWluaW11bSBsZW5ndGgsIGBzcmMvZHN0ICsgeGAgd2lsbCBhbHdheXMgYmUgdmFsaWQgZm9y IHJlYWRzL3dyaXRlcyBvZiBgbGVuIC0geGAKLSAgICAgICAgICAgICAgICAgYXNjaWlfdG9fYmFz aWNfbGF0aW4oCi0gICAgICAgICAgICAgICAgICAgICBzcmMuYXNfcHRyKCkuYWRkKGNvbnZlcnRl ZCksCi0gICAgICAgICAgICAgICAgICAgICBkc3QuYXNfbXV0X3B0cigpLmFkZChjb252ZXJ0ZWQp LAotQEAgLTE2NCw2ICsxNzAsMTIgQEAKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVu ZGluZywgbGVuZ3RoLCBsZW5ndGgpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgIFNvbWUoKG11dCBub25fYXNjaWksIGNvbnN1bWVkKSkgPT4gewotKyAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogYGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwg c2luY2UgdGhpcyBjYW4gb25seSBjb25zdW1lCi0rICAgICAgICAgICAgICAgICAgICAvLyB1cCB0 byBgbGVuZ3RoIC0gY29udmVydGVkYCBieXRlcy4KLSsgICAgICAgICAgICAgICAgICAgIC8vCi0r ICAgICAgICAgICAgICAgICAgICAvLyBGdXJ0aGVybW9yZSwgaW4gdGhpcyBjb250ZXh0LAotKyAg ICAgICAgICAgICAgICAgICAgLy8gd2UgY2FuIGFzc3VtZSBgY29udmVydGVkIDwgbGVuZ3RoYCBz aW5jZSB0aGlzIGJyYW5jaCBpcyBvbmx5IGV2ZXIgaGl0IHdoZW4KLSsgICAgICAgICAgICAgICAg ICAgIC8vIGFzY2lpX3RvX2Jhc2ljX2xhdGluIGZhaWxzIHRvIGNvbnN1bWUgdGhlIGVudGlyZSBz bGljZQotICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICs9IGNvbnN1bWVkOwotICAgICAg ICAgICAgICAgICAgICAgJ21pZGRsZTogbG9vcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg Ly8gYGNvbnZlcnRlZGAgZG9lc24ndCBjb3VudCB0aGUgcmVhZGluZyBvZiBgbm9uX2FzY2lpYCB5 ZXQuCi1AQCAtMTcyLDYgKzE4NCw5IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Rh dGljYWxseSBvbWl0IHRoZSBib3VuZCBjaGVjayB3aGVuIGFjY2Vzc2luZwotICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGBbdTE2OyAxMjhdYCB3aXRoIGFuIGluZGV4Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgLy8gYG5vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZWAuCi0rICAgICAg ICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IFdlIGNhbiByZWx5IG9uIGBub25fYXNjaWlgIGJlaW5nIGJldHdlZW4gYDB4ODBgIGFuZCBgMHhG RmAgZHVlIHRvCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGludmFyaWFudHMgb2Yg YGFzY2lpX3RvX2Jhc2ljX2xhdGluKClgLCBhbmQgb3VyIHRhYmxlIGhhcyBlbm91Z2ggc3BhY2Ug Zm9yIHRoYXQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hcHBlZCA9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7ICooc2VsZi50YWJsZS5nZXRfdW5jaGVja2Vk KG5vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZSkpIH07Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgLy8gbGV0IG1hcHBlZCA9IHNlbGYudGFibGVbbm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4 MHVzaXplXTsKLUBAIC0xODMsOSArMTk4LDEwIEBACi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBib3VuZCBj aGVjayBoYXMgYWxyZWFkeSBiZWVuIHBlcmZvcm1lZAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IEFzIG1lbnRpb25lZCBhYm92ZSwgYGNvbnZlcnRlZCA8IGxlbmd0aGAK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuZ2V0X3VuY2hlY2tlZF9tdXQoY29u dmVydGVkKSkgPSBtYXBwZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwg c2luY2UgYGNvbnZlcnRlZCA8IGxlbmd0aGAgYmVmb3JlIHRoaXMKLSAgICAgICAgICAgICAgICAg ICAgICAgICBjb252ZXJ0ZWQgKz0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZXh0 LCBoYW5kbGUgQVNDSUkgcHVuY3R1YXRpb24gYW5kIG5vbi1BU0NJSSB3aXRob3V0Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgLy8gZ29pbmcgYmFjayB0byBBU0NJSSBhY2NlbGVyYXRpb24uIE5v bi1BU0NJSSBzY3JpcHRzCi1AQCAtMTk4LDcgKzIxNCwxMCBAQAotICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGNvbnZlcnRlZCA9PSBsZW5ndGggewotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBhcmUgYmFj ayB0byBgY29udmVydGVkIDwgbGVuZ3RoYCBiZWNhdXNlIG9mIHRoZSA9PSBhYm92ZQotKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGFuZCBjYW4gcGVyZm9ybSB0aGlzIGNoZWNrLgotICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9IHVuc2FmZSB7ICooc3JjLmdldF91bmNoZWNr ZWQoY29udmVydGVkKSkgfTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGBj b252ZXJ0ZWQgPCBsZW5ndGhgIGlzIHVwaGVsZCBmb3IgdGhpcyBsb29wCi0gICAgICAgICAgICAg ICAgICAgICAgICAgJ2lubmVybW9zdDogbG9vcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGIgPiAxMjcgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uX2Fz Y2lpID0gYjsKLUBAIC0yMDgsMTUgKzIyNywyMCBAQAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBieXRlIHVuY29uZGl0aW9uYWxseSBpbnN0ZWFkIG9mIHRyeWluZyB0byB1bnJlYWQg aXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gbWFrZSBpdCBwYXJ0IG9mIHRo ZSBuZXh0IFNJTUQgc3RyaWRlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUg ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVk IDwgbGVuZ3RoYCBpcyB0cnVlIGZvciB0aGlzIGxvb3AKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICooZHN0LmdldF91bmNoZWNrZWRfbXV0KGNvbnZlcnRlZCkpID0gdTE2Ojpmcm9t KGIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogV2UgYXJlIG5vdyBhdCBgY29udmVydGVkIDw9IGxlbmd0aGAu IFdlIHNob3VsZCAqbm90KiBgY29udGludWVgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHRoZSBsb29wIHdpdGhvdXQgcmV2ZXJpZnlpbmcKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udmVydGVkICs9IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGIg PCA2MCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb3QgcHVu Y3R1YXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbnZlcnRlZCA9 PSBsZW5ndGggewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAo cGVuZGluZywgbGVuZ3RoLCBsZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSdyZSBi YWNrIHRvIGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCBiZWNhdXNlIG9mIHRoZSA9PSBhYm92ZQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IHVuc2FmZSB7ICooc3JjLmdldF91bmNo ZWNrZWQoY29udmVydGVkKSkgfTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogVGhlIGxvb3AgY29udGludWVzIGFzIGBjb252ZXJ0ZWQgPCBsZW5ndGhgCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnaW5uZXJtb3N0OwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFdlJ3ZlIGdvdCBtYXJrdXAgb3IgQVNDSUkgdGV4dAotQEAgLTIzNCw2ICsyNTgsOCBAQAotICAg ICAgICAgbG9vcCB7Ci0gICAgICAgICAgICAgaWYgbGV0IFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0 KSkgPSB2YWxpZGF0ZV9hc2NpaShieXRlcykgewotICAgICAgICAgICAgICAgICB0b3RhbCArPSBv ZmZzZXQ7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgY2FuIHJlbHkgb24gYG5vbl9h c2NpaWAgYmVpbmcgYmV0d2VlbiBgMHg4MGAgYW5kIGAweEZGYCBkdWUgdG8KLSsgICAgICAgICAg ICAgICAgLy8gdGhlIGludmFyaWFudHMgb2YgYGFzY2lpX3RvX2Jhc2ljX2xhdGluKClgLCBhbmQg b3VyIHRhYmxlIGhhcyBlbm91Z2ggc3BhY2UgZm9yIHRoYXQuCi0gICAgICAgICAgICAgICAgIGxl dCBtYXBwZWQgPSB1bnNhZmUgeyAqKHNlbGYudGFibGUuZ2V0X3VuY2hlY2tlZChub25fYXNjaWkg YXMgdXNpemUgLSAweDgwdXNpemUpKSB9OwotICAgICAgICAgICAgICAgICBpZiBtYXBwZWQgIT0g dTE2Ojpmcm9tKG5vbl9hc2NpaSkgewotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFs OwotQEAgLTM4NCw5ICs0MTAsMTIgQEAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg KEVuY29kZXJSZXN1bHQ6OklucHV0RW1wdHksIHNyYy5sZW4oKSkKLSAgICAgICAgIH07Ci0rICAg ICAgICAvLyBTYWZldHkgaW52YXJpYW50OiBjb252ZXJ0ZWQgPD0gbGVuZ3RoLiBRdWl0ZSBvZnRl biB3ZSBoYXZlIGBjb252ZXJ0ZWQgPCBsZW5ndGhgCi0rICAgICAgICAvLyB3aGljaCB3aWxsIGJl IHNlcGFyYXRlbHkgbWFya2VkLgotICAgICAgICAgbGV0IG11dCBjb252ZXJ0ZWQgPSAwdXNpemU7 Ci0gICAgICAgICAnb3V0ZXJtb3N0OiBsb29wIHsKLSAgICAgICAgICAgICBtYXRjaCB1bnNhZmUg ewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbmd0aCBpcyB0aGUgbWluaW11bSBsZW5n dGgsIGBzcmMvZHN0ICsgeGAgd2lsbCBhbHdheXMgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBv ZiBgbGVuIC0geGAKLSAgICAgICAgICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWkoCi0gICAg ICAgICAgICAgICAgICAgICBzcmMuYXNfcHRyKCkuYWRkKGNvbnZlcnRlZCksCi0gICAgICAgICAg ICAgICAgICAgICBkc3QuYXNfbXV0X3B0cigpLmFkZChjb252ZXJ0ZWQpLAotQEAgLTM5NywxNSAr NDI2LDIzIEBACi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwg bGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBTb21lKChtdXQg bm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eSBpbnZhcmlhbnQ6IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCB1cGhlbGQsIHNpbmNlIHRoaXMgY2Fu IG9ubHkgY29uc3VtZQotKyAgICAgICAgICAgICAgICAgICAgLy8gdXAgdG8gYGxlbmd0aCAtIGNv bnZlcnRlZGAgYnl0ZXMuCi0rICAgICAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAg ICAgICAgLy8gRnVydGhlcm1vcmUsIGluIHRoaXMgY29udGV4dCwKLSsgICAgICAgICAgICAgICAg ICAgIC8vIHdlIGNhbiBhc3N1bWUgYGNvbnZlcnRlZCA8IGxlbmd0aGAgc2luY2UgdGhpcyBicmFu Y2ggaXMgb25seSBldmVyIGhpdCB3aGVuCi0rICAgICAgICAgICAgICAgICAgICAvLyBhc2NpaV90 b19iYXNpY19sYXRpbiBmYWlscyB0byBjb25zdW1lIHRoZSBlbnRpcmUgc2xpY2UKLSAgICAgICAg ICAgICAgICAgICAgIGNvbnZlcnRlZCArPSBjb25zdW1lZDsKLSAgICAgICAgICAgICAgICAgICAg ICdtaWRkbGU6IGxvb3AgewotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBjb252ZXJ0ZWRg IGRvZXNuJ3QgY291bnQgdGhlIHJlYWRpbmcgb2YgYG5vbl9hc2NpaWAgeWV0LgotICAgICAgICAg ICAgICAgICAgICAgICAgIG1hdGNoIHNlbGYuZW5jb2RlX3UxNihub25fYXNjaWkpIHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU29tZShieXRlKSA9PiB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNhZmUgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogd2UncmUgYWxsb3dlZCB0aGlzIGFjY2VzcyBzaW5jZSBgY29udmVy dGVkIDwgbGVuZ3RoYAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooZHN0 LmdldF91bmNoZWNrZWRfbXV0KGNvbnZlcnRlZCkpID0gYnl0ZTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZl cnRlZCArPSAxOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGNvbnZlcnRl ZCA8PSBsZW5ndGhgIG5vdwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5vbmUgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgbmVlZCB0byBrbm93IGlmIHdlCi1AQCAtNDIx LDYgKzQ1OCw4IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb252ZXJ0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogY29udmVyZWQgPCBsZW5ndGggZnJvbSBv dXRzaWRlIHRoZSBtYXRjaCwgYW5kIGBjb252ZXJ0ZWQgKyAxICE9IGxlbmd0aGAsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU28gYGNvbnZlcnRlZCArIDEgPCBsZW5n dGhgIGFzIHdlbGwuIFdlJ3JlIGluIGJvdW5kcwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBzZWNvbmQgPQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1MzI6OmZyb20odW5zYWZlIHsgKnNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCAr IDEpIH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlY29uZCAm IDB4RkMwMHUzMiAhPSAweERDMDB1MzIgewotQEAgLTQzMiw2ICs0NzEsMTggQEAKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gVGhlIG5leHQgY29kZSB1bml0IGlzIGEgbG93IHN1cnJvZ2F0ZS4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXN0cmFsOiBjaGFyID0gdW5z YWZlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBXZSBjYW4gcmVseSBvbiBub25fYXNjaWkgYmVpbmcgMHhEODAwLTB4REJGRiBzaW5jZSB0aGUg aGlnaCBiaXRzIGFyZSAweEQ4MDAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVGhlbiwgKG5vbl9hc2NpaSA8PCAxMCAtIDB4RDgwMCA8PCAxMCkgYmVjb21lcyBi ZXR3ZWVuICgwIHRvIDB4M0ZGKSA8PCAxMCwgd2hpY2ggaXMgYmV0d2VlbgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAweDQwMCB0byAweGZmYzAwLiBBZGRpbmcg dGhlIDB4MTAwMDAgZ2l2ZXMgYSByYW5nZSBvZiAweDEwNDAwIHRvIDB4MTBmYzAwLiBTdWJ0cmFj dGluZyB0aGUgMHhEQzAwCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGdpdmVzIDB4MjgwMCB0byAweDEwMjAwMAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHRlcm0gaXMgYmV0d2VlbiAweERDMDAgYW5kIDB4 REZGRiBmcm9tIHRoZSBjaGVjayBhYm92ZS4gVGhpcyBnaXZlcyBhIG1heGltdW0KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9zc2libGUgcmFuZ2Ugb2YgKDB4 MTA0MDAgKyAweERDMDApIHRvICgweDEwMjAwMCArIDB4REZGRikgd2hpY2ggaXMgMHgxRTAwMCB0 byAweDEwZmZmZi4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g VGhpcyBpcyBpbiByYW5nZS4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRnJvbSBh IFVuaWNvZGUgcHJpbmNpcGxlcyBwZXJzcGVjdGl2ZSB0aGlzIGNhbiBhbHNvIGJlIHZlcmlmaWVk IGFzIHdlIGhhdmUgY2hlY2tlZCB0aGF0IGBub25fYXNjaWlgIGlzIGEgaGlnaCBzdXJyb2dhdGUK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKDB4RDgwMC4uPTB4 REJGRiksIGFuZCB0aGF0IGBzZWNvbmRgIGlzIGEgbG93IHN1cnJvZ2F0ZSAoYDB4REMwMC4uPTB4 REZGRmApLCBhbmQgd2UgYXJlIGFwcGx5aW5nIHJldmVyc2Ugb2YgdGhlIFVUQzE2IHRyYW5zZm9y bWF0aW9uCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsZ29y aXRobSA8aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTE2I0NvZGVfcG9pbnRzX2Zy b21fVSswMTAwMDBfdG9fVSsxMEZGRkY+LCBieSBhcHBseWluZyB0aGUgaGlnaCBzdXJyb2dhdGUg LSAweEQ4MDAgdG8gdGhlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGhpZ2ggdGVuIGJpdHMsIGFuZCB0aGUgbG93IHN1cnJvZ2F0ZSAtIDB4RGMwMCB0byB0aGUg bG93IHRlbiBiaXRzLCBhbmQgdGhlbiBhZGRpbmcgMHgxMDAwMAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6OmNvcmU6OmNoYXI6OmZyb21fdTMyX3VuY2hlY2tlZCgK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1MzI6OmZyb20o bm9uX2FzY2lpKSA8PCAxMCkgKyBzZWNvbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtICgoKDB4RDgwMHUzMiA8PCAxMCkgLSAweDFfMDAwMHUzMikg KyAweERDMDB1MzIpLAotQEAgLTQ1Niw2ICs1MDcsNyBAQAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArIDEsIC8vICsxIGBmb3Igbm9uX2FzY2lpYAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFRoaXMgYnJhbmNoIGRpdmVyZ2VzLCBzbyBubyBuZWVkIHRvIHVwaG9sZCBp bnZhcmlhbnRzIG9uIGBjb252ZXJ0ZWRgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8g TmV4dCwgaGFuZGxlIEFTQ0lJIHB1bmN0dWF0aW9uIGFuZCBub24tQVNDSUkgd2l0aG91dAotQEAg LTQ2OSw4ICs1MjEsMTIgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQg PT0gbGVuZ3RoIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5n LCBsZW5ndGgsIGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2UncmUgYmFjayB0byBgY29udmVydGVkIDwgbGVu Z3RoYCBkdWUgdG8gdGhlID09IGFib3ZlIGFuZCBjYW4gcGVyZm9ybQotKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHRoZSB1bmNoZWNrZWQgcmVhZAotICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgdW5pdCA9IHVuc2FmZSB7ICooc3JjLmdldF91bmNoZWNrZWQoY29udmVydGVkKSkg fTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAnaW5uZXJtb3N0OiBsb29wIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGxvb3AgYWx3YXlzIGJlZ2lucyB3 aXRoIGBjb252ZXJ0ZWQgPCBsZW5ndGhgLCBzZWUKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gdGhlIGludmFyaWFudCBvdXRzaWRlIGFuZCB0aGUgY29tbWVudCBvbiB0aGUgY29udGlu dWUgYmVsb3cKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdW5pdCA+IDEyNyB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25fYXNjaWkgPSB1bml0OwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgJ21pZGRsZTsKLUBAIC00NzksMTkg KzUzNSwyNSBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBieXRlIHVuY29uZGl0 aW9uYWxseSBpbnN0ZWFkIG9mIHRyeWluZyB0byB1bnJlYWQgaXQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gdG8gbWFrZSBpdCBwYXJ0IG9mIHRoZSBuZXh0IFNJTUQgc3RyaWRlLgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBDYW4gcmVseSBvbiBjb252ZXJ0ZWQgPCBsZW5ndGgK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooZHN0LmdldF91bmNoZWNrZWRfbXV0 KGNvbnZlcnRlZCkpID0gdW5pdCBhcyB1ODsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0gMTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gYGNvbnZlcnRlZCA8PSBsZW5ndGhgIGhlcmUKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgdW5pdCA8IDYwIHsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBwdW5jdHVhdGlvbgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgY29udmVydGVkID09IGxlbmd0aCB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5nLCBsZW5ndGgsIGxlbmd0aCk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IGBjb252ZXJ0ZWQgPCBsZW5ndGhgIGR1ZSB0byB0aGUg PT0gYWJvdmUuIFRoZSByZWFkIGlzIHNhZmUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bml0ID0gdW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQpKSB9Owot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIG9ubHkgaGFw cGVucyBpZiBgY29udmVydGVkIDwgbGVuZ3RoYCwgbWFpbnRhaW5pbmcgaXQKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlICdpbm5lcm1vc3Q7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUg Z290IG1hcmt1cCBvciBBU0NJSSB0ZXh0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlICdvdXRlcm1vc3Q7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogQWxsIG90aGVyIHJvdXRlcyB0byBoZXJlIGRpdmVyZ2Ugc28gdGhlIGNvbnRpbnVlIGlzIHRo ZSBvbmx5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdheSB0byBydW4gdGhlIGlu bmVybW9zdCBsb29wLgotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3Vz ZXJfZGVmaW5lZC5ycwkyMDI1LTA5LTE3IDE3OjQxOjIxLjE0MTgwNDg5MiArMDMwMAotQEAgLTE0 LDEyICsxNCwxMyBAQAotIGNmZ19pZiEgewotICAgICBpZiAjW2NmZyhmZWF0dXJlID0gInNpbWQt YWNjZWwiKV0gewotICAgICAgICAgdXNlIHNpbWRfZnVuY3M6Oio7Ci0tICAgICAgICB1c2UgcGFj a2VkX3NpbWQ6OnUxNng4OwotKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OnUxNng4OwotKyAgICAg ICAgdXNlIGNvcmU6OnNpbWQ6OmNtcDo6U2ltZFBhcnRpYWxPcmQ7Ci0gCi0gICAgICAgICAjW2lu bGluZShhbHdheXMpXQotICAgICAgICAgZm4gc2hpZnRfdXBwZXIodW5wYWNrZWQ6IHUxNng4KSAt PiB1MTZ4OCB7Ci0gICAgICAgICAgICAgbGV0IGhpZ2hlc3RfYXNjaWkgPSB1MTZ4ODo6c3BsYXQo MHg3Rik7Ci0tICAgICAgICAgICAgdW5wYWNrZWQgKyB1bnBhY2tlZC5ndChoaWdoZXN0X2FzY2lp KS5zZWxlY3QodTE2eDg6OnNwbGF0KDB4RjcwMCksIHUxNng4OjpzcGxhdCgwKSkgICAgICAgIH0K LSsgICAgICAgICAgICB1bnBhY2tlZCArIHVucGFja2VkLnNpbWRfZ3QoaGlnaGVzdF9hc2NpaSku c2VsZWN0KHUxNng4OjpzcGxhdCgweEY3MDApLCB1MTZ4ODo6c3BsYXQoMCkpICAgICAgICB9Ci0g ICAgIH0gZWxzZSB7Ci0gICAgIH0KLSB9Ci1AQCAtMTE2LDEwICsxMTcsMTUgQEAKLSAgICAgICAg IGxldCBzaW1kX2l0ZXJhdGlvbnMgPSBsZW5ndGggPj4gNDsKLSAgICAgICAgIGxldCBzcmNfcHRy ID0gc3JjLmFzX3B0cigpOwotICAgICAgICAgbGV0IGRzdF9wdHIgPSBkc3QuYXNfbXV0X3B0cigp OwotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBmb3IgaSBpbiAwLi5sZW5ndGggLyAxNmAK LSAgICAgICAgIGZvciBpIGluIDAuLnNpbWRfaXRlcmF0aW9ucyB7Ci0rICAgICAgICAgICAgLy8g U2FmZXR5OiBUaGlzIGlzIGluIGJvdW5kczogbGVuZ3RoIGlzIHRoZSBtaW51bXVtIHZhbGlkIGxl bmd0aCBmb3IgYm90aCBzcmMvZHN0Ci0rICAgICAgICAgICAgLy8gYW5kIGkgcmFuZ2VzIHRvIGxl bmd0aC8xNiwgc28gbXVsdGlwbHlpbmcgYnkgMTYgd2lsbCBhbHdheXMgYmUgYDwgbGVuZ3RoYCBh bmQgY2FuIGRvCi0rICAgICAgICAgICAgLy8gYSAxNiBieXRlIHJlYWQKLSAgICAgICAgICAgICBs ZXQgaW5wdXQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNyY19wdHIuYWRkKGkgKiAxNikp IH07Ci0gICAgICAgICAgICAgbGV0IChmaXJzdCwgc2Vjb25kKSA9IHNpbWRfdW5wYWNrKGlucHV0 KTsKLSAgICAgICAgICAgICB1bnNhZmUgewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNh bWUgYXMgYWJvdmUsIGJ1dCB0aGlzIGlzIHR3byBjb25zZWN1dGl2ZSA4LWJ5dGUgcmVhZHMKLSAg ICAgICAgICAgICAgICAgc3RvcmU4X3VuYWxpZ25lZChkc3RfcHRyLmFkZChpICogMTYpLCBzaGlm dF91cHBlcihmaXJzdCkpOwotICAgICAgICAgICAgICAgICBzdG9yZThfdW5hbGlnbmVkKGRzdF9w dHIuYWRkKChpICogMTYpICsgOCksIHNoaWZ0X3VwcGVyKHNlY29uZCkpOwotICAgICAgICAgICAg IH0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5hcHB2ZXlvci55 bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5hcHB2ZXlvci55bWwKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmFwcHZleW9yLnltbAkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8u YXBwdmV5b3IueW1sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1 OSArMCwwIEBACi0tbWF0cml4OgotLSAgYWxsb3dfZmFpbHVyZXM6Ci0tICAgICMgRklYTUU6IGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNzIK LS0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93cy1tc3ZjCi0tICAgIC0gVEFSR0VUOiBpNjg2 LXBjLXdpbmRvd3MtZ251Ci0tICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1nbnUKLS0g IGZhc3RfZmluaXNoOiB0cnVlCi0tCi0tZW52aXJvbm1lbnQ6Ci0tICBtYXRyaXg6Ci0tICAgIC0g VEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1tc3ZjCi0tICAgICAgTVNZU1RFTTogTUlOR1c2NAot LSAgICAgIE5PVkVSSUZZOiAiMSIKLS0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLW1z dmMKLS0gICAgICBNU1lTVEVNOiBNSU5HVzY0Ci0tICAgICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0 LWZlYXR1cmU9K3NzZTQuMiIKLS0gICAgICBOT1ZFUklGWTogIjEiCi0tICAgIC0gVEFSR0VUOiB4 ODZfNjQtcGMtd2luZG93cy1tc3ZjCi0tICAgICAgTVNZU1RFTTogTUlOR1c2NAotLSAgICAgIFJV U1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSthdngiCi0tICAgICAgTk9WRVJJRlk6ICIxIgot LSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtbXN2YwotLSAgICAgIE1TWVNURU06IE1J TkdXNjQKLS0gICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4MiIKLS0gICAg ICBOT1ZFUklGWTogIjEiCi0tCi0tICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2Ywot LSAgICAgIE1TWVNURU06IE1JTkdXMzIKLS0gICAgICBOT1ZFUklGWTogIjEiCi0tICAgIC0gVEFS R0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YwotLSAgICAgIE1TWVNURU06IE1JTkdXMzIKLS0gICAg ICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVyZT0rc3NlNC4yIgotLSAgICAgIE5PVkVSSUZZ OiAiMSIKLS0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93cy1tc3ZjCi0tICAgICAgTVNZU1RF TTogTUlOR1czMgotLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSthdngiCi0t ICAgICAgTk9WRVJJRlk6ICIxIgotLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMK LS0gICAgICBNU1lTVEVNOiBNSU5HVzMyCi0tICAgICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZl YXR1cmU9K2F2eDIiCi0tICAgICAgTk9WRVJJRlk6ICIxIgotLQotLSAgICAtIFRBUkdFVDogeDg2 XzY0LXBjLXdpbmRvd3MtZ251Ci0tICAgICAgTVNZU1RFTTogTUlOR1c2NAotLQotLSAgICAtIFRB UkdFVDogaTY4Ni1wYy13aW5kb3dzLWdudQotLSAgICAgIE1TWVNURU06IE1JTkdXMzIKLS0gICAg LSBUQVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLWdudQotLSAgICAgIE1TWVNURU06IE1JTkdXNjQK LS1pbnN0YWxsOgotLSAgLSBwczogaWYgKGxzIC1yIC4gLWZpICIqLnJzIiB8IHNscyAiYHQiKSB7 IHRocm93ICJGb3VuZCB0YWIgY2hhcmFjdGVyIiB9Ci0tICAtIHBzOiBTdGFydC1GaWxlRG93bmxv YWQgImh0dHBzOi8vc3RhdGljLnJ1c3QtbGFuZy5vcmcvZGlzdC9ydXN0LW5pZ2h0bHktJHtlbnY6 VEFSR0VUfS5leGUiIC1GaWxlTmFtZSAicnVzdC1pbnN0YWxsLmV4ZSIKLS0gIC0gcHM6IC5ccnVz dC1pbnN0YWxsLmV4ZSAvVkVSWVNJTEVOVCAvTk9SRVNUQVJUIC9ESVI9IkM6XHJ1c3QiIHwgT3V0 LU51bGwKLS0gIC0gcHM6ICRlbnY6UEFUSD0iJGVudjpQQVRIO0M6XHJ1c3RcYmluIgotLSAgLSBz ZXQgUEFUSD1jOlxtc3lzNjRcJU1TWVNURU0lXGJpbjtjOlxtc3lzNjRcdXNyXGJpbjslUEFUSCUK LS0gIC0gcnVzdGMgLXZWCi0tICAtIGNhcmdvIC12VgotLWJ1aWxkOiBmYWxzZQotLXRlc3Rfc2Ny aXB0OiBiYXNoIC1jICJjaS9ydW4uc2giCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC8uY2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvLmNhcmdvLWNoZWNrc3VtLmpzb24KLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvLmNhcmdvLWNoZWNrc3VtLmpzb24JMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmNhcmdvLWNoZWNrc3Vt Lmpzb24JMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xICswLDAgQEAK LS17ImZpbGVzIjp7Ii5hcHB2ZXlvci55bWwiOiJmMWVkMDE4NTBlMGQ3MjVmOTQ5OGY1MmExYTYz ZGRmNDA3MDJhZDZlMGJmNWIyZDdjNGMwNGQ3NmU5Njc5NGEzIiwiLmdpdGh1Yi93b3JrZmxvd3Mv YmVuY2htYXJrcy55bWwiOiJkMDQ5ZjAxNmRjNTM4MzBhM2ZjYzczNTgzM2VjYTE2OGRmMmU0OTFm MzNiNmI0NGNlN2U0ZDVkMWRkNDUzODU0IiwiLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1sIjoiMTcw YTIwNzRhZGQ1N2RkYzhmODhiNzgwMTQ5ZTQ5MzAxNjJjNmVlNDcxOGFkZDQzNjlkY2E4ZTNmZDZj MDIyYSIsIi5naXRodWIvd29ya2Zsb3dzL2RvY3MueW1sIjoiODZmN2ViNjUyYzkwMDYyNGU0ZGVi NzYzMjBjZDkyMTc1ZGIxZmE3Mjk1YTc2ZjI4ZjMwMzM2ZmYwZmFkMTYwNCIsIi5naXRodWIvd29y a2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sIjoiZDg0N2JlMjkzZjllYzE3MDM4ZTQ1MDY1MmIxZWI3 YmRjMjBiODA1YzE4YzVkYmFiMzRkMWQ5ZmY3YTljODk0MCIsIi50cmF2aXMueW1sIjoiMzBhNjFh NWVjNTMzNTVmYzFmMzU4NWUxNjkwMjgwMzA4YzJiNzk2MTcwMWFiYzExZTgzODliMjM1YjY0NzE3 OCIsIkNhcmdvLnRvbWwiOiIwMjE1MWM0MTVmMjY3YTZhZWI4NjUxMTU4NDcyNzQ0ZDcxZTFkOWRh ODg4M2RkMjBiZTI1NzMxYTQyZTUyMGY0IiwiTElDRU5TRS1BUEFDSEUiOiJhNjBlZWE4MTc1MTQ1 MzE2NjhkN2UwMDc2NTczMTQ0OWZlMTRkMDU5ZDMyNDllMGJjOTNiMzZkZTQ1Zjc1OWYyIiwiTElD RU5TRS1NSVQiOiI2NDg1YjhlZDMxMGQzZjAzNDBiZjFhZDFmNDc2NDUwNjljZTQwNjlkY2M2YmI0 NmM3ZDVjNmZhZjQxZGUxZmRiIiwiUkVBRE1FLm1kIjoiYzRhYzcwMjdhOWFiN2Q3ODU4YWE4OTU3 ZDc0NTRkYmZjZGJiODFlNjA1YjZhMTcxZjA1MzEwY2MzY2FkMzc2MiIsImJvcnMudG9tbCI6ImRl ZTg4MWRjNjliOWI3ODM0ZTRlYmE1ZDk1YzNlZDVhNDE2ZDQ2Mjg4MTVhMTY3ZDZhMjJkNGNiNGZi MDY0YjgiLCJidWlsZC5ycyI6IjAxOWVkMjljNDM5ODk3ODJkOGVlYzNhOTYxNjU0Y2ZjMTcyZDdh Nzg5OGRhNGVjYThmNjU0NzAwYWY3ZTE5ODgiLCJjaS9hbGwuc2giOiIyYWU2YjI0NDViNGRiODM4 MzNlNDBiMzdlZmQwMDE2YzZiOTg3OWVlOTg4YjliM2VmOTRkYjU0MzlhM2UxNjA2IiwiY2kvYW5k cm9pZC1pbnN0YWxsLW5kay5zaCI6ImJkY2Y5M2JhOTA0M2FjMTE4NGUyYzUwNGEzZDQwYzQ3YzZj MTYwMWQ4ODJlMGYwYTI3YThlYjU2ZmJhYmNiNWYiLCJjaS9hbmRyb2lkLWluc3RhbGwtc2RrLnNo IjoiMzQ5MDQzMjAyMmM1YzhmNWExMTVjMDg0ZjdhOWFjYTE2MjZmOTZjMGM4N2ZmYjYyMDE5MjI4 YzQzNDZiNDdlNCIsImNpL2FuZHJvaWQtc3lzaW1hZ2Uuc2giOiJlYmY0ZTVkYWExZjBmZTFiMjA5 MmI3OWYwZjNmMTYxYzRjNDI3NWNiNzQ0ZTUyMzUyYzRkODFhYjQ1MWU0YzVhIiwiY2kvYmVuY2ht YXJrLnNoIjoiYjYxZDE5ZWY2YjkwZGViYThmYjc5ZGVlNzRjOGIwNjJkOTQ4NDQ2NzYyOTNkYTM0 NmRhODdiYjc4YTlhNDlhNCIsImNpL2RlcGxveV9hbmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMi OiJlYzhlY2Y4MmQ5MjA3MjY3NmFhNDdmMGQxYTNkMDIxYjYwYTdhZTM1MzExNTNlZjEyZDJmZjQ1 NDFmYzI5NGRjIiwiY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlIjoi YWNlMmU3ZDMzYzg3YmMwZjZkMzk2MmE0YTM0MDhjMDQ1NTc2NDZmN2Y1MWFiOTljZmJmNTc0OTA2 Nzk2YjAxNiIsImNpL2RvY2tlci9hYXJjaDY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUi OiJkYTg4YzBkNTBmMTZkYzA4NDQ4YzdmZGYxZmE1ZWQyY2JlNTc2YWNmOWU3ZGQ4NWI1YjgxODYy MWIyYThjNzAyIiwiY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9ja2VyZmls ZSI6ImJiNWY4YWU4OTA3MDdjMTI4NjUyMjkwZmZjNTQ0NDQ3NjQzYmYxMjAzN2RkZDczYzZhZDY5 ODlmODQ4Y2IzODAiLCJjaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tl cmZpbGUiOiIxYWZhZWZjYmMwNWI3NDA4NTlhY2Q0ZTA2N2JjOTI0MzliZTZiY2JlOGYyZTk2Nzg0 NzRmYjQzNGJjZDM5OGQ5IiwiY2kvZG9ja2VyL2FybXY3LWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tl cmZpbGUiOiIzNzBlNTVkMzMzMGE0MTNhM2NjZjY3N2IzYWZiM2UwZWY5MDE4YTVmYWIyNjNmYWE5 N2FlOGFjMDE3ZmMyMjg2IiwiY2kvZG9ja2VyL2FybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhm L0RvY2tlcmZpbGUiOiI4MjgyZWE3MDdhOTQxMDliZWVkNDdhNTc1NzQ3NTVlMmQ1ODQwMTczNTkw NGEwM2Y4NWZiNjRjNTc4YzUzYjRmIiwiY2kvZG9ja2VyL2k1ODYtdW5rbm93bi1saW51eC1nbnUv RG9ja2VyZmlsZSI6IjQ5NzkyOTIyMjY5ZjM3MWJkMjlkYTQ3MjdlOTA4NTEwMWIyN2JlNjdhNmI5 Nzc1NWQwMTk2YzYzMzE3ZjdhYmIiLCJjaS9kb2NrZXIvaTY4Ni11bmtub3duLWxpbnV4LWdudS9E b2NrZXJmaWxlIjoiNDk3OTI5MjIyNjlmMzcxYmQyOWRhNDcyN2U5MDg1MTAxYjI3YmU2N2E2Yjk3 NzU1ZDAxOTZjNjMzMTdmN2FiYiIsImNpL2RvY2tlci9taXBzLXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUiOiJiMmViYzI1Nzk3NjEyYzRmODM5NWZlOWQ0MDc3MjUxNTYwNDQ5NTViZmJjZjQ0 MjAzNmI3ZjU1YjQzYTVmOWRhIiwiY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFi aTY0L0RvY2tlcmZpbGUiOiJiMGMxNjkyYWM2NWJjNTZkZDMwNDk0YjE5OTNkOGU5MjljNDhjYzlj NGI5MjAyOWI3Yzc1OTJhZjZkNGY5MjIwIiwiY2kvZG9ja2VyL21pcHM2NGVsLXVua25vd24tbGlu dXgtZ251YWJpNjQvRG9ja2VyZmlsZSI6IjRlOTI0OWMxNzkzMDAxMzgxNDFkMGIyYjc0MDFiMTE4 OTdmNjRhZWQ2OWY1NDFmMDc4YzFkYjQ1OTRkZjI4MjciLCJjaS9kb2NrZXIvbWlwc2VsLXVua25v d24tbGludXgtbXVzbC9Eb2NrZXJmaWxlIjoiMzE2NGM1MmIwZGNiYjAxYWZhNzgyOTJiMTViNWM0 MzUwM2NjZjA0OTFjZjZlYjgwMWVjMmJmMjJhZTI3NGU1MiIsImNpL2RvY2tlci9wb3dlcnBjLXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiJhZTgyNzQzMDk5Mjg2MjBhNWRkMjMyYTQ2MjY0 ZTA1Mzk5YmI3NDYyODhlYmVlMzg0M2E3MWM0MTYyMjA4Y2MzIiwiY2kvZG9ja2VyL3Bvd2VycGM2 NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiYmE1ZmJjNGJmM2JiOTFjZDUwYjQwNzI0 OGRhMzEyMjU2ODFlZmM4ZjJiZTc2MThmNGEwYWIxMjE5YjM4OTUwOCIsImNpL2RvY2tlci9wb3dl cnBjNjRsZS11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiNTNmOTdmOGI5YjVhY2E3NTM0 YjliZjllYTQ4ZjM1MTc1MDUyY2QyYTU2MGExMDdlMDFhZDI3MDczMWMwMzJmYyIsImNpL2RvY2tl ci9zMzkweC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiODlmNTQyMWNmMDZkODE3YWU5 NDA5Mjk4N2U5MTQ0NzJlZjM4NGFkMmQxZmZmMjczNWJlM2Q4Nzg2YmExMTIxNCIsImNpL2RvY2tl ci9zcGFyYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiI4M2ViYTE5NTc2NDg2Zjlk MTBkN2MwMzdkNjY5ZDcyYjMxYTY1NTY1YTQ3OWYzMGIyMmFhYjM2YWFhMmZmOGRjIiwiY2kvZG9j a2VyL3RodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUiOiJjMmRlY2Q1NTkx YmQ3YTA5Mzc4OTAxYmVmNjI5Y2Q5NDRhY2YwNTJlYjU1ZTRmMzViNzllYjljYjRkNjIyNDZhIiwi Y2kvZG9ja2VyL3RodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUi OiI1MTk1NWE4YmYzYzRkNDQwZjQ3MzgyYWY2ZjU0MjZlYmZmOTRhYjAxYTA0ZGEzNjE3NWJhYmRh OWEwNTc3NDBmIiwiY2kvZG9ja2VyL3dhc20zMi11bmtub3duLXVua25vd24vRG9ja2VyZmlsZSI6 ImI5ODJiNDIxYzcwZGI0NzY5MDBkZjViNjBlMTllZjg4MTVlNmM3ZGFlMjI2ODcyMjUwMDI3ODBj YWI3YjBhNzYiLCJjaS9kb2NrZXIveDg2XzY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSI6ImEx N2ViZGIxODZjZTJkZDZiNjIxMDBiNWE0MzllMDVhMWFiOWFkYWIxMTNlMjUwODg0M2UxMjFhYWVh NTI5OTIiLCJjaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251LWVtdWxhdGVkL0RvY2tl cmZpbGUiOiI0NGI2MjAzZDkyOTBiZmRjNTNkODEyMTlmMDkzN2UxMTEwODQ3YTIzZGQ5ODJlYzhj NGRlMzg4MzU0ZjAxNTM2IiwiY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlIjoiN2Y0ZTNjYTVmYTI4OGVhNzBlZGI0ZDFmNzUzMDk3MDhjZDMwYjE5MmUyZTQ0NDRl NjFjNGQ1YjNiNThmODljZiIsImNpL2RveC5zaCI6IjQzNGU5NjExYzUyZTM4OTMxMmQyYjAzNTY0 YWRmMDk0MjlmMTBjYzc2ZmU2NmE4NjQ0YWRiMTA0OTAzYjg3YjciLCJjaS9saW51eC1zMzkweC5z aCI6ImQ2YjczMmQ3Nzk1YjRiYTEzMTMyNmFmZjg5M2JjYTYyMjhhN2QyZWIwZTk0MDJmMTM1NzA1 NDEzZGJiZTBkY2UiLCJjaS9saW51eC1zcGFyYzY0LnNoIjoiYzkyOTY2ODM4YjFhYjdhZDNiN2Ez NDQ4MzNlZTcyNmFiYTZiNjQ3Y2Y1OTUyZTU2ZjBhZDFiYTQyMGIxMzMyNSIsImNpL2xsZC1zaGlt LnJzIjoiM2Q3ZjcxZWMyM2E0OWUyYjY3ZjY5NGEwMTY4Nzg2ZjlhOTU0ZGRhMTVmNWExMzg4MTVk OTY2NjQzZmQzZmNjMyIsImNpL21heF9saW5lX3dpZHRoLnNoIjoiMGExNTE4YmJhNGM5ZWNhYTU1 Njk0Y2IyZTk5MzBkMGUxOWMyNjViYWFiZjczMTQzZjE3ZjljZjI4NWFhYTViYiIsImNpL3J1bi1k b2NrZXIuc2giOiI5MmUwMzYzOTBhZDliMGQxNmYxMDk1NzlkZjFiNWNlZDJlNzJlOWFmZWE0MGM3 ZDAxMTQwMGViZDNhMmE5MGRlIiwiY2kvcnVuLnNoIjoiOWFmYWJjOTYxZTBlZTgzYjg3MjAxZjNm ZDU1NGMxOWU1YjBjMzZmM2E5NWQwMTM1OTVlMjc2Yzk4ODJkZDBhNCIsImNpL3J1bl9leGFtcGxl cy5zaCI6ImQxYTIzYzZjMzUzNzRhMDY3OGJhNTExNGI5YjhmZWZkOGJlMGE3OWU3NzQ4NzJhOGJm MDg5OGQxYmFjYTE4ZDAiLCJjaS9ydW50ZXN0LWFuZHJvaWQucnMiOiIxNDVhOGU5Nzk5YTUyMjM5 NzUwNjFmZTdlNTg2YWRlNTY2OWVlNDg3N2E3ZDdhNGNmNmI0YWI0OGU4ZTM2YzdjIiwiY2kvc2V0 dXBfYmVuY2htYXJrcy5zaCI6ImZhZTM5NjAwMjNmNmYzZDEzODhjZDJhZDIyZmRiYWI0YjA3NWYx ZjI5ZGQ0MjkyZDc5OTRhMjA3ODNiZWI2Y2YiLCJjaS90ZXN0LXJ1bm5lci1saW51eCI6ImM4YWE2 MDI1Y2ZmNTMwNmY0ZjMxZDBjNjFkYzVmOWQ0ZGQ1YTFkMTg5YWI2MTNlZjhkNGMzNjdjNjk0ZDlj Y2QiLCJjb250cmlidXRpbmcubWQiOiIyZDI2MjkzMTBhZDRkNDY0YzQ4MmJkYmI1ODE5ZjBkNmNl MjIzYzU3NmFlZWYyY2RjZTZhMWY2ODU3MDg1ZWE1IiwicGVyZi1ndWlkZS8uZ2l0aWdub3JlIjoi ZmU4MmM3ZGE1NTEwNzlkODMyY2Y3NDIwMGIwYjM1OWI0ZGY5ODI4Y2I0YTA0MTZmYTczODRmMDdh MmFlNmExMyIsInBlcmYtZ3VpZGUvYm9vay50b21sIjoiMTE1YTk4Mjg0MTI2YzZiMTgwMTc4YjQ0 NzEzMzE0Y2M0OTRmMDhhNzE2NjJlZTJjZTE1Y2Y2N2YxN2E1MTA2NCIsInBlcmYtZ3VpZGUvc3Jj L1NVTU1BUlkubWQiOiIzZTAzYmZmYzk5MWZkYzIwNTBmM2Q1MTg0MmQ3MmQ5ZDIxZWE2YWJhYjU2 YTNiYWYzYjJkNTk3M2E3OGI4OWUxIiwicGVyZi1ndWlkZS9zcmMvYXNjaWkuY3NzIjoiMjlhZmIw ODgzM2IyZmUyMjUwZjA0MTJlMWZhMTE2MWEyNDMyYTA4MjBhMTQ5NTNjODcxMjQ0MDc0MTdjNzQx YSIsInBlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZCI6IjVlNDk5MWZmNThhMTgzZWYwY2Q5 ZmRjMWZlYjRjZDEyZDA4M2I0NGJkZjg3MzkzYmJiMDkyNzgwOGVmM2NlN2QiLCJwZXJmLWd1aWRl L3NyYy9mbG9hdC1tYXRoL2FwcHJveC5tZCI6IjhjMDkwMzJmYTJkNzk1YTBjNWRiMTc3NTgyNmM4 NTBkMjhlYjI2Mjc4NDZkMDk2NWM2MGVlNzJkZTYzNzM1YWQiLCJwZXJmLWd1aWRlL3NyYy9mbG9h dC1tYXRoL2ZtYS5tZCI6IjMxMTA3NmJhNGI3NDFkNjA0YTgyZTc0YjgzYThkN2U4YzMxOGZjYmQ3 ZjY0YzQzOTJkMWNmNWFmOTVjNjAyNDMiLCJwZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZwLm1k IjoiMDQxNTNlNzc1YWI2ZTRmMGQ3ODM3YmNjNTE1MjMwZDMyN2IwNGVkZmEzNGM4NGNlOWM5ZTEw ZWJhZWVmMmJlOCIsInBlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvc3ZtbC5tZCI6IjA3OTg4NzNi OGVlZGFlZGE1ZmVkNjJkYzkxNjQ1YjU3YzIwNzc1YTAyZDNjZDc0ZDhiZDA2OTU4ZjE1MTY1MDYi LCJwZXJmLWd1aWRlL3NyYy9pbnRyb2R1Y3Rpb24ubWQiOiI5ZjVhMTllOWU2NzUxZjI1ZDJkYWFk Mzk4OTFhMGNjNjAwOTc0NTI3ZWM0YzgzMDU4NDNmOTYxODkxMDY3MWJkIiwicGVyZi1ndWlkZS9z cmMvcHJvZi9saW51eC5tZCI6IjQ0NzczMWViNWRlN2Q2OTE2NjcyOGZkYmM1ZWNiMGMwYzlkYjY3 OGVhNDkzYjQ1YTU5MmQ2N2RkMDAyMTg0YzAiLCJwZXJmLWd1aWRlL3NyYy9wcm9mL21jYS5tZCI6 ImY1NmQ1NGYzZDIwZTdhYTRkMzIwNTIxODZlODIzN2IwM2Q2NTk3MWViNWQxMTI4MDJiNDQyNTcw ZmYxMWQzNDQiLCJwZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZCI6IjhhNjUwYzBmZDZl ZGUwOTY0Nzg5YmI2NTc3NTU3ZWVlZjFkODIyNmE4OTY3ODg2MDJjZTYxNTI4ZTI2MGU0M2MiLCJw ZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUubWQiOiI2MTVmODhkY2EwYTcw N2I2YzQxNmZhNjA1NDM1ZGQ2ZTFmYjUzNjFjYzYzOTQyOWNiZjY4Y2Q4NzYyNGJkNzhiIiwicGVy Zi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvZmVhdHVyZXMubWQiOiIxNzA3Nzc2MGZmMjRjMDA2 YjYwNmRkMjE4ODljNTNkODcyMjhmNDMxMWYzYmEzYTU3NGY5YWZkZWFjZDg2MTY1IiwicGVyZi1n dWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcubWQiOiI3ZWQxZDcwNjhkODE3M2EwMGQ4 NGMxNmNmZTU4NzFjZDY4YjlmMDRmOGQwY2NhMmQwMWViYzg0OTU3ZWJmMmY2IiwicGVyZi1ndWlk ZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcHJhY3RpY2UubWQiOiJjNGIzNzE4NDJlMDA4NmRmMTc4NDg4 ZmVjOTdmMjBkZWY4ZjBjNjJlZTU4OGJjZDI1ZmQ5NDhiOWIxZmEyMjdlIiwicGVyZi1ndWlkZS9z cmMvdGFyZ2V0LWZlYXR1cmUvcnVudGltZS5tZCI6IjgzNTQyNWY1ZWU1OTdmYjNlNTFkMzZlNzI1 YTgxZWJlZTI5ZjQ1NjEyMzFkMTk1NjNjZDRkYTgxZGJiMWNmY2IiLCJwZXJmLWd1aWRlL3NyYy90 YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQiOiIwMTE5N2FjZjZmMGFkZWM4ZGIzMmI4NTkxODEx ZjY5Y2VjYjY1NTVhMmIwNWRjNWQ1ZWMyN2QwZTNmN2IwNjVlIiwicGVyZi1ndWlkZS9zcmMvdmVy dC1ob3Itb3BzLm1kIjoiYzYyMTFjMGVlOTFlNjA1NTJlYzU5MmQ4OWQ5ZDk1N2VlZGMyMWRlZTNj YmQ4OWUxYWQ2NzY1ZWEwNmEyNzQ3MSIsInJ1c3RmbXQudG9tbCI6ImQ5OWE0M2YzZjhlZjllNDI1 Y2YwMWMzMzNmYmE5ZjAwNTFmODg4ZjVkODdhYjRlOGY2M2MyZjdkMGZlNjYyMGYiLCJzcmMvYXBp LnJzIjoiYmIxNzk1ZTk2NTdhODI5OGQzN2QyMzQ5YjQ1NDQzZjA4ZTllNDU1Mzk5YWQ0YjcyNzAx ODYwMDcyODQ3OGMxMCIsInNyYy9hcGkvYml0X21hbmlwLnJzIjoiMjdmMzA5N2ZjMGExMWUzYzQx MDcwNDlkOTc3OWU2ODBkY2Q2NzQwN2EwNjY3MDQwMDhhNmI5YzRmZDUyOWUwNSIsInNyYy9hcGkv Yml0bWFzay5ycyI6IjA1OGViYzM4YTJlMDM2M2YwN2E0NDFkM2U5YTQ3NzVhYWVjNTdjY2IxNzBh MGU1ZDVlZmE1ZGM0NzQzYWIwN2IiLCJzcmMvYXBpL2Nhc3QucnMiOiIwM2I5NGEzZDMxNmFjN2I3 YmU3MDY4ODEwMDQ0OTExZTk2NWU4ODlhMGFjZTdiYWU3NjI3NDljYTc0YTkyNzQ3Iiwic3JjL2Fw aS9jYXN0L21hY3Jvcy5ycyI6ImIwYTE0ZDBjODNhZDJlYmI3YTI3NTE4MGY2ZDllM2YyYmMzMTJi YTU3YTdkM2Q2YzM5ZmFkNGUwZjIwZjk0MDgiLCJzcmMvYXBpL2Nhc3QvdjEyOC5ycyI6ImVkZDA5 OTRlZmFjNDM3OWRmZjI2ZTE3ODQyM2E1MmRiYjNmZmViMzhiMWZjOTdjYWU5NzVkNzQ0YzAwYjRm YjYiLCJzcmMvYXBpL2Nhc3QvdjE2LnJzIjoiOTZiZDk4YzJkMjFiMDY2M2FiZTZjMGFiMzMwMDVi MWZhNjkzZjNkYjdlZTY3OTUzNTEzOTEzNDM4NjM0ODRkYSIsInNyYy9hcGkvY2FzdC92MjU2LnJz IjoiOGMzMWZlOTFmNWU3OGVmNzM3ZGZiYTY5NzljYzEyNDAyMTBjYjA5NGE4OWQyODRmZTQ1OWJm OGE5OTFjYTI0YiIsInNyYy9hcGkvY2FzdC92MzIucnMiOiJhOTlhNzlkZDg0ZDJhNWU2YWRmOWRi OTg3MDU2NzU5MTViZDAzZmQxMjg3ZDQ4OWM3ZmUzOGU4NGQ3ZTRhMDg2Iiwic3JjL2FwaS9jYXN0 L3Y1MTIucnMiOiJjMGRkNTI2ZjQxZWQ3YjhhNzFjMzc0M2Q5MTI2NzU1NGVjMGEwYzc1ODM0Y2Nj MmUzZWNiMGVmMzAwNGFmNjQyIiwic3JjL2FwaS9jYXN0L3Y2NC5ycyI6IjY1NzJmZGJhMmExMjQx YTZjZDY2NmQzZjBjY2UzMzA2Y2QyY2I3ZTVlMjM2MTcyZTU5ZDVkNDM1MWM4YTg4YWYiLCJzcmMv YXBpL2NtcC5ycyI6IjM1N2MzYTJhMDljNmQ0NjExYzMyZGQ3ZmE5NWJlMmZhZTkzM2Q1MTNlMjI5 MDI2ZWM5YjQ0NDUxYTc3Yjg4NGUiLCJzcmMvYXBpL2NtcC9lcS5ycyI6IjYwZjcwZjM1NWJhZTRj YjViMTdkYjUzMjA0Y2FjYzM4OTBmNzA2NzA2MTFjMTdkZjYzOGQ0YzA0ZjdjYzgwNzUiLCJzcmMv YXBpL2NtcC9vcmQucnMiOiI1ODlmNzIzNDc2MWMyOTRmYTVkZjhmNTI1YmM0YWNkNWE0N2NkYjYw MjIwN2Q1MjRhMGQ0ZTE5ODA0Y2Q5Njk1Iiwic3JjL2FwaS9jbXAvcGFydGlhbF9lcS5ycyI6Ijkw MmNjYjhhYTAxZmQ1NzM4YjMwYmEwYjcxMjY2OWMyMWQ0ODAxOTU4OTA3ZTAzYmFkMjM0MzJjN2Ri YTAxOTgiLCJzcmMvYXBpL2NtcC9wYXJ0aWFsX29yZC5ycyI6IjlkYjBjMzdkNzQzNGNkZmM2MmQ4 ZDY2OTEyZTk3MmZhM2Q4YzExNWFiMmFmMDUxYTZmNDVlNDE0YmQzZTRmMWMiLCJzcmMvYXBpL2Nt cC92ZXJ0aWNhbC5ycyI6ImRlM2Q2MmYzOGViYTgxNzI5OWFhMTZmMWUxOTM5OTU0YzlhNDQ3ZTMx NjUwOTM5NzQ2NWMyODMwODUyYmEwNTMiLCJzcmMvYXBpL2RlZmF1bHQucnMiOiI2N2JmMjFjMTM0 MTI3ZDEyYTcwMjhjOGI4OGE1N2YwY2VlZThjY2JkNzQ5NzZkYThjYTc0ZWI5ZjE2YTE3NGQ1Iiwi c3JjL2FwaS9mbXQucnMiOiI2N2ZiODA0YmI4NmI2Y2Q3N2NmOGNkNDkyYjU3MzNjZTQzNzA3MWI2 NmZlMzI5NzI3OGI4YTY1NTJjMzI1ZGRhIiwic3JjL2FwaS9mbXQvYmluYXJ5LnJzIjoiMDJiMmIy ODdmNzQwNGY4YTk4MzgxM2NmNzBjODcxMDhjOGRhMzgzNTU3OGI2M2FiMzAzMTE2ODg1ZjYwOTQx MyIsInNyYy9hcGkvZm10L2RlYnVnLnJzIjoiNTZlMWMzYmRjMDkyNzQ3MzQ0ZmZmYWFmZmY5ZGE3 MTYzZWU3ODI3ODU3ZjZmYjdjYjFjOTkyM2VjYTRmNmZhMCIsInNyYy9hcGkvZm10L2xvd2VyX2hl eC5ycyI6IjU1OGZkNTkyZjdmNDg1NzEyZmIwNTE1MDljZWNjNzE3NGEyMWU2YmY2MmU1Y2U2NDc2 NmU3NWFmYzk3YmI4ZTEiLCJzcmMvYXBpL2ZtdC9vY3RhbC5ycyI6IjNiMmU3MDg3N2E0ZjM2OGM3 NzA0ZjhlMjU0MjM2YzAxNGMzNjVjNzRkOTMzNzFjMWZlYjVmMDMwZTZjNjY0MjIiLCJzcmMvYXBp L2ZtdC91cHBlcl9oZXgucnMiOiIyYTQ0MmY2NjZiYzgwZTIyZDQxZjkwM2Y4ODEyMzhmZTExNGRk NDkzNDRjM2VkNjk4NDkyNTBlODUzY2FmYzVkIiwic3JjL2FwaS9mcm9tLnJzIjoiMmU1OTlkODMy OWNiMDVlYWYwNjIyNGNjNDQxMzU1YzRiN2I1MTI1NGZjMTkyNTY2MTkzMzNiZThjMTQ5ZDQ0NCIs InNyYy9hcGkvZnJvbS9mcm9tX2FycmF5LnJzIjoiNWQyY2M3MDA1NjgzNzZiZjZlZTFmZTVlNDA2 ZGEzYmMyZDQ4OGZmMTU1NjQ0YmY3M2QwNmExMzQ5YjczZmM1MyIsInNyYy9hcGkvZnJvbS9mcm9t X3ZlY3Rvci5ycyI6Ijk3NjQzNzFhYTllNjAwNWFhY2U3NGRlYTE0ZjU5ZTU2MTFhMDk1YjdjZjQy NzA3OTQwOTI0NzQ5MjgyYzUyZjAiLCJzcmMvYXBpL2hhc2gucnMiOiI1MDc2ZWNlODc5Njk1OTJj ODc2NDg2ZjViMWVhOGFmZmJlYWVjMzc5ZDFhMTRhMzA4NTllMGFhNTU5MjAxOWRlIiwic3JjL2Fw aS9pbnRvX2JpdHMucnMiOiI4ZjgwMTE2MjcyNTBlMjNlNjZiNWMwY2E2NDFhZmIwNzlkODIzMjY3 NGJiMTM1NDE0MGI1MzZiZGJlYTYzZTU1Iiwic3JjL2FwaS9pbnRvX2JpdHMvYXJjaF9zcGVjaWZp Yy5ycyI6ImU3NDQ1MDIxZjM5MDgzMjZiZmVlNzU4ODM1ZTVmYzVhZDU2YWExYmFhNzdmYzFjNThh YmU0MzUwYzY2YzY3MGEiLCJzcmMvYXBpL2ludG9fYml0cy9tYWNyb3MucnMiOiJiYjRmZTk5YmUy YWY2YTIxZDgwNWVmYWI0NGM4ZTRlNjFhN2IyYWRiNDJhNjU1MDRhMGNmMjZkMTNlZmRhZGNkIiwi c3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycyI6IjE0NWE0NDkyMmIwOWE1Y2E1YjYyZDg4YTQ2MWQz MjdkMzk5YTk5N2ExNWRiNGIxMWQ3YjE3ZTU1NGE5ZmE0YzAiLCJzcmMvYXBpL2ludG9fYml0cy92 MTYucnMiOiJmNGY0ZjYxYmE4OGFhNTFiMTU4ZWM1NmNhM2RjZTIzNDM0OWFlYTBkYWYyYjMwMjlh MTRhYjUxMjVkMWU0MWU1Iiwic3JjL2FwaS9pbnRvX2JpdHMvdjI1Ni5ycyI6IjhjZWE5YzVkOTgw OWYxMTMyM2NiN2NkYzUzYjgzZGY1OTNmZDE3Y2FmOTI2MjUxZTQxMmFlOTc3N2JlZDU0N2YiLCJz cmMvYXBpL2ludG9fYml0cy92MzIucnMiOiI5MDViYTY4M2QzNDJmYTMyZjQyMDJiODBiYjQ2NTMw ODA3YmQwYTViNTg4ZjZjMmU4YzlmNDc1MjIzYzQ3Nzc1Iiwic3JjL2FwaS9pbnRvX2JpdHMvdjUx Mi5ycyI6ImUyNWFmYTFmYmYwODhhNWQ1OGU3ZDc1ZDE5N2I2Y2Q0YzU2NjM3ZWEyODU0MmJhMThl NDZhNDUxZjI5ZDA0ZTciLCJzcmMvYXBpL2ludG9fYml0cy92NjQucnMiOiJkNjIzODAyMmNjZmY3 YjkyZTU1YjNmNjAxN2ZjMjY5YWNiNmYzNjMzMGE2ZDdlOGZiMzg5ODUzYTBmMWI2NDc4Iiwic3Jj L2FwaS9tYXRoLnJzIjoiOGIyYTJmYzY1MTkxN2E4NTA1MzlmOTkzYWEwYjllNWJmNGRhNjdiMTE2 ODUyODViOGRlOGNkY2EzMTE3MTllYyIsInNyYy9hcGkvbWF0aC9mbG9hdC5ycyI6IjYxZDI3OTRk NjgyNjJhMTA5MGFlNDczYmQzMDc5M2I1ZjY1Y2Y3MzJmMzJhNjY5NGEzYWYyY2U1ZDkyMjU2MTYi LCJzcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJzIjoiNWI2YjI3MDFlMmUxMTEzNWI3Y2U1OGEwNTA1 MmVhODEyMGUxMGU0NzAyYzk1ZDA0NmI5ZDIxYjgyN2IyNmJmOCIsInNyYy9hcGkvbWF0aC9mbG9h dC9jb25zdHMucnMiOiI2MzAyYzkyNjFkYTQyOTFkMTQ0ZDViYjUzNDkzY2RkMDczNDk4ZmViNDA5 NTVmYjY4NjBlYTNjNGQwNmM5NzhhIiwic3JjL2FwaS9tYXRoL2Zsb2F0L2Nvcy5ycyI6IjRjMmRk NzE3MzcyOGVmMTg5MzE0ZjE1NzZjOTQ4NmUwM2JlMjFiN2RhOTg4NDNiMmY5MDExMjgyYTc5Nzll MzEiLCJzcmMvYXBpL21hdGgvZmxvYXQvZXhwLnJzIjoiN2M2ZDVmMWUzMDRmNDk4YTAxY2ZhMjNi OTIzODBjODE1ZDdkYTBhZDk0ZWFlMzQ4Mzc4M2JjMzc3ZDI4N2VlZiIsInNyYy9hcGkvbWF0aC9m bG9hdC9sbi5ycyI6IjU0Yzc1ODNmM2RmNzkzYjM5ZmY1NzUzNGZhZGUyN2I0MWJiOTkyNDM5ZTVk YzE3ODI1MmY1Y2EzMTkwYTNlNTQiLCJzcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZC5ycyI6IjYy Y2FjNzc2NjBkMjAxNTkyNzZkNGM5ZWYwNjZlYjkwYzgxY2JkZGI4MDhlOGUxNTcxODJjNjA3NjI1 YWQyZWIiLCJzcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZGUucnMiOiJiYWUwNTZlZTlmM2E3MGRm MzllYzNjM2IyZjY0MzdjNjUzMDM4ODhhN2I4NDNlZjFhNWJjZjFmNWFjYTBlNjAyIiwic3JjL2Fw aS9tYXRoL2Zsb2F0L3Bvd2YucnMiOiI5ZGRiOTM4OTg0YjM2ZDM5ZDgyYTgyZjg2MmY4MGRmOGY3 ZmIwMTNmMWQyMjJkNDU2OThkNDFkODg0NzJmNTY4Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L3JlY3By ZS5ycyI6IjU4OTIyNTc5NGZmMWRiZjMxMTU4ZGZmNjYwZTZkNDUwOWVjYzhiZWZiYjU3YzYzMzkw MGRlYTVhYzBiODQwZDYiLCJzcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJzIjoiYTMyYWJkY2Mz MThkN2NjYzg0NDgyMzFmNTRkNzViODg0YjdjYmViMDNhN2Q1OTU3MTNhYjYyNDMwMzZmNGRiZiIs InNyYy9hcGkvbWF0aC9mbG9hdC9zaW4ucnMiOiJjYmQzNjIyYjdkZjc0ZjE5NjkxNzQzMDAxYzhj Zjc0N2EyMDFmODk3N2FkOTA1NDJmZWU5MTVmMzdkY2QxZTQ5Iiwic3JjL2FwaS9tYXRoL2Zsb2F0 L3NxcnQucnMiOiIwYzY2ZDVkNjNmYjA4ZTRkOTljNmI4MmE4ODI4ZTQxMTczYWZmMWFjOWZhMWEy NzY0YTExZmFjMjE3Y2NmMmFjIiwic3JjL2FwaS9tYXRoL2Zsb2F0L3NxcnRlLnJzIjoiNzMxZTFj OWYzMjFiNjYyYWNjZGQyN2RhY2IzYWFjMmU4MDQzYjdhZWNiMmYyMTYxZGRlNzMzYmQ5ZjAyNTM2 MiIsInNyYy9hcGkvbWluaW1hbC5ycyI6IjFmMjJiY2M1Mjg1NTU0NDRlNzZkZTU2OWVjMGFlMjAy OWI5YWU5ZDA0ODA1ZWZlYWZhOTMzNjljODA5ODAzNmIiLCJzcmMvYXBpL21pbmltYWwvaXVmLnJz IjoiODE5Y2ZmMjZkM2UxOTZmODA3NjQ1YmNjMWQ3OWViMjdkOWYxNzVlZGI4OTkxMGYyMjc0ZDUy YTFlOTEzY2QxMSIsInNyYy9hcGkvbWluaW1hbC9tYXNrLnJzIjoiMGNhZTEwYWUxZmM2NWY1MDcw ZTY4NmMwYzc5YmZiYTI3Yjg2YjMzZDZjMzk5MzY3YmQ0ODQ4ZmIzNjdkY2VjNCIsInNyYy9hcGkv bWluaW1hbC9wdHIucnMiOiJmNzRkN2E0OTI1ZDcyMDlmYWViYzI2ZWE4MzE1MjU5Y2IyYzA4ZWM2 NTc4OWE3MDg2OWU1OTU2NDlhOWJjMzlhIiwic3JjL2FwaS9vcHMucnMiOiIzZTI3M2IyNzdhMGYz MDE5ZDQyYzNjNTljYTk0YTVhZmQ0ODg1ZDVhZTZkMjE4MmU1MDg5YmJlZWM5ZGU0MmVlIiwic3Jj L2FwaS9vcHMvc2NhbGFyX2FyaXRobWV0aWMucnMiOiJkMmQ1YWQ4OTdhNTlkZDA3ODc1NDRmOTI3 ZTBlN2NhNDA3MmMzZTU4YjBmNGEyMzI0MDgzMzEyYjBkNWEyMWQ3Iiwic3JjL2FwaS9vcHMvc2Nh bGFyX2JpdHdpc2UucnMiOiI0ODIyMDRlNDU5Y2E2YmU3OTU2OGUxYzlmNzBhZGJlMmQyMTUxNDEy ZGRmMTIyZmIyMTYxYmU4ZWJiNTFjNDBjIiwic3JjL2FwaS9vcHMvc2NhbGFyX21hc2tfYml0d2lz ZS5ycyI6ImMyNTBmNTIwNDJlMzdiMjJkNTcyNTZjODBkNDYwNDEwNGNmZDJmYmUyYTJlMTI3YzY3 NjI2NzI3MGNhNWQzNTAiLCJzcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzIjoiYzQ3NzNkNDM1 YzNmOWRhNDQ1NDMyN2U2ZmJiMmI1YjQxYTFjMGViYjFjY2E3MzcyZTY5ZGM3YTM0NGExYjZlNCIs InNyYy9hcGkvb3BzL3ZlY3Rvcl9hcml0aG1ldGljLnJzIjoiZGRjYTE1ZDA5ZGRlZWY1MDJjMmVk NjYxMTdhNjIzMDBjYTY1ZDg3ZTk1OWU4YjYyMmQ3NjdiZGYxYzMwNzkxMCIsInNyYy9hcGkvb3Bz L3ZlY3Rvcl9iaXR3aXNlLnJzIjoiYjM5NjhmNzAwNWI2NDllZGNjMjJhNTRlMjM3OWIxNGQ1ZWUx OTA0NWYyZTc4NDAyOTgwNTc4MWFlMDQzYjVlZSIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9mbG9hdF9t aW5fbWF4LnJzIjoiNzZiZjhjYjYwN2UyYzQ0MjkyM2MxZGExMDYxYTZiODBkNzQyZDYwNzQwODAz M2MyYTM3NjExNjExMTRjZjJhMCIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9pbnRfbWluX21heC5ycyI6 ImEzNzg3ODljNmZmOWIzMmE1MWZiZDBhOTdmZmQzNmVkMTAyY2QxZmU2YTA2N2QyYjAyMDE3YzFk ZjM0MmRlZjYiLCJzcmMvYXBpL29wcy92ZWN0b3JfbWFza19iaXR3aXNlLnJzIjoiNTA1MmQxODUx N2Q3NjU0MTVkNDAzMjdlNmU4ZTU1YTMxMmRhYWNhMGE1ZTJhZWM5NTliZmE1NGIxNjc1ZjljOCIs InNyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMiOiI1YzYyZjZiMDIyMTk4M2NkYmQyM2NkMGEzYWYz NjcyZTZiYTEyNTVmMGRmZThiMTlhYWU2ZmJkNjUwM2UyMzFiIiwic3JjL2FwaS9vcHMvdmVjdG9y X3JvdGF0ZXMucnMiOiI2YzNmNzYxZDlkNTUxZjYzNjVhOGE5NTUzOWNlYWNlNGIxYTAyZTBiMTJk MTQ0ZjM0ZWQ2OGRiOTRlODhjZmY0Iiwic3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycyI6ImU1 MTBiZTE0MTI3YzBmZmQ1OGEyNTczYTM5NzAxZGEzNTU3ZDY2YmVkZWMwOTgzN2FjOGJiZDQ0ZDU3 OWRhMDAiLCJzcmMvYXBpL3B0ci5ycyI6IjhhNzkzMjUxYmVkNjEzMGRjZmIyZjE1MTljZWFhMThi NzUxYmJiMTU4NzU5MjhkMGZiNmRlYjVhNWUwNzUyM2EiLCJzcmMvYXBpL3B0ci9nYXRoZXJfc2Nh dHRlci5ycyI6IjNkNjE0ZjlkNWI0Y2EyMDFhOWY3ZTQ2YWY0NDA1ZTFkMmMyOGVjZWUxNjIwMjk3 YzIzYjUyZTM3YjkyY2MwZWEiLCJzcmMvYXBpL3JlZHVjdGlvbnMucnMiOiJhZTViYWNhODEzNTJl Y2Q0NDUyNmQ2YzMwYzBhMWZlZWRhNDc1ZWM3M2RkZDNjM2VjNmIxNGU5NDRlNTQ0OGVlIiwic3Jj L2FwaS9yZWR1Y3Rpb25zL2JpdHdpc2UucnMiOiI4YmY5MTBhZTIyNjE4OGJkMTVmYzdlMTI1ZjA1 OGNkMjU2NmI2MTg2ZmNkMGNkOGZkMDIwZjM1MmMzOWNlMTM5Iiwic3JjL2FwaS9yZWR1Y3Rpb25z L2Zsb2F0X2FyaXRobWV0aWMucnMiOiI0N2E1Njc5ODk2ZGIyY2JiNTZjMzEzNzJmZTQyMTQzZGEw MTViNmJlYWU3ZGI1ZDJmM2EwMzA5ZGRmNDI3YWUxIiwic3JjL2FwaS9yZWR1Y3Rpb25zL2ludGVn ZXJfYXJpdGhtZXRpYy5ycyI6ImMyZGYzY2Y3NDkzY2NhNDE3NGYyYzY1YWVhNDIyYTNkMjBkOGEy M2FmMDNmOGQ1N2NlZjcyYzE5ZmVlOGYyMGQiLCJzcmMvYXBpL3JlZHVjdGlvbnMvbWFzay5ycyI6 ImRiODMzMjdhOTUwZTMzYTMxN2YzN2ZkMzNjYTRlMjBjMzQ3ZmI0MTU5NzVlYzAyNGYzZTIzZGE4 NTA5NDI1YWYiLCJzcmMvYXBpL3JlZHVjdGlvbnMvbWluX21heC5ycyI6IjZhZjhjOWFhNDVjNjk5 NjFiMWI2ZmMyMDUzOTVmNDc2N2Q0NDIxODY5ZmIxMDVmYjNkNTYzYzU2MDVmYzEzY2QiLCJzcmMv YXBpL3NlbGVjdC5ycyI6IjZiMDdlN2U4MDI2ZGY1NjFmNzMwNzIyMWE4OTZmMGZiYjI3MjUzNmY0 MWI5MTA5MDQwYWMwOTRjMjRjNjkzMzEiLCJzcmMvYXBpL3NodWZmbGUucnMiOiJiZTdmYWZmOWI1 OTY1NDkyNmRmMTI4OTdiMmY5OGE0YmFhN2Q2YWNmMmFmMWFhZjkzZDM4OGJhNmU5NmY4M2VjIiwi c3JjL2FwaS9zaHVmZmxlMV9keW4ucnMiOiJiZmVhNWE5MTkwNWIzMTQ0NGU5ZWY3Y2E2ZWRkYjdh OTYwNmI3ZTIyZDNmNzFiYjg0MmViMjc5NWEwMzQ2NjIwIiwic3JjL2FwaS9zbGljZS5ycyI6ImVl ODc0ODRlOGFmMzI5NTQ3YjlhNWQ0ZjJhNjllOGJlZDZlYTEwYmJkOTYyNzBkNzA2MDgzODQzZDRl ZWEyYWMiLCJzcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMiOiIzNzM1MzYzMDAwNzM3MTA0YThm YzVmMzk0YWQ4YzMxZWMxNGU4ODU5NTJiZDU3NjQ3ZGQyYTg0MDAxYWVlMGE2Iiwic3JjL2FwaS9z bGljZS93cml0ZV90b19zbGljZS5ycyI6Ijc5ZDA5YzY0ZDAwNzI0NzgzYzc3YzQyZTQ1ODNlZWVj OTdiMThkYjk0Y2YyYWUxNDZiNTY0YzNmODVjZmVmZDYiLCJzcmMvYXBpL3N3YXBfYnl0ZXMucnMi OiIwNWI0MjYyZWFhZGUyZjYzZTZjZDNiNzgwYzE5YTAzYWVjZDI0NTlkNGNjNDM2MDA1MWZjMDg4 ODg3MTc5YTZlIiwic3JjL2NvZGVnZW4ucnMiOiJkYjRmMjMyZmI5ZjU3MjhkYjMxMGI4N2RjOGM0 NzMzYmU0OGFmYWNhYjEwNTM3OThjMDYxMDZiZWY5YTQyYjA1Iiwic3JjL2NvZGVnZW4vYml0X21h bmlwLnJzIjoiNTI1ZWE2ZmY3YWQxZTA0M2I2ZjYxMzY5OTIxNjZmMTgwM2VkNTU2M2I3ZjZmYzI5 MmMxYzQwMjU3ZDIwZTI2NCIsInNyYy9jb2RlZ2VuL2xsdm0ucnMiOiIxMmU3NDhiNDkyOGMzYmU2 Y2MxMmI0MTY1YzMwNDFhM2QwZWZjY2Y2MTk1MzM4ZWNkM2Q4OGI4ZmRiMGJiY2M3Iiwic3JjL2Nv ZGVnZW4vbWF0aC5ycyI6ImRmY2YwMmFkMzRlMmZkZmUyMmMzZjFjYzI4MjIwMDFjYzg5NWU2NTAz MWI0ZDA2ZTU4NWU1MDQ3ODM5ZmViYjciLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0LnJzIjoiMmMx Y2JjZTE1NWJjNTI3Y2UzNGQ0NzJjMGZlZjZiYzNkYWRiNzljZDdhMzU3ZGQ3YWE1YjFlYmViMWQ3 N2ExMyIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvYWJzLnJzIjoiZDVhYWFkY2Y1NDBiZGI5YjQy NjRkY2E2NDcxYTI1NWZkN2JmNTA5ZTc2M2JlZjAyMzljMDE0NGE2ODQ2NmZlYSIsInNyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvY29zLnJzIjoiMTdmMjhkMjkwMGM4NTJkY2EyMjFmYTljOTJhOWNkNWZl N2ZkMmRmOGQ0MjdiYmM2MDIxNmM3NDliMmJlMDEzZCIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQv Y29zX3BpLnJzIjoiZGJhZjlmNDQzZjk4NDZhNDkxZDRlYzUyMjEwYTdiNTgzNWRkNTkzYjAzMzY2 ZTMxMzViMDVjMzdkNzBmOWQ2YyIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvZXhwLnJzIjoiZDMw MDA1OGE0YmNjN2FlNzk3NmYyMTZmODE5MDJjZDczYTllNjAzYWQ2Mzg4MGRmZjNiYmM4NjZjMjdh OWYzNyIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbG4ucnMiOiJjODUxZTIxMWU0M2Y4MjU2MDkz YmE3NWIwM2FlMGMzMDdjOTk2MmVlNjZkOTRmMDliNGRkODAwNjgxOTBjYmRmIiwic3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMiOiJmYzk5MjQ4NjllZDg1ZTQ3OTU5ODNhZjIyOGNhY2Yy MzE1OGY0ZjM1OTE5YWRjZTE2YzkyMGFkNGEzZjBhMDA5Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9h dC9tdWxfYWRkLnJzIjoiMDQxYTViNjlkNTk5MWQ5M2VmNzk1MzUxYjE3NTYwYzEwZmFmODBiNzhm ZDI2YWQ3ZGY0MmEyMzliMzJjZjlkZSIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZGUu cnMiOiJkNzFkNWYwZjMzMzNiNjJhNzQzOWI4MjNjYjdhZGY1MzQwZWExNTU1Y2U4MjBmYjRhM2Y0 Y2I5MjJmNzNmNWY1Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9wb3dmLnJzIjoiOTc0MmMzODc3 ZjFhNTUwOWNhNWM5NDkyYTQwODg0YjY1NzliYTZkZDExYzI2YjcxMTJlNjNmNzA2NjZiMzk1ZCIs InNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luLnJzIjoiMGU5ODY4ZDM1NTMxNTY2NTA5ZjNhMDFk ODVkNTI1MzA0NWViNGFmYTg1MjVkODQwN2RjYzFmNWYzM2M1NjAzNiIsInNyYy9jb2RlZ2VuL21h dGgvZmxvYXQvc2luX2Nvc19waS5ycyI6IjhlNmI2MTQyZDdkZDI0MGNkYjM2NjY5NzIyZTgyYWI5 ODEwYTIyNjFlODZlNjU5ZjdkOTdhOTQyYWQ4YjEyNTgiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L3Npbl9waS5ycyI6ImJiNmQzOWRiOGY5MjFlMDNhMzAxZmM1MjA2YWMxYTYxYTk3ZGVmOGEyY2I4 M2I4N2NjZjE4OWYzZmM0OGQ1NDgiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnQucnMiOiJl NmViYjBjNWY0MjhlZmFkMWY2NzJiOWE4ZmU0ZTU4NTM0ZGJmMWVhNWE4ZmUwOTJjZTVjZTc2YjUy ZmU4OWNiIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0ZS5ycyI6IjIzYWNmYWVhMzhkMGUw ODFhNmQ5MDIxYzEwOTRlODEzZDBjZmQxMmM1OGMxZWNhOTY2MmFhZGU1ZTYyNWQ1MWMiLCJzcmMv Y29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5ycyI6IjZjYTEzYzIxNGI2Y2Y3ZTA5MjlkYmUxOGU5 NmExNmZjMGJiN2Q4Nzk5NjA4ZGYyOWM0YzgxMTU0OTBmOTllMDEiLCJzcmMvY29kZWdlbi9yZWR1 Y3Rpb25zLnJzIjoiOGViMThlYmFjNzY5ODVkMmFhMzAyNjJhMmVkZDhjYjAwNDIzMGI1MTFhNzY1 ZDY1NzUyNWY2NzdhNTg1YzEyYyIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay5ycyI6ImU2 N2YzNWExZjRkMTU2YTQ4OTRhMmQ2ZWE1YTkzNWI0ZDg5OGNmNzBlZWZiMjcxNWY1YzFjYzE2NWU3 NzZjMTEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYWFyY2g2NC5ycyI6Ijg0YjEwMWMx N2NhZDFlZGU0ZWI2ZDM4Y2FkYTBhYzdkYTIzOWRiYThjZWEzYmFkZDM4MjliOTY3ZTU1ODQzMWYi LCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzIjoiYWFhMDcxMjliZDA3OGFlN2U2 NzdjZjhiOGU2N2VjOWYzMDUzNjYwNmEwYzdlZDFiYWFhMThmZDE3OTNiYjIxOCIsInNyYy9jb2Rl Z2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycyI6IjNlYjkzMTlkMmM3Y2YxOTIxNmI2MDdi ODQ1OTYxMmM0ZTAyN2I2NDNjZjExYjAzNjkzN2QzNjg5NmJmNzY3ODYiLCJzcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1wbC5ycyI6Ijc2NTQ3ZjM5NmU1NWVmNDAzMzI3Yzc3 YzMxNGNmOGRiOGM3YTVjOWI5ODE5YmZiOTI1YWJlYWNmMTMwMjQ5ZTUiLCJzcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2sveDg2LnJzIjoiMzZkY2Q4YWY0YWI5OTczMGEwNzhlZDExM2QzOTU1Zjc0 ZWIxYTI4NzZlMmU2ZDlmMjI0ZTBmZjQ2MmMyMTZkMSIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMv bWFzay94ODYvYXZ4LnJzIjoiM2E0MDg2OGIzOGM4NmUzNWFlZmI5NmQ3NTc4ZGU2MzIyZWZlODlk ODEzNWUwMzY2MzU5YjU0ZGRkMDZmODYxYSIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94 ODYvYXZ4Mi5ycyI6IjY3N2FlZDNmMDU2Mjg1Mjg1ZGFhM2FkZmY4YmM2NWU3Mzk2MzBiNDQyNGRl ZmE2ZDk2NjVlMTYwZjAyNzUwN2UiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3Nz ZS5ycyI6Ijg1MjJmNmVkMDNmNmMzMmRkNTc3ZDQyOThkZjQ3N2MwOGFlYWFhMzg1NjM3MDZmMjkw OTZlMTkxMWVkNzMxZjIiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZTIucnMi OiI1NGVjNTZlNDliMGM2ODQxZWNjYjcxOWU0ZjMxMGQ2NWZlNzY3YzA0MTM2YjJlYzIwYmQ4Yjlk N2Q5ODk3YjllIiwic3JjL2NvZGVnZW4vc2h1ZmZsZS5ycyI6IjFlYzI5MzBmNGUxYWNjNDNhYzMw YjUxOGFmMjk4ZDQ2NmE3OWU5ZTc1NzM0YTUxYzM4MGI3ODEwZWZkMWEyN2YiLCJzcmMvY29kZWdl bi9zaHVmZmxlMV9keW4ucnMiOiIzZjEzY2ExNTk3Mzc4NzU4ZDA1MTA2YmY1ZmYzNzE1ZWVlNTMx ZjNjYjZkODhmNDhiOTE4MmJkNmM5Mzg2YjUxIiwic3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycyI6 ImM2N2M4NmU5MWNhM2ZjNzc1MzllMGVmY2VhMDgxYTNjNjI1NDhjY2NmNTAzOTYzYWU0MDhmMmU4 NmY0ZTZhMjEiLCJzcmMvY29kZWdlbi92MTI4LnJzIjoiOTQyMjZiMzFlYzQwM2QxOGQ5ZDJmZTA2 NzEzZjE0N2M5Yzc5ZTliNWY5MTA1MDg5MDg4MjY2MzEzZjg0MzE4NSIsInNyYy9jb2RlZ2VuL3Yx Ni5ycyI6ImRkZWM0ZmZiNjZiNmY3YWFmZmI5YTE3ODBjNWRkYmE4MjU1N2FiZDc0ZjQ1MDczZDMz NTA0N2UwNGNmNzQ5MjQiLCJzcmMvY29kZWdlbi92MjU2LnJzIjoiNmI2MzkxN2YwNDQ0MTE4ZDZi MTU5NWJmZjIwNDVlNTliOTdjNGQyNDAxMmJkNTc1ZjY5ZjFmMGVmYzVhMDI0MSIsInNyYy9jb2Rl Z2VuL3YzMi5ycyI6IjM0NzdiM2M1NTQwYWVkODZlNjFlMmY1ODA3ZGQzMWRiOTQ3NDEzY2VjOTE4 MWM1ODdkOTNlZDZlYzc0ZjBlYmEiLCJzcmMvY29kZWdlbi92NTEyLnJzIjoiNTg1NGY5OWQzYWFi YzRjZDQyYjI4YTIwZDljZTQ0Nzc1NmRjMmJhMDI0YTQwOWE2OWI2YThhZTFmMTg0MmZjNSIsInNy Yy9jb2RlZ2VuL3Y2NC5ycyI6ImU5ZTg5Y2FlYmZlNjNkMTBjMGNiY2E2MWU0ZGZkYmEzYjdlMDJl ZTA5ODkxNzBmODBiZWVkMjMyMzdkZGQ5NTAiLCJzcmMvY29kZWdlbi92UHRyLnJzIjoiZjA3NTNi NDA1Y2RjODY1YmRmOGU4MmM2NTA1ZjI5OWVhMWY5NjEzNjIzOWViYmFmN2Y5Y2U5M2QzMTA3NjRi OCIsInNyYy9jb2RlZ2VuL3ZTaXplLnJzIjoiYzg5ZjVmZGViMjhhYzRjODI3MmVkMTgxNmZjZTAz ZDlkOTUzMDhjYzMyYmIyNTMzYmQ4YjIwY2Q1YWMxMDJhYyIsInNyYy9saWIucnMiOiIwNTA0OGM2 YTg1ZWM2NWNmOTAyZDlkZDhmNzU3YTNmNzYzOTJiNzAzYTY3OTRlYTcxZjBkNDE1MDBhODlmNzhm Iiwic3JjL21hc2tzLnJzIjoiNzBmYzBhYmU0YzI5MDdjZTJhNDkxYzU3NGUxY2ZiOWYzNDIzMzg1 ZGEyZTFhOTIzYTQ4YzljMTNmOGJhNmVkOCIsInNyYy9zZWFsZWQucnMiOiJhZTdmZGVhZjVkODRj ZDc3MTBlZDczMGNhNzJjYTdlYWJhOTNkZjZjYjBhY2IxODNlNWMwYTczMjdhY2YxOTdmIiwic3Jj L3Rlc3RpbmcucnMiOiI4OTY2NjljMDhkOGM4MDE0NDhhNGQyZmFkYzlkNjMzZWRhMGZiZTg3OWQy Mjk5OTdlMmExODJlMzEyNzhlNDY5Iiwic3JjL3Rlc3RpbmcvbWFjcm9zLnJzIjoiNDAzYmJjNWVj YjdjNzg2ZmUzNjE1NmRmMzAyZDBjMDdhODEyMjQwOGRiYjE1Zjc0NzRkNzY4MjIyNGJhMTEwNiIs InNyYy90ZXN0aW5nL3V0aWxzLnJzIjoiNDE5MTJhOTIyNjZkZmU4ODQ2NDdmYzAzNWU0MjQyZmQ3 NDYxMDBkZjhlODM5ODA4YWUwMzk3YWYzNzU5YTNjOCIsInNyYy92MTI4LnJzIjoiMTZjZjlhOGU3 MTU2Yjg5OWVlOWI5Y2QzZjJkYmE5ZDEzZWM2MzI4OWJlYThjM2VlOWFlMmU0M2FkOTUxMDI4OCIs InNyYy92MTYucnMiOiJjYjY0NjVjZjFlMDBiZjUzMDE4M2FmMTgxOWI5ZmUzZDdlZWM5NzhmODc2 NWQ1ZTg1ZDliNThhMzlhNGI0MDQ1Iiwic3JjL3YyNTYucnMiOiJmZTIzNTAxN2RhMThjN2YzYzM2 MTgzMWM2MGUzMTczYWQzMDRkOGVhMWU5NWQ2NGViZWJjNzlkYTJkNzA4NTExIiwic3JjL3YzMi5y cyI6IjE0NWQzNDc4NTViYWM1OWIyZGU2NTA4ZjllNTk0NjU0ZTZjMzMwNDIzYWY5ZWRjMGUyYWM4 ZjRkMWFiZGY0NWUiLCJzcmMvdjUxMi5ycyI6ImYzNzJmMjc3ZjNlNjJlYjVjOTQ1YmIxYzQ2MDMz M2ZkYjE3YjY5NzRmY2M4NzY2MzM3ODhmZjUzYmRlZDk1OTkiLCJzcmMvdjY0LnJzIjoiMGI4MDc5 ODgxYjcxNTc1ZTM0MTRiZTBiN2Y4ZjdlYWJhNjUyODFiYTY3MzJmMmIyZjYxZjczZTk1YjZmNDhm NyIsInNyYy92UHRyLnJzIjoiOGIzZTQzM2Q0ODcxODBiYjQzMDRmZjcxMjQ1ZWNhZDkwZjAwMTBm NDNlMTM5YTcyMDI3YjY3MmFiZTU4ZmFjYyIsInNyYy92U2l6ZS5ycyI6ImVkYTVhYTAyMDcwNmNi Zjk0ZDE1YmFkYTQxYTBjMmEzNWZjOGYzZjM3Y2I3YzJjZDZmMzRkMjAxMzk5YTQ5NWUiLCJ0ZXN0 cy9lbmRpYW5uZXNzLnJzIjoiNTE0N2Y4NmQyMjRjNGM1NDBiNzcyMDMzZGEyZjk5NGNhZDliYzlj MDM1ZjM4ZWMyMWUyM2JjNGU1NWY4YTc1OSJ9LCJwYWNrYWdlIjpudWxsfQotXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC8uZ2l0aHViL3dvcmtmbG93cy9iZW5jaG1hcmtzLnltbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55bWwKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55bWwJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55bWwJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMxICswLDAgQEAKLS1uYW1lOiBiZW5jaG1h cmtzCi0tCi0tb246Ci0tICBwdXNoOgotLSAgICBicmFuY2hlczoKLS0gICAgICAtIG1hc3Rlcgot LSAgcHVsbF9yZXF1ZXN0OgotLSAgd29ya2Zsb3dfZGlzcGF0Y2g6Ci0tCi0tam9iczoKLS0gIHg4 Nl82NC11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9y dW4tY2ktc2NyaXB0LnltbAotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25v d24tbGludXgtZ251Ci0tICAgICAgc2V0dXBfc2NyaXB0OiBjaS9zZXR1cF9iZW5jaG1hcmtzLnNo Ci0tICAgICAgc2NyaXB0OiBjaS9iZW5jaG1hcmsuc2gKLS0gICAgICBub3J1bjogMQotLSAgICAg IHZlcmlmeTogMQotLSAgICAgICMgRklYTUU6IGZpZ3VyZSBvdXQgaG93IHRvIGFkZCBkb3dubG9h ZGVkIGlzcGMgdG8gUEFUSAotLSAgICAgICMgZmVhdHVyZXM6IGlzcGMKLS0gIHg4Nl82NC1hcHBs ZS1kYXJ3aW46Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55 bWwKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1kYXJ3aW4KLS0gICAg ICBydW5uZXI6IG1hY29zLWxhdGVzdAotLSAgICAgIHNldHVwX3NjcmlwdDogY2kvc2V0dXBfYmVu Y2htYXJrcy5zaAotLSAgICAgIHNjcmlwdDogY2kvYmVuY2htYXJrLnNoCi0tICAgICAgbm9ydW46 IDEKLS0gICAgICB2ZXJpZnk6IDEKLS0gICAgICAjIEZJWE1FOiBmaWd1cmUgb3V0IGhvdyB0byBh ZGQgZG93bmxvYWRlZCBpc3BjIHRvIFBBVEgKLS0gICAgICAjIGZlYXR1cmVzOiBpc3BjCi1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9j aS55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2Np LnltbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93 cy9jaS55bWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1sCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMTggKzAsMCBAQAotLW5hbWU6IGNp Ci0tCi0tIyB0cmlnZ2VyIGZvciBhbGwgUFJzIGFuZCBjaGFuZ2VzIHRvIG1hc3RlcgotLW9uOgot LSAgcHVzaDoKLS0gICAgYnJhbmNoZXM6Ci0tICAgICAgLSBtYXN0ZXIKLS0gIHB1bGxfcmVxdWVz dDoKLS0KLS1qb2JzOgotLSAgcnVzdGZtdDoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICB3aXRoOgotLSAgICAgIHNjcmlwdDogY2kvYWxsLnNo IGNoZWNrX2ZtdCB8fCB0cnVlCi0tICB4ODZfNjQtdW5rbm93bi1saW51eC1hbmRyb2lkOgotLSAg ICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0 ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDog eDg2XzY0LWxpbnV4LWFuZHJvaWQKLS0gIGFybXY3LWxpbnV4LWFuZHJvaWRlYWJpOgotLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5 OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogYXJt djctbGludXgtYW5kcm9pZGVhYmkKLS0gIGFhcmNoNjQtdW5rbm93bi1saW51eC1hbmRyb2lkLU5F T046Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0g ICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAg dGFyZ2V0OiBhYXJjaDY0LWxpbnV4LWFuZHJvaWQKLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0 LWZlYXR1cmU9K25lb24KLS0gIHRodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpOgotLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5 OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHRo dW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpCi0tICBpNTg2LXVua25vd24tbGludXgtZ251Ogot LSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0 cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJn ZXQ6IGk1ODYtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2NhdGlv bi1tb2RlbD1zdGF0aWMKLS0gIGk1ODYtdW5rbm93bi1saW51eC1nbnUtU1NFOgotLSAgICB1c2Vz OiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5Ogot LSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IGk1ODYt dW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2NhdGlvbi1tb2RlbD1z dGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rc3NlCi0tICBpNTg2LXVua25vd24tbGludXgtZ251LVNT RTI6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0g ICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAg IHRhcmdldDogaTU4Ni11bmtub3duLWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUNyZWxv Y2F0aW9uLW1vZGVsPXN0YXRpYyAtQ3RhcmdldC1mZWF0dXJlPStzc2UyCi0tICBpNjg2LXVua25v d24tbGludXgtZ251OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3Jp cHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0 aDoKLS0gICAgICB0YXJnZXQ6IGk2ODYtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0Zmxh Z3M6IC1DcmVsb2NhdGlvbi1tb2RlbD1zdGF0aWMKLS0gIGk2ODYtdW5rbm93bi1saW51eC1nbnUt U1NFNF8yOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1s Ci0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0g ICAgICB0YXJnZXQ6IGk2ODYtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1D cmVsb2NhdGlvbi1tb2RlbD1zdGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rc3NlNC4yCi0tICBpNjg2 LXVua25vd24tbGludXgtZ251LUFWWDI6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3Mv cnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxz ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogaTY4Ni11bmtub3duLWxpbnV4LWdudQotLSAg ICAgIHJ1c3RmbGFnczogLUNyZWxvY2F0aW9uLW1vZGVsPXN0YXRpYyAtQ3RhcmdldC1mZWF0dXJl PSthdngyCi0tICB4ODZfNjQtdW5rbm93bi1saW51eC1nbnU6Ci0tICAgIHVzZXM6IC4vLmdpdGh1 Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFp bC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB4ODZfNjQtdW5rbm93bi1s aW51eC1nbnUKLS0gIHg4Nl82NC11bmtub3duLWxpbnV4LWdudS1TU0U0XzI6Ci0tICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0t ICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB4ODZfNjQt dW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K3Nz ZTQuMgotLSAgeDg2XzY0LXVua25vd24tbGludXgtZ251LUFWWDI6Ci0tICAgIHVzZXM6IC4vLmdp dGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAg ZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB4ODZfNjQtdW5rbm93 bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K2F2eDIKLS0g IGFybS11bmtub3duLWxpbnV4LWdudWVhYmloZjoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6 IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IGFybS11bmtub3duLWxpbnV4LWdudWVh YmloZgotLSAgYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGY6Ci0tICAgIHVzZXM6IC4vLmdp dGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAg ZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBhcm12Ny11bmtub3du LWxpbnV4LWdudWVhYmloZgotLSAgYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYtTkVPTjoK LS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBz dHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJn ZXQ6IGFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmCi0tICAgICAgcnVzdGZsYWdzOiAtQ3Rh cmdldC1mZWF0dXJlPStuZW9uCi0tICB0aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmlo ZjoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAg ICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAg dGFyZ2V0OiB0aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZgotLSAgYWFyY2g2NC11 bmtub3duLWxpbnV4LWdudS1ORU9OOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1 bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQot LSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogYWFyY2g2NC11bmtub3duLWxpbnV4LWdudQotLSAg ICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rbmVvbgotLSAgcG93ZXJwYy11bmtub3du LWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0 LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6 Ci0tICAgICAgdGFyZ2V0OiBwb3dlcnBjLXVua25vd24tbGludXgtZ251Ci0tICBwb3dlcnBjNjQt dW5rbm93bi1saW51eC1nbnU6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNp LXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAg ICB3aXRoOgotLSAgICAgIHRhcmdldDogcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251Ci0tICBw b3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6 IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHBvd2VycGM2NGxlLXVua25vd24tbGlu dXgtZ251Ci0tICBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS1BTFRJVkVDOgotLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5 OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogcG93 ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZl YXR1cmU9K2FsdGl2ZWMKLS0gIHBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251LVZTWDoKLS0g ICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJh dGVneToKLS0gICAgICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6 IHBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3Rhcmdl dC1mZWF0dXJlPSt2c3gKLS0gIHMzOTB4LXVua25vd24tbGludXgtZ251OgotLSAgICB1c2VzOiAu Ly5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAg ICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHMzOTB4LXVu a25vd24tbGludXgtZ251Ci0tICBzcGFyYzY0LXVua25vd24tbGludXgtZ251OgotLSAgICB1c2Vz OiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5Ogot LSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHNwYXJj NjQtdW5rbm93bi1saW51eC1nbnUKLS0gIHdhc20zMi11bmtub3duLXVua25vd246Ci0tICAgIHVz ZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6 Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogd2Fz bTMyLXVua25vd24tdW5rbm93bgotLSAgeDg2XzY0LWFwcGxlLWRhcndpbi1TU0U0XzI6Ci0tICAg IHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRl Z3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgcnVubmVyOiBt YWNvcy1sYXRlc3QKLS0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAotLSAgICAgIHRhcmdldDogeDg2 XzY0LWFwcGxlLWRhcndpbgotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rc3Nl NC4yCi0tICB4ODZfNjQtYXBwbGUtZGFyd2luLUFWWDoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZh c3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICBydW5uZXI6IG1hY29zLWxhdGVzdAotLSAgICAg IHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgdGFyZ2V0OiB4ODZfNjQtYXBwbGUtZGFyd2luCi0t ICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthdngKLS0gIHg4Nl82NC1hcHBsZS1p b3M6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0g ICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAg cnVubmVyOiBtYWNvcy1sYXRlc3QKLS0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAotLSAgICAgIHRh cmdldDogeDg2XzY0LWFwcGxlLWlvcwotLSAgYWFyY2g2NC1hcHBsZS1pb3M6Ci0tICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0t ICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgcnVubmVyOiBtYWNvcy1s YXRlc3QKLS0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAotLSAgICAgIHRhcmdldDogYWFyY2g2NC1h cHBsZS1pb3MKLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K25lb24KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2Rv Y3MueW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9k b2NzLnltbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtm bG93cy9kb2NzLnltbAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbAkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTMgKzAsMCBAQAotLW5h bWU6IGRvY3MKLS0KLS1vbjoKLS0gIHB1c2g6Ci0tICAgIGJyYW5jaGVzOgotLSAgICAgIC0gbWFz dGVyCi0tCi0tam9iczoKLS0gIGRvY3M6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3Mv cnVuLWNpLXNjcmlwdC55bWwKLS0gICAgd2l0aDoKLS0gICAgICBzZXR1cF9zY3JpcHQ6IGNhcmdv IGluc3RhbGwgbWRib29rCi0tICAgICAgc2NyaXB0OiBjaS9kb3guc2gKLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3Jp cHQueW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9y dW4tY2ktc2NyaXB0LnltbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0 aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsODYgKzAsMCBAQAotLW5hbWU6IHJ1bi1jaS1zY3JpcHQKLS0KLS1vbjoKLS0g IHdvcmtmbG93X2NhbGw6Ci0tICAgIGlucHV0czoKLS0gICAgICBydW5uZXI6Ci0tICAgICAgICBy ZXF1aXJlZDogZmFsc2UKLS0gICAgICAgIHR5cGU6IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDog dWJ1bnR1LWxhdGVzdAotLSAgICAgIHRhcmdldDoKLS0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQot LSAgICAgICAgdHlwZTogc3RyaW5nCi0tICAgICAgICBkZWZhdWx0OiAnJwotLSAgICAgIHJ1c3Rm bGFnczoKLS0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQotLSAgICAgICAgdHlwZTogc3RyaW5nCi0t ICAgICAgICBkZWZhdWx0OiAnJwotLSAgICAgIHNjcmlwdDoKLS0gICAgICAgIHJlcXVpcmVkOiBm YWxzZQotLSAgICAgICAgdHlwZTogc3RyaW5nCi0tICAgICAgICBkZWZhdWx0OiBjaS9ydW4tZG9j a2VyLnNoCi0tICAgICAgc2V0dXBfc2NyaXB0OgotLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCi0t ICAgICAgICB0eXBlOiBzdHJpbmcKLS0gICAgICBub3J1bjoKLS0gICAgICAgIHJlcXVpcmVkOiBm YWxzZQotLSAgICAgICAgdHlwZTogc3RyaW5nCi0tICAgICAgICBkZWZhdWx0OiAnJwotLSAgICAg IHZlcmlmeToKLS0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQotLSAgICAgICAgdHlwZTogc3RyaW5n Ci0tICAgICAgICBkZWZhdWx0OiAnJwotLSAgICAgIGZlYXR1cmVzOgotLSAgICAgICAgcmVxdWly ZWQ6IGZhbHNlCi0tICAgICAgICB0eXBlOiBzdHJpbmcKLS0gICAgICAgIGRlZmF1bHQ6ICcnCi0t Ci0tam9iczoKLS0gIHJ1bi1jaS1zY3JpcHQ6Ci0tICAgIHJ1bnMtb246ICR7eyBpbnB1dHMucnVu bmVyIH19Ci0tICAgIHN0ZXBzOgotLSAgICAgIC0gbmFtZTogQ2hlY2tvdXQKLS0gICAgICAgIHVz ZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKLS0gICAgICAtIG5hbWU6IEluaXQgUnVzdHVwIENhY2hl Ci0tICAgICAgICB1c2VzOiBhY3Rpb25zL2NhY2hlQHYyCi0tICAgICAgICB3aXRoOgotLSAgICAg ICAgICBwYXRoOiB8Ci0tICAgICAgICAgICAgfi8ucnVzdHVwL3Rvb2xjaGFpbnMKLS0gICAgICAg ICAga2V5OiAke3sgcnVubmVyLm9zIH19LWNhcmdvLSR7eyBoYXNoRmlsZXMoJyoqL3J1c3QtdG9v bGNoYWluJykgfX0KLS0gICAgICAtIG5hbWU6IEluc3RhbGwgVG9vbGNoYWluCi0tICAgICAgICB1 c2VzOiBkdG9sbmF5L3J1c3QtdG9vbGNoYWluQG5pZ2h0bHkKLS0gICAgICAgIHdpdGg6Ci0tICAg ICAgICAgICMgRklYTUU6IGNoYW5nZSB0byBuaWdodGx5IG9uY2UgaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9wdWxsLzM1MCBpcyBtZXJnZWQKLS0gICAgICAgICAgIyBu ZWVkcyB0byBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUgdG9vbGNoYWluIGZpbGVzCi0tICAgICAg ICAgIHRhcmdldHM6ICR7eyBpbnB1dHMudGFyZ2V0IH19Ci0tICAgICAgICAgIGNvbXBvbmVudHM6 IHJ1c3RmbXQKLS0gICAgICAtIG5hbWU6IEdlbmVyYXRlIExvY2tmaWxlCi0tICAgICAgICBydW46 IGNhcmdvIGdlbmVyYXRlLWxvY2tmaWxlCi0tICAgICAgLSBuYW1lOiBJbml0IENhcmdvIENhY2hl Ci0tICAgICAgICB1c2VzOiBhY3Rpb25zL2NhY2hlQHYyCi0tICAgICAgICB3aXRoOgotLSAgICAg ICAgICBwYXRoOiB8Ci0tICAgICAgICAgICAgfi8uY2FyZ28vYmluLwotLSAgICAgICAgICAgIH4v LmNhcmdvL3JlZ2lzdHJ5L2luZGV4LwotLSAgICAgICAgICAgIH4vLmNhcmdvL3JlZ2lzdHJ5L2Nh Y2hlLwotLSAgICAgICAgICAgIH4vLmNhcmdvL2dpdC9kYi8KLS0gICAgICAgICAgICB0YXJnZXQv Ci0tICAgICAgICAgIGtleTogJHt7IHJ1bm5lci5vcyB9fS1jYXJnby0ke3sgaGFzaEZpbGVzKCcq Ki9DYXJnby5sb2NrJykgfX0KLS0gICAgICAtIG5hbWU6IFNldHVwCi0tICAgICAgICBpZjogJHt7 IGlucHV0cy5zZXR1cF9zY3JpcHQgIT0gJycgfX0KLS0gICAgICAgIHJ1bjogJHt7IGlucHV0cy5z ZXR1cF9zY3JpcHQgfX0KLS0gICAgICAgIGVudjoKLS0gICAgICAgICAgVEFSR0VUOiAke3sgaW5w dXRzLnRhcmdldCB9fQotLSAgICAgICAgICBSVVNURkxBR1M6ICR7eyBpbnB1dHMucnVzdGZsYWdz IH19Ci0tICAgICAgICAgIE5PUlVOOiAke3sgaW5wdXRzLm5vcnVuIH19Ci0tICAgICAgICAgIFZF UklGWTogJHt7IGlucHV0cy52ZXJpZnkgfX0KLS0gICAgICAgICAgRkVBVFVSRVM6ICR7eyBpbnB1 dHMuZmVhdHVyZXMgfX0KLS0gICAgICAtIG5hbWU6IFJ1biBDSSBTY3JpcHQKLS0gICAgICAgIHRp bWVvdXQtbWludXRlczogMzAKLS0gICAgICAgIHJ1bjogJHt7IGlucHV0cy5zY3JpcHQgfX0KLS0g ICAgICAgIGVudjoKLS0gICAgICAgICAgVEFSR0VUOiAke3sgaW5wdXRzLnRhcmdldCB9fQotLSAg ICAgICAgICBSVVNURkxBR1M6ICR7eyBpbnB1dHMucnVzdGZsYWdzIH19Ci0tICAgICAgICAgIE5P UlVOOiAke3sgaW5wdXRzLm5vcnVuIH19Ci0tICAgICAgICAgIFZFUklGWTogJHt7IGlucHV0cy52 ZXJpZnkgfX0KLS0gICAgICAgICAgRkVBVFVSRVM6ICR7eyBpbnB1dHMuZmVhdHVyZXMgfX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy50cmF2aXMueW1sIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8udHJhdmlzLnltbAotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC8udHJhdmlzLnltbAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8udHJhdmlzLnltbAkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjEyICswLDAgQEAKLS1s YW5ndWFnZTogcnVzdAotLXJ1c3Q6IG5pZ2h0bHkKLS1vczogbGludXgKLS1kaXN0OiBmb2NhbAot LQotLXN0YWdlczoKLS0gIC0gdG9vbHMKLS0gIC0gYnVpbGQtdGVzdC12ZXJpZnkgIyBQYXNzZXMg ZnVsbCB0ZXN0IHN1aXRlLCBwZXJtaXQgbm8gcmVncmVzc2lvbnMgKHVubGVzcyBpdCdzIHJ1c3R1 cCA6LykKLS0gIC0gMzJiaXQtdGllcjEKLS0gIC0gNjRiaXQtdGllcjIKLS0gIC0gMzJiaXQtdGll cjIKLS0KLS1qb2JzOgotLSAgZmFzdF9maW5pc2g6IHRydWUKLS0gIGluY2x1ZGU6Ci0tICAgICMg QW5kcm9pZDoKLS0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtbGludXgtYW5kcm9pZAotLSAgICAg IG5hbWU6ICJ4ODZfNjQtdW5rbm93bi1saW51eC1hbmRyb2lkICsgU1NFMiIKLS0gICAgICBzdGFn ZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBlbnY6IFRBUkdFVD1hcm0tbGludXgtYW5kcm9p ZGVhYmkKLS0gICAgICBuYW1lOiAiYXJtLWxpbnV4LWFuZHJvaWRlYWJpIgotLSAgICAgIHN0YWdl OiBidWlsZC10ZXN0LXZlcmlmeQotLSAgICAtIG5hbWU6ICJhYXJjaDY0LXVua25vd24tbGludXgt YW5kcm9pZCArIE5FT04iCi0tICAgICAgZW52OiBUQVJHRVQ9YWFyY2g2NC1saW51eC1hbmRyb2lk IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K25lb24iCi0tICAgICAgc3RhZ2U6IGJ1aWxk LXRlc3QtdmVyaWZ5Ci0tICAgIC0gZW52OiBUQVJHRVQ9InRodW1idjduZW9uLWxpbnV4LWFuZHJv aWRlYWJpIgotLSAgICAgIG5hbWU6ICJ0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaSIKLS0g ICAgICBzdGFnZTogMzJiaXQtdGllcjIKLS0gICAgIyBMaW51eDoKLS0gICAgLSBlbnY6IFRBUkdF VD1pNTg2LXVua25vd24tbGludXgtZ251Ci0tICAgICAgbmFtZTogImk1ODYtdW5rbm93bi1saW51 eC1nbnUiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCi0tICAgIC0gZW52OiBUQVJHRVQ9aTU4 Ni11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2UiCi0t ICAgICAgbmFtZTogImk1ODYtdW5rbm93bi1saW51eC1nbnUgKyBTU0UiCi0tICAgICAgc3RhZ2U6 IDMyYml0LXRpZXIyCi0tICAgIC0gZW52OiBUQVJHRVQ9aTU4Ni11bmtub3duLWxpbnV4LWdudSBS VVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2UyIgotLSAgICAgIG5hbWU6ICJpNTg2LXVu a25vd24tbGludXgtZ251ICsgU1NFMiIKLS0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKLS0gICAg LSBlbnY6IFRBUkdFVD1pNjg2LXVua25vd24tbGludXgtZ251Ci0tICAgICAgbmFtZTogImk2ODYt dW5rbm93bi1saW51eC1nbnUgKyBTU0UyIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMQotLSAg ICAtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJn ZXQtZmVhdHVyZT0rc3NlNC4yIgotLSAgICAgIG5hbWU6ICJpNjg2LXVua25vd24tbGludXgtZ251 ICsgU1NFNC4yIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMQotLSAgICAtIGVudjogVEFSR0VU PWk2ODYtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4 MiIKLS0gICAgICBuYW1lOiAiaTY4Ni11bmtub3duLWxpbnV4LWdudSArIEFWWDIiCi0tICAgICAg c3RhZ2U6IDMyYml0LXRpZXIxCi0tICAgIC0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24tbGlu dXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMiIKLS0gICAgICBuYW1l OiAieDg2XzY0LXVua25vd24tbGludXgtZ251ICsgU1NFNC4yIgotLSAgICAgIHN0YWdlOiBidWls ZC10ZXN0LXZlcmlmeQotLSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLWxpbnV4LWdu dSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSthdngyIgotLSAgICAgIG5hbWU6ICJ4ODZf NjQtdW5rbm93bi1saW51eC1nbnUgKyBBVlgyIgotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZl cmlmeQotLSAgICAtIGVudjogVEFSR0VUPWFybS11bmtub3duLWxpbnV4LWdudWVhYmloZgotLSAg ICAgIG5hbWU6ICJhcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYiCi0tICAgICAgc3RhZ2U6IGJ1 aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gZW52OiBUQVJHRVQ9YXJtdjctdW5rbm93bi1saW51eC1n bnVlYWJpaGYKLS0gICAgICBuYW1lOiAiYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYiCi0t ICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gZW52OiBUQVJHRVQ9YXJtdjct dW5rbm93bi1saW51eC1nbnVlYWJpaGYgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rbmVv biIKLS0gICAgICBuYW1lOiAiYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYgKyBORU9OIgot LSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAgICAtIGVudjogVEFSR0VUPSJ0aHVt YnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZiIKLS0gICAgICBuYW1lOiAidGh1bWJ2N25l b24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCi0t ICAgIC0gbmFtZTogImFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUgKyBORU9OIgotLSAgICAgIGVu djogVEFSR0VUPWFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJnZXQt ZmVhdHVyZT0rbmVvbiIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBl bnY6IFRBUkdFVD1taXBzLXVua25vd24tbGludXgtZ251Ci0tICAgICAgbmFtZTogIm1pcHMtdW5r bm93bi1saW51eC1nbnUiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCi0tICAgIC0gZW52OiBU QVJHRVQ9bWlwc2VsLXVua25vd24tbGludXgtbXVzbAotLSAgICAgIG5hbWU6ICJtaXBzZWwtdW5r bm93bi1saW51eC1tdXNsIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAtIGVudjog VEFSR0VUPW1pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0Ci0tICAgICAgbmFtZTogIm1pcHM2 NC11bmtub3duLWxpbnV4LWdudWFiaTY0IgotLSAgICAgIHN0YWdlOiA2NGJpdC10aWVyMgotLSAg ICAtIGVudjogVEFSR0VUPW1pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQKLS0gICAgICBu YW1lOiAibWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NCIKLS0gICAgICBzdGFnZTogNjRi aXQtdGllcjIKLS0gICAgICAjIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE4Ci0tICAgICAgIyBlbnY6IFRBUkdFVD1taXBzNjRl bC11bmtub3duLWxpbnV4LWdudWFiaTY0IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K21z YSAtQyB0YXJnZXQtY3B1PW1pcHM2NHI2IgotLSAgICAtIGVudjogVEFSR0VUPXBvd2VycGMtdW5r bm93bi1saW51eC1nbnUKLS0gICAgICBuYW1lOiAicG93ZXJwYy11bmtub3duLWxpbnV4LWdudSIK LS0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKLS0gICAgLSBlbnY6IFRBUkdFVD1wb3dlcnBjNjQt dW5rbm93bi1saW51eC1nbnUKLS0gICAgICBuYW1lOiAicG93ZXJwYzY0LXVua25vd24tbGludXgt Z251IgotLSAgICAgIHN0YWdlOiA2NGJpdC10aWVyMgotLSAgICAtIG5hbWU6ICJwb3dlcnBjNjRs ZS11bmtub3duLWxpbnV4LWdudSIKLS0gICAgICBlbnY6IFRBUkdFVD1wb3dlcnBjNjRsZS11bmtu b3duLWxpbnV4LWdudQotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAgICAtIG5h bWU6ICJwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSArIEFMVElWRUMiCi0tICAgICAgZW52 OiBUQVJHRVQ9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJn ZXQtZmVhdHVyZT0rYWx0aXZlYyIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0g ICAgLSBuYW1lOiAicG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgKyBWU1giCi0tICAgICAg ZW52OiBUQVJHRVQ9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0 YXJnZXQtZmVhdHVyZT0rdnN4IgotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAg ICAtIG5hbWU6ICJzMzkweC11bmtub3duLWxpbnV4LWdudSIKLS0gICAgICBlbnY6IFRBUkdFVD1z MzkweC11bmtub3duLWxpbnV4LWdudQotLSAgICAgIHN0YWdlOiA2NGJpdC10aWVyMgotLSAgICAt IGVudjogVEFSR0VUPXNwYXJjNjQtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBuYW1lOiAic3Bh cmM2NC11bmtub3duLWxpbnV4LWdudSIKLS0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKLS0gICAg IyBXZWJBc3NlbWJseToKLS0gICAgLSBlbnY6IFRBUkdFVD13YXNtMzItdW5rbm93bi11bmtub3du Ci0tICAgICAgbmFtZTogIndhc20zMi11bmtub3duLXVua25vd24iCi0tICAgICAgc3RhZ2U6IDMy Yml0LXRpZXIyCi0tICAgICMgTWFjT1NYOgotLSAgICAtIG9zOiBvc3gKLS0gICAgICBlbnY6IFRB UkdFVD14ODZfNjQtYXBwbGUtZGFyd2luIFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3Nz ZTQuMiIKLS0gICAgICBuYW1lOiAieDg2XzY0LWFwcGxlLWRhcndpbiArIFNTRTQuMiIKLS0gICAg ICBpbnN0YWxsOiB0cnVlCi0tICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgICBvc3hfaW1h Z2U6IHhjb2RlMTAKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgICAjIFRy YXZpcy1DSSBPU1ggYnVpbGQgYm90cyBkbyBub3Qgc3VwcG9ydCBBVlgyOgotLSAgICAtIG9zOiBv c3gKLS0gICAgICBlbnY6IFRBUkdFVD14ODZfNjQtYXBwbGUtZGFyd2luIFJVU1RGTEFHUz0iLUMg dGFyZ2V0LWZlYXR1cmU9K2F2eCIKLS0gICAgICBuYW1lOiAieDg2XzY0LWFwcGxlLWRhcndpbiAr IEFWWCIKLS0gICAgICBpbnN0YWxsOiB0cnVlCi0tICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKLS0g ICAgICBvc3hfaW1hZ2U6IHhjb2RlMTAKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkK LS0gICAgIyAqQlNEczoKLS0gICAgIy0gZW52OiBUQVJHRVQ9aTY4Ni11bmtub3duLWZyZWVic2Qg Tk9SVU49MQotLSAgICAjICBzY3JpcHQ6IGNpL3J1bi5zaAotLSAgICAjLSBlbnY6IFRBUkdFVD14 ODZfNjQtdW5rbm93bi1mcmVlYnNkIE5PUlVOPTEKLS0gICAgIyAgc2NyaXB0OiBjaS9ydW4uc2gK LS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24tbmV0YnNkIE5PUlVOPTEKLS0gICAg IyAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgIyBTb2xhcmlzOgotLSAgICAjLSBlbnY6IFRBUkdF VD14ODZfNjQtc3VuLXNvbGFyaXMgTk9SVU49MQotLSAgICAjICBzY3JpcHQ6IGNpL3J1bi5zaAot LSAgICAjIGlPUzoKLS0gICAgLSBvczogb3N4Ci0tICAgICAgZW52OiBUQVJHRVQ9eDg2XzY0LWFw cGxlLWlvcwotLSAgICAgIG5hbWU6ICJ4ODZfNjQtYXBwbGUtaW9zICsgU1NFMiIKLS0gICAgICBz Y3JpcHQ6IGNpL3J1bi5zaAotLSAgICAgIG9zeF9pbWFnZTogeGNvZGU5LjQKLS0gICAgICBzdGFn ZTogNjRiaXQtdGllcjIKLS0gICAgLSBuYW1lOiAiYWFyY2g2NC1hcHBsZS1pb3MgKyBORU9OIgot LSAgICAgIGVudjogVEFSR0VUPWFhcmNoNjQtYXBwbGUtaW9zIFJVU1RGTEFHUz0iLUMgdGFyZ2V0 LWZlYXR1cmU9K25lb24iCi0tICAgICAgb3M6IG9zeAotLSAgICAgIG9zeF9pbWFnZTogeGNvZGU5 LjQKLS0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAotLSAgICAgIHN0YWdlOiA2NGJpdC10aWVyMgot LSAgICAjIEJFTkNITUFSS1M6Ci0tICAgIC0gbmFtZTogIkJlbmNobWFya3MgLSB4ODZfNjQtdW5r bm93bi1saW51eC1nbnUiCi0tICAgICAgaW5zdGFsbDogVEFSR0VUPXg4Nl82NC11bmtub3duLWxp bnV4LWdudSAuL2NpL3NldHVwX2JlbmNobWFya3Muc2gKLS0gICAgICAjIEZJWE1FOiBVc2UgYGNv cmVfYXJjaCxzbGVlZi1zeXNgIGZlYXR1cmVzIG9uY2UgdGhleSB3b3JrcyBhZ2FpbgotLSAgICAg IHNjcmlwdDogUEFUSD0kKHB3ZCk6JFBBVEggTk9SVU49MSBWRVJJRlk9MSBGRUFUVVJFUz1pc3Bj IGNpL2JlbmNobWFyay5zaAotLSAgICAgIHN0YWdlOiB0b29scwotLSAgICAtIG5hbWU6ICJCZW5j aG1hcmtzIC0geDg2XzY0LWFwcGxlLWRhcndpbiIKLS0gICAgICBpbnN0YWxsOiBUQVJHRVQ9eDg2 XzY0LWFwcGxlLWRhcndpbiAuL2NpL3NldHVwX2JlbmNobWFya3Muc2gKLS0gICAgICAjIEZJWE1F OiBVc2UgYGNvcmVfYXJjaCxzbGVlZi1zeXNgIGZlYXR1cmVzIG9uY2UgdGhleSB3b3JrcyBhZ2Fp bgotLSAgICAgIHNjcmlwdDogUEFUSD0kKHB3ZCk6JFBBVEggTk9SVU49MSBWRVJJRlk9MSBGRUFU VVJFUz1pc3BjIGNpL2JlbmNobWFyay5zaAotLSAgICAgIG9zOiBvc3gKLS0gICAgICBvc3hfaW1h Z2U6IHhjb2RlOS40Ci0tICAgICAgc3RhZ2U6IHRvb2xzCi0tICAgICMgVE9PTFM6Ci0tICAgIC0g bmFtZTogIkRvY3VtZW50YXRpb24iCi0tICAgICAgYmVmb3JlX2luc3RhbGw6Ci0tICAgICAgICAt IHN1ZG8gYWRkLWFwdC1yZXBvc2l0b3J5IC15IHBwYTpkZWFkc25ha2VzL3BwYQotLSAgICAgICAg LSBzdWRvIGFwdC1nZXQgdXBkYXRlIC15Ci0tICAgICAgICAtIHN1ZG8gYXB0LWdldCBpbnN0YWxs IC15IHB5dGhvbjMuOQotLSAgICAgIGluc3RhbGw6Ci0tICAgICAgICAtIGNhcmdvIGluc3RhbGwg bWRib29rCi0tICAgICAgc2NyaXB0OiBjaS9kb3guc2gKLS0gICAgICBzdGFnZTogdG9vbHMKLS0g ICAgLSBuYW1lOiAicnVzdGZtdCIKLS0gICAgICBpbnN0YWxsOiB0cnVlCi0tICAgICAgc2NyaXB0 OiB8Ci0tICAgICAgICBydXN0dXAgdG9vbGNoYWluIGluc3RhbGwgbmlnaHRseSAtYyBydXN0Zm10 IC0tYWxsb3ctZG93bmdyYWRlCi0tICAgICAgICBjaS9hbGwuc2ggY2hlY2tfZm10IHx8IHRydWUK LS0gICAgICBzdGFnZTogdG9vbHMKLS0KLS0gIGFsbG93X2ZhaWx1cmVzOgotLSAgICAjIEZJWE1F OiBJU1BDIGNhbm5vdCBiZSBmb3VuZD8KLS0gICAgLSBuYW1lOiAiQmVuY2htYXJrcyAtIHg4Nl82 NC1hcHBsZS1kYXJ3aW4iCi0tICAgICMgRklYTUU6IGk2ODYgZmFpbHMgaW4gaW5saW5pbmcsIGFw cGFyZW50bHkKLS0gICAgLSBzdGFnZTogMzJiaXQtdGllcjEKLS0gICAgIy0gZW52OiBUQVJHRVQ9 aTY4Ni11bmtub3duLWZyZWVic2QgTk9SVU49MQotLSAgICAjLSBlbnY6IFRBUkdFVD14ODZfNjQt dW5rbm93bi1mcmVlYnNkIE5PUlVOPTEKLS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25v d24tbmV0YnNkIE5PUlVOPTEKLS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXN1bi1zb2xhcmlz IE5PUlVOPTEKLS0KLS0gICAgIyBGSVhNRTogVEJECi0tICAgIC0gc3RhZ2U6IDY0Yml0LXRpZXIy Ci0tICAgIC0gc3RhZ2U6IDMyYml0LXRpZXIyCi0tCi0tICAgICMgRklYTUU6IGlPUwotLSAgICAj IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMv MjYKLS0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtYXBwbGUtaW9zCi0tICAgICMgSXMgdGhpcyBy ZWxhdGVkIHRvIHRoZSBhYm92ZT8gTXlzdGVyaW91cyB0ZXN0IGZhaWx1cmUKLS0gICAgLSBuYW1l OiAiYWFyY2g2NC1hcHBsZS1pb3MgKyBORU9OIgotLQotLWluc3RhbGw6IHRyYXZpc19yZXRyeSBy dXN0dXAgdGFyZ2V0IGFkZCAkVEFSR0VUCi0tYmVmb3JlX3NjcmlwdDogY2FyZ28gZ2VuZXJhdGUt bG9ja2ZpbGUKLS1zY3JpcHQ6IHRyYXZpc193YWl0IDUwIGNpL3J1bi1kb2NrZXIuc2gKLS1hZnRl cl9zY3JpcHQ6IHNsZWVwIDUKLS0KLS1lbnY6Ci0tICBnbG9iYWw6Ci0tICAgIHNlY3VyZTogImxQ SHY3czYrQXhRWU5hRm5jeWNWRlF0KytZMWFzUW1NaE9pa1FVMXp0bFA4Q0s3K2huMm05OGNnL2V1 T0p5eklPYjJpSjNaWDRjR1prenc0bGM1OU1RQkJ5YjFHdERiYXpRb1VPelZEYlZmZTlCREQyZjhK Vm9JRmgxQ01malBLUTdHZy9ySnFXbHdyVWxTZDVHTnhQQ3V0S2pZN3FaaEp1UjZTUWJKamxXYUdO MlZkNGZWQ3pLWHo4ZkhSWGdNRVpTK2QrQ1I0TnNya2I4M0ozWjRzNWtTZEptaFl4SjYxQVdqdXpK VndVaDRsMy9IRVlsU0w1WFhwdWg1UjJpN1cxNmgxUGxOZGFUVWdrWmxpMWxIek84KzZROEx6WDkr WGlMSUVWWDlsdzNBMk5kSUtHejhFLys3UXM1b1lPa3dZaGpST3NEUXhJSzd4a1NNMzBiUXVON2N3 TUJ5YkFWSXlPUEprcVhRMWRReXA4M0tTZHNPajdKTXlERFJ2Y0VETEk2ZWhSbG01RWNkSDdZclJl dWJvTjgxaVVvMFNhN1ZzdVVtZ2o1aGpFUkN0OXIzMGY5YVd1aXRBQmFpN3ZLUnRqZ2xnN1NwNUNy RVZQQTRQUXM2UHFLQ0NSb2dvZ2diWEovWjVEeXcvUlphWFBlTlI5K3FJS04xVmptOUdldzFzUk4y SksvMyt2WFRLdHlKWEgvdUJ4Z0p0NGpRbGJ1U2hPSnVGK0JTZlRGODhzTWU2N2EvMzU3U1NPSWI0 SmthQ3lkMGZsRENXWUU4NTc2a2FIUGxWVk1UMnBlWGVlMExlUlhtMWUxM25HM05hMHQzTFMvb3JK TFBIT1NoTlFHb0RqN3FBUDVhRUtnZ1J5YTg5NkpHd3R2bGFCSEhUbVNRaDY1RzdjeU5FclpvPSIK LS1icmFuY2hlczoKLS0gIG9ubHk6Ci0tICAgIC0gc3RhZ2luZyAjIGJvcnMgcisKLS0gICAgLSB0 cnlpbmcgICMgYm9ycyB0cnkKLS0gICAgLSBtYXN0ZXIKLS1ub3RpZmljYXRpb25zOgotLSAgZW1h aWw6Ci0tICAgIG9uX3N1Y2Nlc3M6IG5ldmVyCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9D YXJnby50b21sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0NhcmdvLnRvbWwJ MjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvQ2FyZ28udG9tbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsODAgKzAsMCBAQAotLSMgVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VO RVJBVEVEIEJZIENBUkdPCi0tIwotLSMgV2hlbiB1cGxvYWRpbmcgY3JhdGVzIHRvIHRoZSByZWdp c3RyeSBDYXJnbyB3aWxsIGF1dG9tYXRpY2FsbHkKLS0jICJub3JtYWxpemUiIENhcmdvLnRvbWwg ZmlsZXMgZm9yIG1heGltYWwgY29tcGF0aWJpbGl0eQotLSMgd2l0aCBhbGwgdmVyc2lvbnMgb2Yg Q2FyZ28gYW5kIGFsc28gcmV3cml0ZSBgcGF0aGAgZGVwZW5kZW5jaWVzCi0tIyB0byByZWdpc3Ry eSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRlbmNpZXMuCi0tIwotLSMgSWYgeW91IGFyZSByZWFk aW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0IHRoZSBvcmlnaW5hbCBDYXJnby50b21sCi0tIyB3 aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVyZW50IChhbmQgbXVjaCBtb3JlIHJlYXNvbmFibGUp LgotLSMgU2VlIENhcmdvLnRvbWwub3JpZyBmb3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgotLQot LVtwYWNrYWdlXQotLWVkaXRpb24gPSAiMjAxOCIKLS1uYW1lID0gInBhY2tlZF9zaW1kIgotLXZl cnNpb24gPSAiMC4zLjkiCi0tYnVpbGQgPSAiYnVpbGQucnMiCi0tZGVzY3JpcHRpb24gPSAiUG9y dGFibGUgUGFja2VkIFNJTUQgdmVjdG9ycyIKLS1ob21lcGFnZSA9ICJodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kIgotLWRvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2Nz LnJzL2NyYXRlL3BhY2tlZF9zaW1kLyIKLS1yZWFkbWUgPSAiUkVBRE1FLm1kIgotLWtleXdvcmRz ID0gWwotLSAgICAic2ltZCIsCi0tICAgICJ2ZWN0b3IiLAotLSAgICAicG9ydGFiaWxpdHkiLAot LV0KLS1jYXRlZ29yaWVzID0gWwotLSAgICAiaGFyZHdhcmUtc3VwcG9ydCIsCi0tICAgICJjb25j dXJyZW5jeSIsCi0tICAgICJuby1zdGQiLAotLSAgICAiZGF0YS1zdHJ1Y3R1cmVzIiwKLS1dCi0t bGljZW5zZSA9ICJNSVQgT1IgQXBhY2hlLTIuMCIKLS1yZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQiCi0tCi0tW3BhY2thZ2UubWV0YWRhdGEuZG9j cy5yc10KLS1mZWF0dXJlcyA9IFsiaW50b19iaXRzIl0KLS1ydXN0ZG9jLWFyZ3MgPSBbCi0tICAg ICItLWNmZyIsCi0tICAgICJkb2NfY2ZnIiwKLS1dCi0tCi0tW2RlcGVuZGVuY2llc10KLS1jZmct aWYgPSAiMS4wLjAiCi0tCi0tW2RlcGVuZGVuY2llcy5jb3JlX2FyY2hdCi0tdmVyc2lvbiA9ICIw LjEuNSIKLS1vcHRpb25hbCA9IHRydWUKLS0KLS1bZGVwZW5kZW5jaWVzLm51bS10cmFpdHNdCi0t dmVyc2lvbiA9ICIwLjIuMTQiCi0tZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlCi0tCi0tW2Rldi1k ZXBlbmRlbmNpZXNdCi0tcGFzdGUgPSAiXjEiCi0tCi0tW2Rldi1kZXBlbmRlbmNpZXMuYXJyYXl2 ZWNdCi0tdmVyc2lvbiA9ICJeMC41IgotLWRlZmF1bHQtZmVhdHVyZXMgPSBmYWxzZQotLQotLVtm ZWF0dXJlc10KLS1kZWZhdWx0ID0gW10KLS1pbnRvX2JpdHMgPSBbXQotLWxpYmNvcmVfbmVvbiA9 IFtdCi0tCi0tW3RhcmdldC4iY2ZnKHRhcmdldF9hcmNoID0gXCJ4ODZfNjRcIikiLmRlcGVuZGVu Y2llcy5zbGVlZi1zeXNdCi0tdmVyc2lvbiA9ICIwLjEuMiIKLS1vcHRpb25hbCA9IHRydWUKLS0K LS1bdGFyZ2V0Lndhc20zMi11bmtub3duLXVua25vd24uZGV2LWRlcGVuZGVuY2llc10KLS13YXNt LWJpbmRnZW4gPSAiPTAuMi44NyIKLS13YXNtLWJpbmRnZW4tdGVzdCA9ICI9MC4zLjM3IgotLQot LVtiYWRnZXMuaXMtaXQtbWFpbnRhaW5lZC1pc3N1ZS1yZXNvbHV0aW9uXQotLXJlcG9zaXRvcnkg PSAicnVzdC1sYW5nL3BhY2tlZF9zaW1kIgotLQotLVtiYWRnZXMuaXMtaXQtbWFpbnRhaW5lZC1v cGVuLWlzc3Vlc10KLS1yZXBvc2l0b3J5ID0gInJ1c3QtbGFuZy9wYWNrZWRfc2ltZCIKLS0KLS1b YmFkZ2VzLm1haW50ZW5hbmNlXQotLXN0YXR1cyA9ICJleHBlcmltZW50YWwiCi1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLUFQQUNIRSBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1BUEFDSEUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvTElDRU5TRS1BUEFDSEUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1BUEFD SEUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIwMSArMCwwIEBA Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKLS0gICAgICAg ICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0Ci0tICAgICAgICAgICAg ICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLwotLQotLVRFUk1TIEFORCBD T05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgotLQotLTEu IERlZmluaXRpb25zLgotLQotLSAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCi0tICAgYW5kIGRpc3RyaWJ1dGlvbiBh cyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCi0tCi0t ICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1 dGhvcml6ZWQgYnkKLS0gICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhl IExpY2Vuc2UuCi0tCi0tICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2Yg dGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAotLSAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJv bCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KLS0gICBjb250cm9sIHdp dGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAotLSAg ICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNh dXNlIHRoZQotLSAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0 aGVyIGJ5IGNvbnRyYWN0IG9yCi0tICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBm aWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCi0tICAgb3V0c3RhbmRpbmcgc2hhcmVz LCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KLS0KLS0gICAi WW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5 Ci0tICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KLS0K LS0gICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtp bmcgbW9kaWZpY2F0aW9ucywKLS0gICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3 YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCi0tICAgc291cmNlLCBhbmQgY29uZmlndXJh dGlvbiBmaWxlcy4KLS0KLS0gICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVz dWx0aW5nIGZyb20gbWVjaGFuaWNhbAotLSAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9u IG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKLS0gICBub3QgbGltaXRlZCB0byBjb21w aWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCi0tICAgYW5kIGNvbnZl cnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgotLQotLSAgICJXb3JrIiBzaGFsbCBtZWFuIHRo ZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCi0tICAgT2JqZWN0IGZv cm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQot LSAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0 aGUgd29yawotLSAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxv dykuCi0tCi0tICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRo ZXIgaW4gU291cmNlIG9yIE9iamVjdAotLSAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRl cml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKLS0gICBlZGl0b3JpYWwgcmV2 aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25z Ci0tICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNo aXAuIEZvciB0aGUgcHVycG9zZXMKLS0gICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29y a3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KLS0gICBzZXBhcmFibGUgZnJv bSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2Ys Ci0tICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KLS0KLS0gICAiQ29u dHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZwot LSAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9u cyBvciBhZGRpdGlvbnMKLS0gICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVy ZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKLS0gICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9y IGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCi0tICAgb3IgYnkg YW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVo YWxmIG9mCi0tICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlz IGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCi0tICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25p YywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAotLSAgIHRvIHRoZSBMaWNl bnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRv Ci0tICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBj b2RlIGNvbnRyb2wgc3lzdGVtcywKLS0gICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0 IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQotLSAgIExpY2Vuc29yIGZvciB0 aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAotLSAg IGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Ig b3RoZXJ3aXNlCi0tICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3du ZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCi0tCi0tICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBt ZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLS0gICBvbiBi ZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNv ciBhbmQKLS0gICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KLS0K LS0yLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5k IGNvbmRpdGlvbnMgb2YKLS0gICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5 IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0tICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZl LCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLS0gICBjb3B5cmlnaHQgbGlj ZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKLS0gICBwdWJs aWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0 ZSB0aGUKLS0gICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9i amVjdCBmb3JtLgotLQotLTMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRo ZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotLSAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmli dXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKLS0gICB3b3JsZHdpZGUsIG5v bi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotLSAgIChl eGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwg aGF2ZSBtYWRlLAotLSAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3Ro ZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAotLSAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVz IG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCi0tICAgYnkgc3VjaCBDb250 cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKLS0gICBDb250 cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9u KHMpCi0tICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMg c3VibWl0dGVkLiBJZiBZb3UKLS0gICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5z dCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotLSAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFp bSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKLS0gICBvciBhIENvbnRyaWJ1 dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAotLSAg IG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGlj ZW5zZXMKLS0gICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29y ayBzaGFsbCB0ZXJtaW5hdGUKLS0gICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMg ZmlsZWQuCi0tCi0tNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0 cmlidXRlIGNvcGllcyBvZiB0aGUKLS0gICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVv ZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKLS0gICBtb2RpZmljYXRpb25zLCBhbmQg aW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQotLSAgIG1lZXQgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgotLQotLSAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhl ciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCi0tICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBj b3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCi0tCi0tICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBt b2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwotLSAgICAgICBzdGF0aW5n IHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKLS0KLS0gICAoYykgWW91IG11c3QgcmV0 YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKLS0gICAgICAg dGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFu ZAotLSAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRo ZSBXb3JrLAotLSAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0 YWluIHRvIGFueSBwYXJ0IG9mCi0tICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKLS0K LS0gICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFy dCBvZiBpdHMKLS0gICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtz IHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAotLSAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29w eSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKLS0gICAgICAgd2l0aGluIHN1 Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90Ci0tICAg ICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxl YXN0IG9uZQotLSAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNF IHRleHQgZmlsZSBkaXN0cmlidXRlZAotLSAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZl IFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCi0tICAgICAgIGRvY3VtZW50YXRpb24s IGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAotLSAgICAg ICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYg YW5kCi0tICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBh cHBlYXIuIFRoZSBjb250ZW50cwotLSAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBp bmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCi0tICAgICAgIGRvIG5vdCBtb2RpZnkgdGhl IExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCi0tICAgICAgIG5vdGlj ZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRl Ci0tICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBX b3JrLCBwcm92aWRlZAotLSAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBu b3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKLS0gICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNl bnNlLgotLQotLSAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8g WW91ciBtb2RpZmljYXRpb25zIGFuZAotLSAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlm ZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKLS0gICBmb3IgdXNlLCByZXByb2R1 Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCi0tICAgZm9y IGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2Us Ci0tICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lz ZSBjb21wbGllcyB3aXRoCi0tICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5z ZS4KLS0KLS01LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGlj aXRseSBzdGF0ZSBvdGhlcndpc2UsCi0tICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5 IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCi0tICAgYnkgWW91IHRvIHRoZSBM aWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLS0gICB0 aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4K LS0gICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBl cnNlZGUgb3IgbW9kaWZ5Ci0tICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFn cmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKLS0gICB3aXRoIExpY2Vuc29yIHJlZ2FyZGlu ZyBzdWNoIENvbnRyaWJ1dGlvbnMuCi0tCi0tNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRv ZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQotLSAgIG5hbWVzLCB0cmFk ZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwK LS0gICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2Ug aW4gZGVzY3JpYmluZyB0aGUKLS0gICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5n IHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KLS0KLS03LiBEaXNjbGFpbWVyIG9mIFdh cnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKLS0gICBhZ3JlZWQg dG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCi0tICAg Q29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFT SVMsCi0tICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVp dGhlciBleHByZXNzIG9yCi0tICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRp b24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKLS0gICBvZiBUSVRMRSwgTk9OLUlORlJJ TkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCi0tICAgUEFSVElDVUxB UiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhl Ci0tICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3Jr IGFuZCBhc3N1bWUgYW55Ci0tICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ug b2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgotLQotLTguIExpbWl0YXRpb24gb2Yg TGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAotLSAgIHdo ZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3 aXNlLAotLSAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxp YmVyYXRlIGFuZCBncm9zc2x5Ci0tICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3 cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKLS0gICBsaWFibGUgdG8gWW91IGZvciBk YW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCi0tICAgaW5j aWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2lu ZyBhcyBhCi0tICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBp bmFiaWxpdHkgdG8gdXNlIHRoZQotLSAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQg dG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKLS0gICB3b3JrIHN0b3BwYWdlLCBjb21w dXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAotLSAgIG90aGVyIGNv bW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKLS0g ICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCi0t Ci0tOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSBy ZWRpc3RyaWJ1dGluZwotLSAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwg WW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCi0tICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2Vw dGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKLS0gICBvciBvdGhlciBsaWFi aWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcwotLSAg IExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5 IGFjdCBvbmx5Ci0tICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9u c2liaWxpdHksIG5vdCBvbiBiZWhhbGYKLS0gICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFu ZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCi0tICAgZGVmZW5kLCBhbmQgaG9sZCBl YWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5Ci0tICAgaW5jdXJyZWQg YnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNv bgotLSAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwg bGlhYmlsaXR5LgotLQotLUVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwotLQotLUFQUEVORElY OiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KLS0KLS0gICBU byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxv d2luZwotLSAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5 IGJyYWNrZXRzICJbXSIKLS0gICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGlu Zm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQotLSAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBz aG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCi0tICAgY29tbWVudCBzeW50YXgg Zm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCi0tICAgZmlsZSBv ciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRo ZQotLSAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVh c2llcgotLSAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KLS0K LS1Db3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KLS0KLS1MaWNlbnNl ZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsK LS15b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhl IExpY2Vuc2UuCi0tWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0tCi0t CWh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLQotLVVubGVzcyBy ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdh cmUKLS1kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAi QVMgSVMiIEJBU0lTLAotLVdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBL SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLVNlZSB0aGUgTGljZW5zZSBmb3IgdGhl IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS1saW1pdGF0aW9u cyB1bmRlciB0aGUgTGljZW5zZS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNF LU1JVAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLU1JVAkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9MSUNFTlNFLU1JVAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMjUgKzAsMCBAQAotLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgUnVzdCBQcm9qZWN0 IERldmVsb3BlcnMKLS0KLS1QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55Ci0tcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZAotLWRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8g ZGVhbCBpbiB0aGUKLS1Tb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dAotLWxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us Ci0tcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m Ci0tdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdh cmUKLS1pcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZwotLWNv bmRpdGlvbnM6Ci0tCi0tVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2UKLS1zaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zCi0tb2YgdGhlIFNvZnR3YXJlLgotLQotLVRIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GCi0tQU5ZIEtJTkQsIEVYUFJFU1MgT1Ig SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRAotLVRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQQotLVBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVAotLVNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0tQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTgotLU9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IKLS1JTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKLS1ERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9SRUFETUUubWQgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL1JFQURNRS5tZAotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9SRUFETUUubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvUkVBRE1FLm1kCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNDQgKzAsMCBAQAotLSMgYFNp bWQ8W1Q7IE5dPmAKLS0KLS0jIyBJbXBsZW1lbnRhdGlvbiBvZiBbUnVzdCBSRkMgIzIzNjY6IGBz dGQ6OnNpbWRgXVtyZmMyMzY2XQotLQotLVshW0xhdGVzdCBWZXJzaW9uXV1bY3JhdGVzLmlvXSBb IVtkb2NzXV1bbWFzdGVyX2RvY3NdCi0tCi0tKipXQVJOSU5HKio6IHRoaXMgY3JhdGUgb25seSBz dXBwb3J0cyB0aGUgbW9zdCByZWNlbnQgbmlnaHRseSBSdXN0IHRvb2xjaGFpbgotLWFuZCB3aWxs IGJlIHN1cGVyc2VkZWQgYnkgW2AjIVtmZWF0dXJlKHBvcnRhYmxlX3NpbWQpXWBdKGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvcG9ydGFibGUtc2ltZCkuCi0tCi0tIyMgRG9jdW1lbnRhdGlv bgotLQotLSogW0FQSSBkb2NzIChgbWFzdGVyYCBicmFuY2gpXVttYXN0ZXJfZG9jc10KLS0qIFtQ ZXJmb3JtYW5jZSBndWlkZV1bcGVyZl9ndWlkZV0KLS0qIFtBUEkgZG9jcyAoYGRvY3MucnNgKV1b ZG9jcy5yc10KLS0qIFtSRkMyMzY2IGBzdGQ6OnNpbWRgXVtyZmMyMzY2XTogLSBjb250YWlucyBt b3RpdmF0aW9uLCBkZXNpZ24gcmF0aW9uYWxlLAotLSAgZGlzY3Vzc2lvbiwgZXRjLgotLQotLSMj IEV4YW1wbGVzCi0tCi0tTW9zdCBvZiB0aGUgZXhhbXBsZXMgY29tZSB3aXRoIGJvdGggYSBzY2Fs YXIgYW5kIGEgdmVjdG9yaXplZCBpbXBsZW1lbnRhdGlvbi4KLS0KLS0qIFtgYW9iZW5jaGBdKGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rl ci9leGFtcGxlcy9hb2JlbmNoKQotLSogW2BmYW5ua3VjaF9yZWR1eGBdKGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9m YW5ua3VjaF9yZWR1eCkKLS0qIFtgbWF0cml4IGludmVyc2VgXShodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvbWF0cml4 X2ludmVyc2UpCi0tKiBbYG1hbmRlbGJyb3RgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n LW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvbWFuZGVsYnJvdCkKLS0q IFtgbi1ib2R5YF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL25ib2R5KQotLSogW2BvcHRpb25zX3ByaWNpbmdgXSho dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0 ZXIvZXhhbXBsZXMvb3B0aW9uc19wcmljaW5nKQotLSogW2BzcGVjdHJhbF9ub3JtYF0oaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4 YW1wbGVzL3NwZWN0cmFsX25vcm0pCi0tKiBbYHRyaWFuZ2xlIHRyYW5zZm9ybWBdKGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFt cGxlcy90cmlhbmdsZV94Zm9ybSkKLS0qIFtgc3RlbmNpbGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9zdGVuY2ls KQotLSogW2B2ZWN0b3IgZG90IHByb2R1Y3RgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n LW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvZG90X3Byb2R1Y3QpCi0t Ci0tIyMgQ2FyZ28gZmVhdHVyZXMKLS0KLS0qIGBpbnRvX2JpdHNgIChkZWZhdWx0OiBkaXNhYmxl ZCk6IGVuYWJsZXMgYEZyb21CaXRzYC9gSW50b0JpdHNgIHRyYWl0Ci0tICBpbXBsZW1lbnRhdGlv bnMgZm9yIHRoZSB2ZWN0b3IgdHlwZXMuIFRoZXNlIGFsbG93IHJlaW50ZXJwcmV0aW5nIHRoZSBi aXRzIG9mIGEKLS0gIHZlY3RvciB0eXBlIGFzIHRob3NlIG9mIGFub3RoZXIgdmVjdG9yIHR5cGUg c2FmZWx5IGJ5IGp1c3QgdXNpbmcgdGhlCi0tICBgLmludG9fYml0cygpYCBtZXRob2QuCi0tCi0t IyMgUGVyZm9ybWFuY2UKLS0KLS1UaGUgZm9sbG93aW5nIFtJU1BDXSBleGFtcGxlcyBhcmUgYWxz byBwYXJ0IG9mIGBwYWNrZWRfc2ltZGAncwotLVtgZXhhbXBsZXMvYF0oaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzLykK LS1kaXJlY3RvcnksIHdoZXJlIGBwYWNrZWRfc2ltZGArW2ByYXlvbmBdW3JheW9uXSBhcmUgdXNl ZCB0byBlbXVsYXRlIFtJU1BDXSdzCi0tU2luZ2xlLVByb2dyYW0tTXVsdGlwbGUtRGF0YSAoU1BN RCkgcHJvZ3JhbW1pbmcgbW9kZWwuIFRoZSBwZXJmb3JtYW5jZSByZXN1bHRzCi0tb24gZGlmZmVy ZW50IGhhcmR3YXJlIGlzIHNob3duIGluIHRoZSBgcmVhZG1lLm1kYCBvZiBlYWNoIGV4YW1wbGUu IFRoZSBmb2xsb3dpbmcKLS10YWJsZSBzdW1tYXJpemVzIHRoZSBwZXJmb3JtYW5jZSByYW5nZXMs IHdoZXJlIGArYCBtZWFucyBzcGVlZC11cCBhbmQgYC1gCi0tc2xvd2Rvd246Ci0tCi0tKiBgYW9i ZW5jaGA6IGBbLTEuMDJ4LCArMS41M3hdYCwKLS0qIGBzdGVuY2lsYDogYFsrMS4wNngsICsxLjcy eF1gLAotLSogYG1hbmRlbGJyb3RgOiBgWy0xLjc0eCwgKzEuMnhdYCwKLS0qIGBvcHRpb25zX3By aWNpbmdgOgotLSAgICogYGJsYWNrX3NjaG9sZXNgOiBgKzEuMHhgCi0tICAgKiBgYmlub21pYWxf cHV0YDogYCsxLjR4YAotLQotLSBXaGlsZSBTUE1EIGlzIG5vdCB0aGUgaW50ZW5kZWQgdXNlIGNh c2UgZm9yIGBwYWNrZWRfc2ltZGAsIGl0IGlzIHBvc3NpYmxlIHRvCi0tIGNvbWJpbmUgdGhlIGxp YnJhcnkgd2l0aCBbYHJheW9uYF1bcmF5b25dIHRvIHBvb3JseSBlbXVsYXRlIFtJU1BDXSdzIFNQ TUQgcHJvZ3JhbW1pbmcKLS0gbW9kZWwgaW4gUnVzdC4gV3JpdGluZyBwZXJmb3JtYW50IGNvZGUg aXMgbm90IGFzIHN0cmFpZ2h0Zm9yd2FyZCBhcyB3aXRoCi0tIFtJU1BDXSwgYnV0IHdpdGggc29t ZSBjYXJlIChlLmcuIHNlZSB0aGUgW1BlcmZvcm1hbmNlIEd1aWRlXVtwZXJmX2d1aWRlXSkgb25l Ci0tIGNhbiBlYXNpbHkgbWF0Y2ggYW5kIG9mdGVuIG91dC1wZXJmb3JtIFtJU1BDXSdzICJkZWZh dWx0IHBlcmZvcm1hbmNlIi4KLS0KLS0jIyBQbGF0Zm9ybSBzdXBwb3J0Ci0tCi0tVGhlIGZvbGxv d2luZyB0YWJsZSBkZXNjcmliZXMgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6IGBidWlsZGAgc2hv d3Mgd2hldGhlcgotLXRoZSBsaWJyYXJ5IGNvbXBpbGVzIHdpdGhvdXQgaXNzdWVzIGZvciBhIGdp dmVuIHRhcmdldCwgd2hpbGUgYHJ1bmAgc2hvd3MKLS13aGV0aGVyIHRoZSB0ZXN0IHN1aXRlIHBh c3NlcyBmb3IgYSBnaXZlbiB0YXJnZXQuCi0tCi0tfCAqKkxpbnV4KiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8Ci0tfC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS18Ci0tfCBgaTU4Ni11 bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAg fAotLXwgYGk2ODYtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICAgICB8IOKckyAgICAgICAg IHwg4pyXICAgICAgIHwKLS18IGB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICAg fCDinJMgICAgICAgICB8IOKckyAgICAgICB8Ci0tfCBgYXJtLXVua25vd24tbGludXgtZ251ZWFi aWhmYCAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAotLXwgYGFybXY3LXVua25v d24tbGludXgtZ251ZWFiaWAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKLS18 IGBhYXJjaDY0LXVua25vd24tbGludXgtZ251YCAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKc kyAgICAgICB8Ci0tfCBgcG93ZXJwYy11bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgIHwg4pyT ICAgICAgICAgfCDinJcgICAgICAgfAotLXwgYHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudWAg ICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKLS18IGBwb3dlcnBjNjRsZS11bmtu b3duLWxpbnV4LWdudWAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8Ci0tfCBgczM5 MHgtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAg ICAgfAotLXwgYHNwYXJjNjQtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICB8IOKckyAgICAg ICAgIHwg4pyXICAgICAgIHwKLS18IGB0aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmlo ZmAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8Ci0tfCAqKk1hY09TWCoqICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8Ci0tfCBgeDg2XzY0LWFwcGxl LWRhcndpbmAgICAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAotLXwg KipBbmRyb2lkKiogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqYnVpbGQqKiB8ICoqcnVu KiogfAotLXwgYHg4Nl82NC1saW51eC1hbmRyb2lkYCAgICAgICAgICAgICAgICB8IOKckyAgICAg ICAgIHwg4pyTICAgICAgIHwKLS18IGBhcm12Ny1saW51eC1hbmRyb2lkZWFiaWAgICAgICAgICAg ICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Ci0tfCBgYWFyY2g2NC1saW51eC1hbmRyb2lk YCAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAotLXwgYHRodW1idjdu ZW9uLWxpbnV4LWFuZHJvaWRlYWJpYCAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwK LS18ICoqaU9TKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAqKmJ1aWxkKiogfCAq KnJ1bioqIHwKLS18IGB4ODZfNjQtYXBwbGUtaW9zYCAgICAgICAgICAgICAgICAgICAgfCDinJcg ICAgICAgICB8IOKclyAgICAgICB8Ci0tfCBgYWFyY2g2NC1hcHBsZS1pb3NgICAgICAgICAgICAg ICAgICAgIHwg4pyXICAgICAgICAgfCDinJcgICAgICAgfAotLQotLQotLSMjIE1hY2hpbmUgY29k ZSB2ZXJpZmljYXRpb24KLS0KLS1UaGUKLS1bYHZlcmlmeS9gXShodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvdmVyaWZ5KQotLWNyYXRl IHRlc3RzIGRpc2Fzc2VtYmxlcyB0aGUgcG9ydGFibGUgcGFja2VkIHZlY3RvciBBUElzIGF0IHJ1 bi10aW1lIGFuZAotLWNvbXBhcmVzIHRoZSBnZW5lcmF0ZWQgbWFjaGluZSBjb2RlIGFnYWluc3Qg dGhlIGRlc2lyZWQgb25lIHRvIG1ha2Ugc3VyZSB0aGF0Ci0tdGhpcyBjcmF0ZSByZW1haW5zIGVm ZmljaWVudC4KLS0KLS0jIyBMaWNlbnNlCi0tCi0tVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVu ZGVyIGVpdGhlciBvZgotLQotLSogW0FwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMF0oaHR0cDov L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQotLSAgKFtMSUNFTlNFLUFQQUNI RV0oTElDRU5TRS1BUEFDSEUpKQotLQotLSogW01JVCBMaWNlbnNlXShodHRwOi8vb3BlbnNvdXJj ZS5vcmcvbGljZW5zZXMvTUlUKQotLSAgKFtMSUNFTlNFLU1JVF0oTElDRU5TRS1NSVQpKQotLQot LWF0IHlvdXIgb3B0aW9uLgotLQotLSMjIENvbnRyaWJ1dGluZwotLQotLVdlIHdlbGNvbWUgYWxs IHBlb3BsZSB3aG8gd2FudCB0byBjb250cmlidXRlLgotLVBsZWFzZSBzZWUgdGhlIFtjb250cmli dXRpbmcgaW5zdHJ1Y3Rpb25zXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLS0KLS1Db250cmlidXRp b25zIGluIGFueSBmb3JtIChpc3N1ZXMsIHB1bGwgcmVxdWVzdHMsIGV0Yy4pIHRvIHRoaXMgcHJv amVjdAotLW11c3QgYWRoZXJlIHRvIFJ1c3QncyBbQ29kZSBvZiBDb25kdWN0XS4KLS0KLS1Vbmxl c3MgeW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLCBhbnkgY29udHJpYnV0aW9uIGludGVu dGlvbmFsbHkgc3VibWl0dGVkCi0tZm9yIGluY2x1c2lvbiBpbiBgcGFja2VkX3NpbWRgIGJ5IHlv dSwgYXMgZGVmaW5lZCBpbiB0aGUgQXBhY2hlLTIuMCBsaWNlbnNlLCBzaGFsbCBiZQotLWR1YWwg bGljZW5zZWQgYXMgYWJvdmUsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0 aW9ucy4KLS0KLS1bdHJhdmlzXTogaHR0cHM6Ly90cmF2aXMtY2kuY29tL3J1c3QtbGFuZy9wYWNr ZWRfc2ltZAotLVtUcmF2aXMtQ0kgU3RhdHVzXTogaHR0cHM6Ly90cmF2aXMtY2kuY29tL3J1c3Qt bGFuZy9wYWNrZWRfc2ltZC5zdmc/YnJhbmNoPW1hc3RlcgotLVthcHB2ZXlvcl06IGh0dHBzOi8v Y2kuYXBwdmV5b3IuY29tL3Byb2plY3QvZ256bGJnL3BhY2tlZC1zaW1kCi0tW0FwcHZleW9yIFN0 YXR1c106IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvaGQ3djlk dnI0NDJoZ2RpeD9zdmc9dHJ1ZQotLVtMYXRlc3QgVmVyc2lvbl06IGh0dHBzOi8vaW1nLnNoaWVs ZHMuaW8vY3JhdGVzL3YvcGFja2VkX3NpbWQuc3ZnCi0tW2NyYXRlcy5pb106IGh0dHBzOi8vY3Jh dGVzLmlvL2NyYXRlcy9wYWNrZWRfc2ltZAotLVtkb2NzXTogaHR0cHM6Ly9kb2NzLnJzL3BhY2tl ZF9zaW1kL2JhZGdlLnN2ZwotLVtkb2NzLnJzXTogaHR0cHM6Ly9kb2NzLnJzL3BhY2tlZF9zaW1k Ci0tW21hc3Rlcl9kb2NzXTogaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIuaW8vcGFj a2VkX3NpbWQvcGFja2VkX3NpbWQvCi0tW3BlcmZfZ3VpZGVdOiBodHRwczovL3J1c3QtbGFuZy1u dXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLwotLVtyZmMyMzY2XTogaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjM2NgotLVtJU1BDXTogaHR0cHM6 Ly9pc3BjLmdpdGh1Yi5pby8KLS1bcmF5b25dOiBodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcmF5 b24KLS1bYm9vc3RfbGljZW5zZV06IGh0dHBzOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50 eHQKLS1bU0xFRUZdOiBodHRwczovL3NsZWVmLm9yZy8KLS1bc2xlZWZfc3lzXTogaHR0cHM6Ly9j cmF0ZXMuaW8vY3JhdGVzL3NsZWVmLXN5cwotLVtjb250cmlidXRpbmcgaW5zdHJ1Y3Rpb25zXTog Y29udHJpYnV0aW5nLm1kCi0tW0NvZGUgb2YgQ29uZHVjdF06IGh0dHBzOi8vd3d3LnJ1c3QtbGFu Zy5vcmcvZW4tVVMvY29uZHVjdC5odG1sCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9ib3JzLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2JvcnMu dG9tbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ib3JzLnRvbWwJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvYm9ycy50b21sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSwzICswLDAgQEAKLS1zdGF0dXMgPSBbCi0tICAgICJjb250aW51b3VzLWludGVncmF0aW9u L3RyYXZpcy1jaS9wdXNoIgotLV0KLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYnVpbGQucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2J1aWxkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2ICswLDAgQEAKLS1mbiBtYWluKCkgewotLSAgICBs ZXQgdGFyZ2V0ID0gc3RkOjplbnY6OnZhcigiVEFSR0VUIikuZXhwZWN0KCJUQVJHRVQgZW52aXJv bm1lbnQgdmFyaWFibGUgbm90IGRlZmluZWQiKTsKLS0gICAgaWYgdGFyZ2V0LmNvbnRhaW5zKCJu ZW9uIikgewotLSAgICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1saWJjb3JlX25lb24i KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2FsbC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYWxsLnNoCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FsbC5zaAkyMDI1LTA5LTA3IDE0OjMw OjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9hbGwuc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDcxICsw LDAgQEAKLS0jIS91c3IvYmluL2VudiBiYXNoCi0tIwotLSMgUGVyZm9ybXMgYW4gb3BlcmF0aW9u IG9uIGFsbCB0YXJnZXRzCi0tCi0tc2V0IC1leAotLQotLTogIiR7MT9UaGUgYWxsLnNoIHNjcmlw dCByZXF1aXJlcyBvbmUgYXJndW1lbnQufSIKLS0KLS1vcD0kMQotLQotLWNhcmdvX2NsZWFuKCkg ewotLSAgICBjYXJnbyBjbGVhbgotLX0KLS0KLS1jYXJnb19jaGVja19mbXQoKSB7Ci0tICAgIGNh cmdvIGZtdCAtLWFsbCAtLSAtLWNoZWNrCi0tfQotLQotLWNhcmdvX2ZtdCgpIHsKLS0gICAgY2Fy Z28gZm10IC0tYWxsCi0tfQotLQotLWNhcmdvX2NsaXBweSgpIHsKLS0gICAgY2FyZ28gY2xpcHB5 IC0tYWxsIC0tIC1EIGNsaXBweTo6cGVyZgotLX0KLS0KLS1DTUQ9Ii0xIgotLQotLWNhc2UgJG9w IGluCi0tICAgIGNsZWFuKikKLS0gICAgICAgIENNRD1jYXJnb19jbGVhbgotLSAgICAgICAgOzsK LS0gICAgY2hlY2tfZm10KikKLS0gICAgICAgIENNRD1jYXJnb19jaGVja19mbXQKLS0gICAgICAg IDs7Ci0tICAgIGZtdCopCi0tICAgICAgICBDTUQ9Y2FyZ29fZm10Ci0tICAgICAgICA7OwotLSAg ICBjbGlwcHkpCi0tICAgICAgICBDTUQ9Y2FyZ29fY2xpcHB5Ci0tICAgICAgICA7OwotLSAgICAq KQotLSAgICAgICAgZWNobyAiVW5rbm93biBvcGVyYXRpb246IFwiJHtvcH1cIiIKLS0gICAgICAg IGV4aXQgMQotLSAgICAgICAgOzsKLS1lc2FjCi0tCi0tZWNobyAiT3BlcmF0aW9uIGlzOiAke0NN RH0iCi0tCi0tIyBPbiBzcmMvCi0tJENNRAotLQotLSMgQ2hlY2sgZXhhbXBsZXMvCi0tZm9yIGRp ciBpbiBleGFtcGxlcy8qLwotLWRvCi0tICAgIGRpcj0ke2RpciUqL30KLS0gICAgKAotLSAgICAg ICAgY2QgIiR7ZGlyJSovfSIKLS0gICAgICAgICRDTUQKLS0gICAgKQotLWRvbmUKLS0KLS0oCi0t ICAgIGNkIHZlcmlmeS92ZXJpZnkKLS0gICAgJENNRAotLSkKLS0KLS0oCi0tICAgIGNkIG1pY3Jv X2JlbmNobWFya3MKLS0gICAgJENNRAotLSkKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2ggYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2gKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLW5kay5zaAkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRrLnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSwyMSArMCwwIEBACi0tIyEvdXNyL2Jpbi9lbnYgc2gKLS0jIENvcHlyaWdo dCAyMDE2IFRoZSBSdXN0IFByb2plY3QgRGV2ZWxvcGVycy4gU2VlIHRoZSBDT1BZUklHSFQKLS0j IGZpbGUgYXQgdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRpb24gYW5k IGF0Ci0tIyBodHRwOi8vcnVzdC1sYW5nLm9yZy9DT1BZUklHSFQuCi0tIwotLSMgTGljZW5zZWQg dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCA8TElDRU5TRS1BUEFDSEUgb3IK LS0jIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1J VCBsaWNlbnNlCi0tIyA8TElDRU5TRS1NSVQgb3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vu c2VzL01JVD4sIGF0IHlvdXIKLS0jIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVk LCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKLS0jIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2Ug dGVybXMuCi0tCi0tc2V0IC1leAotLQotLUFORFJPSURfTkRLX1VSTD1odHRwczovL2RsLmdvb2ds ZS5jb20vYW5kcm9pZC9yZXBvc2l0b3J5Ci0tQU5EUk9JRF9OREtfQVJDSElWRT1hbmRyb2lkLW5k ay1yMjViLWxpbnV4LnppcAotLQotLWN1cmwgLWZPICIkQU5EUk9JRF9OREtfVVJMLyRBTkRST0lE X05ES19BUkNISVZFIgotLXVuemlwIC1xICRBTkRST0lEX05ES19BUkNISVZFCi0tcm0gJEFORFJP SURfTkRLX0FSQ0hJVkUKLS1tdiBhbmRyb2lkLW5kay0qIG5kawotLXJtIC1yZiBhbmRyb2lkLW5k ay0qCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lk LWluc3RhbGwtc2RrLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lk LWluc3RhbGwtc2RrLnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Fu ZHJvaWQtaW5zdGFsbC1zZGsuc2gJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLXNk ay5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjAgKzAsMCBA QAotLSMhL3Vzci9iaW4vZW52IHNoCi0tIyBDb3B5cmlnaHQgMjAxNiBUaGUgUnVzdCBQcm9qZWN0 IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hUCi0tIyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwg ZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAotLSMgaHR0cDovL3J1c3QtbGFu Zy5vcmcvQ09QWVJJR0hULgotLSMKLS0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5z ZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCi0tIyBodHRwOi8vd3d3LmFwYWNoZS5v cmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQotLSMgPExJQ0VOU0Ut TUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCi0tIyBv cHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1 dGVkCi0tIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgotLQotLXNldCAtZXgKLS0K LS0jIFByZXAgdGhlIFNESyBhbmQgZW11bGF0b3IKLS0jCi0tIyBOb3RlIHRoYXQgdGhlIHVwZGF0 ZSBwcm9jZXNzIHJlcXVpcmVzIHRoYXQgd2UgYWNjZXB0IGEgYnVuY2ggb2YgbGljZW5zZXMsIGFu ZAotLSMgd2UgY2FuJ3QganVzdCBwaXBlIGB5ZXNgIGludG8gaXQgZm9yIHNvbWUgcmVhc29uLCBz byB3ZSB0YWtlIHRoZSBzYW1lIHN0cmF0ZWd5Ci0tIyBsb2NhdGVkIGluIGh0dHBzOi8vZ2l0aHVi LmNvbS9hcHB1bml0ZS9kb2NrZXIgYnkganVzdCB3cmFwcGluZyBpdCBpbiBhIHNjcmlwdAotLSMg d2hpY2ggYXBwYXJlbnRseSBtYWdpY2FsbHkgYWNjZXB0cyB0aGUgbGljZW5zZXMuCi0tCi0tbWtk aXIgc2RrCi0tY3VybCAtLXJldHJ5IDUgaHR0cHM6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvcmVw b3NpdG9yeS9zZGstdG9vbHMtbGludXgtMzg1OTM5Ny56aXAgLU8KLS11bnppcCAtZCBzZGsgc2Rr LXRvb2xzLWxpbnV4LTM4NTkzOTcuemlwCi0tCi0tY2FzZSAiJDEiIGluCi0tICBhcm0gfCBhcm12 NykKLS0gICAgYWJpPWFybWVhYmktdjdhCi0tICAgIDs7Ci0tCi0tICBhYXJjaDY0KQotLSAgICBh Ymk9YXJtNjQtdjhhCi0tICAgIDs7Ci0tCi0tICBpNjg2KQotLSAgICBhYmk9eDg2Ci0tICAgIDs7 Ci0tCi0tICB4ODZfNjQpCi0tICAgIGFiaT14ODZfNjQKLS0gICAgOzsKLS0KLS0gICopCi0tICAg IGVjaG8gImludmFsaWQgYXJjaDogJDEiCi0tICAgIGV4aXQgMQotLSAgICA7OwotLWVzYWM7Ci0t Ci0tIyAtLW5vX2h0dHBzIGF2b2lkcwotLSAgICAgIyBqYXZheC5uZXQuc3NsLlNTTEhhbmRzaGFr ZUV4Y2VwdGlvbjogc3VuLnNlY3VyaXR5LnZhbGlkYXRvci5WYWxpZGF0b3JFeGNlcHRpb246IE5v IHRydXN0ZWQgY2VydGlmaWNhdGUgZm91bmQKLS15ZXMgfCAuL3Nkay90b29scy9iaW4vc2RrbWFu YWdlciAtLWxpY2Vuc2VzIC0tbm9faHR0cHMKLS15ZXMgfCAuL3Nkay90b29scy9iaW4vc2RrbWFu YWdlciAtLW5vX2h0dHBzIFwKLS0gICAgICAgICJlbXVsYXRvciIgXAotLSAgICAgICAgInBsYXRm b3JtLXRvb2xzIiBcCi0tICAgICAgICAicGxhdGZvcm1zO2FuZHJvaWQtMjQiIFwKLS0gICAgICAg ICJzeXN0ZW0taW1hZ2VzO2FuZHJvaWQtMjQ7ZGVmYXVsdDskYWJpIgotLQotLWVjaG8gIm5vIiB8 Ci0tICAgIC4vc2RrL3Rvb2xzL2Jpbi9hdmRtYW5hZ2VyIGNyZWF0ZSBhdmQgXAotLSAgICAgICAg LS1uYW1lICIkezF9IiBcCi0tICAgICAgICAtLXBhY2thZ2UgInN5c3RlbS1pbWFnZXM7YW5kcm9p ZC0yNDtkZWZhdWx0OyRhYmkiCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9hbmRyb2lkLXN5c2ltYWdlLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9hbmRyb2lkLXN5c2ltYWdlLnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2FuZHJvaWQtc3lzaW1hZ2Uuc2gJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1zeXNp bWFnZS5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTYgKzAs MCBAQAotLSMhL3Vzci9iaW4vZW52IGJhc2gKLS0KLS0jIENvcHlyaWdodCAyMDE3IFRoZSBSdXN0 IFByb2plY3QgRGV2ZWxvcGVycy4gU2VlIHRoZSBDT1BZUklHSFQKLS0jIGZpbGUgYXQgdGhlIHRv cC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRpb24gYW5kIGF0Ci0tIyBodHRwOi8v cnVzdC1sYW5nLm9yZy9DT1BZUklHSFQuCi0tIwotLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNo ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCA8TElDRU5TRS1BUEFDSEUgb3IKLS0jIGh0dHA6Ly93d3cu YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCi0tIyA8 TElDRU5TRS1NSVQgb3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGF0IHlv dXIKLS0jIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3Ig ZGlzdHJpYnV0ZWQKLS0jIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCi0tCi0tc2V0 IC1leAotLQotLVVSTD1odHRwczovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9yZXBvc2l0b3J5L3N5 cy1pbWcvYW5kcm9pZAotLQotLW1haW4oKSB7Ci0tICAgIGxvY2FsIGFyY2g9IiR7MX0iCi0tICAg IGxvY2FsIG5hbWU9IiR7Mn0iCi0tICAgIGxvY2FsIGRlc3Q9L3N5c3RlbQotLSAgICBsb2NhbCB0 ZAotLSAgICB0ZD0iJChta3RlbXAgLWQpIgotLQotLSAgICBhcHQtZ2V0IGluc3RhbGwgLS1uby1p bnN0YWxsLXJlY29tbWVuZHMgZTJ0b29scwotLQotLSAgICBwdXNoZCAiJHt0ZH0iCi0tICAgIGN1 cmwgLS1yZXRyeSA1IC1PICIke1VSTH0vJHtuYW1lfSIKLS0gICAgdW56aXAgLXEgIiR7bmFtZX0i Ci0tCi0tICAgIGxvY2FsIHN5c3RlbQotLSAgICBzeXN0ZW09IiQoZmluZCAuIC1uYW1lIHN5c3Rl bS5pbWcpIgotLSAgICBta2RpciAtcCAke2Rlc3R9L3tiaW4sbGliLGxpYjY0fQotLQotLSAgICAj IEV4dHJhY3QgYW5kcm9pZCBsaW5rZXIgYW5kIGxpYnJhcmllcyB0byAvc3lzdGVtCi0tICAgICMg VGhpcyBhbGxvd3MgYW5kcm9pZCBleGVjdXRhYmxlcyB0byBiZSBydW4gZGlyZWN0bHkgKG9yIHdp dGggcWVtdSkKLS0gICAgaWYgWyAiJHthcmNofSIgPSAieDg2XzY0IiBdIHx8IFsgIiR7YXJjaH0i ID0gImFybTY0IiBdOyB0aGVuCi0tICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2Jpbi9saW5r ZXI2NCIgIiR7ZGVzdH0vYmluLyIKLS0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGliNjQv bGliZGwuc28iICIke2Rlc3R9L2xpYjY0LyIKLS0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTov bGliNjQvbGliYy5zbyIgIiR7ZGVzdH0vbGliNjQvIgotLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0 ZW19Oi9saWI2NC9saWJtLnNvIiAiJHtkZXN0fS9saWI2NC8iCi0tICAgIGVsc2UKLS0gICAgICAg IGUyY3AgLXAgIiR7c3lzdGVtfTovYmluL2xpbmtlciIgIiR7ZGVzdH0vYmluLyIKLS0gICAgICAg IGUyY3AgLXAgIiR7c3lzdGVtfTovbGliL2xpYmRsLnNvIiAiJHtkZXN0fS9saWIvIgotLSAgICAg ICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9saWIvbGliYy5zbyIgIiR7ZGVzdH0vbGliLyIKLS0gICAg ICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGliL2xpYm0uc28iICIke2Rlc3R9L2xpYi8iCi0tICAg IGZpCi0tCi0tICAgICMgY2xlYW4gdXAKLS0gICAgYXB0LWdldCBwdXJnZSAtLWF1dG8tcmVtb3Zl IC15IGUydG9vbHMKLS0KLS0gICAgcG9wZAotLQotLSAgICBybSAtcmYgIiR7dGR9IgotLX0KLS0K LS1tYWluICIke0B9IgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvYmVuY2htYXJrLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9iZW5jaG1h cmsuc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYmVuY2htYXJrLnNo CTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFyay5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMzIgKzAsMCBAQAotLSMhL3Vzci9iaW4vZW52IGJhc2gKLS0jCi0t IyBSdW5zIGFsbCBiZW5jaG1hcmtzLiBDb250cm9sbGVkIGJ5IHRoZSBmb2xsb3dpbmcgZW52aXJv bm1lbnQgdmFyaWFibGVzOgotLSMKLS0jIEZFQVRVUkVTPXt9IC0gY2FyZ28gZmVhdHVyZXMgdG8g cGFzcyB0byBhbGwgYmVuY2htYXJrcyAoZS5nLiBjb3JlX2FyY2gsc2xlZWYtc3lzLGlzcGMpCi0t IyBOT1JVTj17MX0gICAtIG9ubHkgYnVpbGRzIHRoZSBiZW5jaG1hcmtzCi0tCi0tc2V0IC1leAot LQotLWlmIFtbICR7Tk9SVU59ICE9IDEgXV07IHRoZW4KLS0gICAgIyBNb3N0IGJlbmNobWFya3Mg cmVxdWlyZSBoeXBlcmZpbmU7IHJlcXVpcmUgaXQgdXBmcm9udC4KLS0gICAgaGFzaCBoeXBlcmZp bmUgMj4vZGV2L251bGwgfHwgeyBlY2hvID4mMiAiaHlwZXJmaW5lIGlzIG5vdCBpbiBQQVRILiI7 IGV4aXQgMTsgfQotLWZpCi0tCi0tCi0tIyBJZiB0aGUgaXNwYyBiZW5jaG1hcmsgZmVhdHVyZSBp cyBlbmFibGVkLCBpc3BjIG11c3QgYmUgaW4gdGhlIHBhdGggb2YgdGhlCi0tIyBiZW5jaG1hcmtz LiAKLS1pZiBlY2hvICIkRkVBVFVSRVMiIHwgZ3JlcCAtcSAiaXNwYyI7IHRoZW4KLS0gICAgaGFz aCBpc3BjIDI+L2Rldi9udWxsIHx8IHsgZWNobyA+JjIgImlzcGMgaXMgbm90IGluIFBBVEguIjsg ZXhpdCAxOyB9Ci0tZmkKLS0KLS0jIEFuIGV4YW1wbGUgd2l0aCBhIGJlbmNobWFyay5zaCBpcyBh IGJlbmNobWFyazoKLS1mb3IgZGlyIGluIGV4YW1wbGVzLyovCi0tZG8KLS0gICAgZGlyPSR7ZGly JSovfQotLSAgICBjZCAke2RpciUqL30KLS0gICAgaWYgWyAtZiAiYmVuY2htYXJrLnNoIiBdOyB0 aGVuCi0tICAgICAgICAuL2JlbmNobWFyay5zaAotLSAgICBmaQotLSAgICBjZCAtCi0tZG9uZQot LQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZGVwbG95X2Fu ZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZGVwbG95X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RlcGxveV9hbmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE3NiArMCwwIEBACi0tLy8gQ29w eXJpZ2h0IDIwMTcgVGhlIFJ1c3QgUHJvamVjdCBEZXZlbG9wZXJzLiBTZWUgdGhlIENPUFlSSUdI VAotLS8vIGZpbGUgYXQgdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRp b24gYW5kIGF0Ci0tLy8gaHR0cDovL3J1c3QtbGFuZy5vcmcvQ09QWVJJR0hULgotLS8vCi0tLy8g TGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCA8TElDRU5TRS1B UEFDSEUgb3IKLS0vLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+ IG9yIHRoZSBNSVQgbGljZW5zZQotLS8vIDxMSUNFTlNFLU1JVCBvciBodHRwOi8vb3BlbnNvdXJj ZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgotLS8vIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBu b3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKLS0vLyBleGNlcHQgYWNjb3Jk aW5nIHRvIHRob3NlIHRlcm1zLgotLQotLS8vIFRoaXMgaXMgYSBzY3JpcHQgdG8gZGVwbG95IGFu ZCBleGVjdXRlIGEgYmluYXJ5IG9uIGFuIGlPUyBzaW11bGF0b3IuCi0tLy8gVGhlIHByaW1hcnkg dXNlIG9mIHRoaXMgaXMgdG8gYmUgYWJsZSB0byBydW4gdW5pdCB0ZXN0cyBvbiB0aGUgc2ltdWxh dG9yIGFuZAotLS8vIHJldHJpZXZlIHRoZSByZXN1bHRzLgotLS8vCi0tLy8gVG8gZG8gdGhpcyB0 aHJvdWdoIENhcmdvIGluc3RlYWQsIHVzZSBEaW5naHkKLS0vLyAoaHR0cHM6Ly9naXRodWIuY29t L3NuaXBzY28vZGluZ2h5KTogY2FyZ28gZGluZ2h5IGluc3RhbGwsIHRoZW4gY2FyZ28gZGluZ2h5 Ci0tLy8gdGVzdC4KLS0KLS11c2Ugc3RkOjplbnY7Ci0tdXNlIHN0ZDo6ZnM6OntzZWxmLCBGaWxl fTsKLS11c2Ugc3RkOjppbzo6V3JpdGU7Ci0tdXNlIHN0ZDo6cGF0aDo6UGF0aDsKLS11c2Ugc3Rk Ojpwcm9jZXNzOwotLXVzZSBzdGQ6OnByb2Nlc3M6OkNvbW1hbmQ7Ci0tCi0tbWFjcm9fcnVsZXMh IHQgewotLSAgICAoJGU6ZXhwcikgPT4gKG1hdGNoICRlIHsKLS0gICAgICAgIE9rKGUpID0+IGUs Ci0tICAgICAgICBFcnIoZSkgPT4gcGFuaWMhKCJ7fSBmYWlsZWQgd2l0aDoge30iLCBzdHJpbmdp ZnkhKCRlKSwgZSksCi0tICAgIH0pCi0tfQotLQotLS8vIFN0ZXAgb25lOiBXcmFwIGFzIGFuIGFw cAotLWZuIHBhY2thZ2VfYXNfc2ltdWxhdG9yX2FwcChjcmF0ZV9uYW1lOiAmc3RyLCB0ZXN0X2Jp bmFyeV9wYXRoOiAmUGF0aCkgewotLSAgICBwcmludGxuISgiUGFja2FnaW5nIHNpbXVsYXRvciBh cHAiKTsKLS0gICAgZHJvcChmczo6cmVtb3ZlX2Rpcl9hbGwoImlvc19zaW11bGF0b3JfYXBwIikp OwotLSAgICB0IShmczo6Y3JlYXRlX2RpcigiaW9zX3NpbXVsYXRvcl9hcHAiKSk7Ci0tICAgIHQh KGZzOjpjb3B5KHRlc3RfYmluYXJ5X3BhdGgsCi0tICAgICAgICAgICAgICAgIFBhdGg6Om5ldygi aW9zX3NpbXVsYXRvcl9hcHAiKS5qb2luKGNyYXRlX25hbWUpKSk7Ci0tCi0tICAgIGxldCBtdXQg ZiA9IHQhKEZpbGU6OmNyZWF0ZSgiaW9zX3NpbXVsYXRvcl9hcHAvSW5mby5wbGlzdCIpKTsKLS0g ICAgdCEoZi53cml0ZV9hbGwoZm9ybWF0IShyIyIKLS0gICAgICAgIDw/eG1sIHZlcnNpb249IjEu MCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci0tICAgICAgICA8IURPQ1RZUEUgcGxpc3QgUFVCTElDCi0t ICAgICAgICAgICAgICAgICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iCi0tICAgICAgICAg ICAgICAgICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4K LS0gICAgICAgIDxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotLSAgICAgICAgICAgIDxkaWN0PgotLSAg ICAgICAgICAgICAgICA8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgotLSAgICAgICAgICAg ICAgICA8c3RyaW5nPnt9PC9zdHJpbmc+Ci0tICAgICAgICAgICAgICAgIDxrZXk+Q0ZCdW5kbGVJ ZGVudGlmaWVyPC9rZXk+Ci0tICAgICAgICAgICAgICAgIDxzdHJpbmc+Y29tLnJ1c3QudW5pdHRl c3RzPC9zdHJpbmc+Ci0tICAgICAgICAgICAgPC9kaWN0PgotLSAgICAgICAgPC9wbGlzdD4KLS0g ICAgIiMsIGNyYXRlX25hbWUpLmFzX2J5dGVzKCkpKTsKLS19Ci0tCi0tLy8gU3RlcCB0d286IFN0 YXJ0IHRoZSBpT1Mgc2ltdWxhdG9yCi0tZm4gc3RhcnRfc2ltdWxhdG9yKCkgewotLSAgICBwcmlu dGxuISgiTG9va2luZyBmb3IgaU9TIHNpbXVsYXRvciIpOwotLSAgICBsZXQgb3V0cHV0ID0gdCEo Q29tbWFuZDo6bmV3KCJ4Y3J1biIpLmFyZygic2ltY3RsIikuYXJnKCJsaXN0Iikub3V0cHV0KCkp OwotLSAgICBhc3NlcnQhKG91dHB1dC5zdGF0dXMuc3VjY2VzcygpKTsKLS0gICAgbGV0IG11dCBz aW11bGF0b3JfZXhpc3RzID0gZmFsc2U7Ci0tICAgIGxldCBtdXQgc2ltdWxhdG9yX2Jvb3RlZCA9 IGZhbHNlOwotLSAgICBsZXQgbXV0IGZvdW5kX3J1c3Rfc2ltID0gZmFsc2U7Ci0tICAgIGxldCBz dGRvdXQgPSB0IShTdHJpbmc6OmZyb21fdXRmOChvdXRwdXQuc3Rkb3V0KSk7Ci0tICAgIGZvciBs aW5lIGluIHN0ZG91dC5saW5lcygpIHsKLS0gICAgICAgIGlmIGxpbmUuY29udGFpbnMoInJ1c3Rf aW9zIikgewotLSAgICAgICAgICAgIGlmIGZvdW5kX3J1c3Rfc2ltIHsKLS0gICAgICAgICAgICAg ICAgcGFuaWMhKCJEdXBsaWNhdGUgcnVzdF9pb3Mgc2ltdWxhdG9ycyBmb3VuZC4gUGxlYXNlIFwK LS0gICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUtY2hlY2sgeGNydW4gc2ltY3RsIGxpc3Qu Iik7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgIHNpbXVsYXRvcl9leGlzdHMgPSB0cnVl OwotLSAgICAgICAgICAgIHNpbXVsYXRvcl9ib290ZWQgPSBsaW5lLmNvbnRhaW5zKCIoQm9vdGVk KSIpOwotLSAgICAgICAgICAgIGZvdW5kX3J1c3Rfc2ltID0gdHJ1ZTsKLS0gICAgICAgIH0KLS0g ICAgfQotLQotLSAgICBpZiBzaW11bGF0b3JfZXhpc3RzID09IGZhbHNlIHsKLS0gICAgICAgIHBy aW50bG4hKCJDcmVhdGluZyBpT1Mgc2ltdWxhdG9yIik7Ci0tICAgICAgICBDb21tYW5kOjpuZXco InhjcnVuIikKLS0gICAgICAgICAgICAgICAgLmFyZygic2ltY3RsIikKLS0gICAgICAgICAgICAg ICAgLmFyZygiY3JlYXRlIikKLS0gICAgICAgICAgICAgICAgLmFyZygicnVzdF9pb3MiKQotLSAg ICAgICAgICAgICAgICAuYXJnKCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1EZXZpY2VUeXBl LmlQaG9uZS1TRSIpCi0tICAgICAgICAgICAgICAgIC5hcmcoImNvbS5hcHBsZS5Db3JlU2ltdWxh dG9yLlNpbVJ1bnRpbWUuaU9TLTEwLTIiKQotLSAgICAgICAgICAgICAgICAuY2hlY2tfc3RhdHVz KCk7Ci0tICAgIH0gZWxzZSBpZiBzaW11bGF0b3JfYm9vdGVkID09IHRydWUgewotLSAgICAgICAg cHJpbnRsbiEoIlNodXR0aW5nIGRvd24gYWxyZWFkeS1ib290ZWQgc2ltdWxhdG9yIik7Ci0tICAg ICAgICBDb21tYW5kOjpuZXcoInhjcnVuIikKLS0gICAgICAgICAgICAgICAgLmFyZygic2ltY3Rs IikKLS0gICAgICAgICAgICAgICAgLmFyZygic2h1dGRvd24iKQotLSAgICAgICAgICAgICAgICAu YXJnKCJydXN0X2lvcyIpCi0tICAgICAgICAgICAgICAgIC5jaGVja19zdGF0dXMoKTsKLS0gICAg fQotLQotLSAgICBwcmludGxuISgiU3RhcnRpbmcgaU9TIHNpbXVsYXRvciIpOwotLSAgICAvLyBX ZSBjYW4ndCB1bmluc3RhbGwgdGhlIGFwcCAoaWYgcHJlc2VudCkgYXMgdGhhdCB3aWxsIGhhbmcg aWYgdGhlCi0tICAgIC8vIHNpbXVsYXRvciBpc24ndCBjb21wbGV0ZWx5IGJvb3RlZDsganVzdCBl cmFzZSB0aGUgc2ltdWxhdG9yIGluc3RlYWQuCi0tICAgIENvbW1hbmQ6Om5ldygieGNydW4iKS5h cmcoInNpbWN0bCIpLmFyZygiZXJhc2UiKS5hcmcoInJ1c3RfaW9zIikuY2hlY2tfc3RhdHVzKCk7 Ci0tICAgIENvbW1hbmQ6Om5ldygieGNydW4iKS5hcmcoInNpbWN0bCIpLmFyZygiYm9vdCIpLmFy ZygicnVzdF9pb3MiKS5jaGVja19zdGF0dXMoKTsKLS19Ci0tCi0tLy8gU3RlcCB0aHJlZTogSW5z dGFsbCB0aGUgYXBwCi0tZm4gaW5zdGFsbF9hcHBfdG9fc2ltdWxhdG9yKCkgewotLSAgICBwcmlu dGxuISgiSW5zdGFsbGluZyBhcHAgdG8gc2ltdWxhdG9yIik7Ci0tICAgIENvbW1hbmQ6Om5ldygi eGNydW4iKQotLSAgICAgICAgICAgIC5hcmcoInNpbWN0bCIpCi0tICAgICAgICAgICAgLmFyZygi aW5zdGFsbCIpCi0tICAgICAgICAgICAgLmFyZygiYm9vdGVkIikKLS0gICAgICAgICAgICAuYXJn KCJpb3Nfc2ltdWxhdG9yX2FwcC8iKQotLSAgICAgICAgICAgIC5jaGVja19zdGF0dXMoKTsKLS19 Ci0tCi0tLy8gU3RlcCBmb3VyOiBSdW4gdGhlIGFwcAotLWZuIHJ1bl9hcHBfb25fc2ltdWxhdG9y KCkgewotLSAgICBwcmludGxuISgiUnVubmluZyBhcHAiKTsKLS0gICAgbGV0IG91dHB1dCA9IHQh KENvbW1hbmQ6Om5ldygieGNydW4iKQotLSAgICAgICAgICAgICAgICAgICAgLmFyZygic2ltY3Rs IikKLS0gICAgICAgICAgICAgICAgICAgIC5hcmcoImxhdW5jaCIpCi0tICAgICAgICAgICAgICAg ICAgICAuYXJnKCItLWNvbnNvbGUiKQotLSAgICAgICAgICAgICAgICAgICAgLmFyZygiYm9vdGVk IikKLS0gICAgICAgICAgICAgICAgICAgIC5hcmcoImNvbS5ydXN0LnVuaXR0ZXN0cyIpCi0tICAg ICAgICAgICAgICAgICAgICAub3V0cHV0KCkpOwotLQotLSAgICBwcmludGxuISgic3Rkb3V0IC0t XG57fVxuIiwgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRvdXQpKTsKLS0gICAg cHJpbnRsbiEoInN0ZGVyciAtLVxue31cbiIsIFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZvdXRw dXQuc3RkZXJyKSk7Ci0tCi0tICAgIGxldCBzdGRvdXQgPSBTdHJpbmc6OmZyb21fdXRmOF9sb3Nz eSgmb3V0cHV0LnN0ZG91dCk7Ci0tICAgIGxldCBmYWlsZWQgPSBzdGRvdXQubGluZXMoKQotLSAg ICAgICAgLmZpbmQofGx8IGwuY29udGFpbnMoIkZBSUxFRCIpKQotLSAgICAgICAgLm1hcCh8bHwg bC5jb250YWlucygiRkFJTEVEIikpCi0tICAgICAgICAudW53cmFwX29yKGZhbHNlKTsKLS0KLS0g ICAgbGV0IHBhc3NlZCA9IHN0ZG91dC5saW5lcygpCi0tICAgICAgICAuZmluZCh8bHwgbC5jb250 YWlucygidGVzdCByZXN1bHQ6IG9rIikpCi0tICAgICAgICAubWFwKHxsfCBsLmNvbnRhaW5zKCJ0 ZXN0IHJlc3VsdDogb2siKSkKLS0gICAgICAgIC51bndyYXBfb3IoZmFsc2UpOwotLQotLSAgICBw cmludGxuISgiU2h1dHRpbmcgZG93biBzaW11bGF0b3IiKTsKLS0gICAgQ29tbWFuZDo6bmV3KCJ4 Y3J1biIpCi0tICAgICAgICAuYXJnKCJzaW1jdGwiKQotLSAgICAgICAgLmFyZygic2h1dGRvd24i KQotLSAgICAgICAgLmFyZygicnVzdF9pb3MiKQotLSAgICAgICAgLmNoZWNrX3N0YXR1cygpOwot LSAgICBpZiAhKHBhc3NlZCAmJiAhZmFpbGVkKSB7Ci0tICAgICAgICBwYW5pYyEoInRlc3RzIGRp ZG4ndCBwYXNzIik7Ci0tICAgIH0KLS19Ci0tCi0tdHJhaXQgQ2hlY2tTdGF0dXMgewotLSAgICBm biBjaGVja19zdGF0dXMoJm11dCBzZWxmKTsKLS19Ci0tCi0taW1wbCBDaGVja1N0YXR1cyBmb3Ig Q29tbWFuZCB7Ci0tICAgIGZuIGNoZWNrX3N0YXR1cygmbXV0IHNlbGYpIHsKLS0gICAgICAgIHBy aW50bG4hKCJcdHJ1bm5pbmc6IHs6P30iLCBzZWxmKTsKLS0gICAgICAgIGFzc2VydCEodCEoc2Vs Zi5zdGF0dXMoKSkuc3VjY2VzcygpKTsKLS0gICAgfQotLX0KLS0KLS1mbiBtYWluKCkgewotLSAg ICBsZXQgYXJnczogVmVjPFN0cmluZz4gPSBlbnY6OmFyZ3MoKS5jb2xsZWN0KCk7Ci0tICAgIGlm IGFyZ3MubGVuKCkgIT0gMiB7Ci0tICAgICAgICBwcmludGxuISgiVXNhZ2U6IHt9IDxleGVjdXRh YmxlPiIsIGFyZ3NbMF0pOwotLSAgICAgICAgcHJvY2Vzczo6ZXhpdCgtMSk7Ci0tICAgIH0KLS0K LS0gICAgbGV0IHRlc3RfYmluYXJ5X3BhdGggPSBQYXRoOjpuZXcoJmFyZ3NbMV0pOwotLSAgICBs ZXQgY3JhdGVfbmFtZSA9IHRlc3RfYmluYXJ5X3BhdGguZmlsZV9uYW1lKCkudW53cmFwKCk7Ci0t Ci0tICAgIHBhY2thZ2VfYXNfc2ltdWxhdG9yX2FwcChjcmF0ZV9uYW1lLnRvX3N0cigpLnVud3Jh cCgpLCB0ZXN0X2JpbmFyeV9wYXRoKTsKLS0gICAgc3RhcnRfc2ltdWxhdG9yKCk7Ci0tICAgIGlu c3RhbGxfYXBwX3RvX3NpbXVsYXRvcigpOwotLSAgICBydW5fYXBwX29uX3NpbXVsYXRvcigpOwot LX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9h YXJjaDY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJv aWQvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRy b2lkL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDQ3ICswLDAgQEAKLS1GUk9NIHVidW50dToxNi4wNAotLQotLVJVTiBkcGtnIC0tYWRkLWFyY2hp dGVjdHVyZSBpMzg2ICYmIFwKLS0gICAgYXB0LWdldCB1cGRhdGUgJiYgXAotLSAgICBhcHQtZ2V0 IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZmlsZSBcCi0tICBtYWtl IFwKLS0gIGN1cmwgXAotLSAgY2EtY2VydGlmaWNhdGVzIFwKLS0gIHB5dGhvbiBcCi0tICB1bnpp cCBcCi0tICBleHBlY3QgXAotLSAgb3Blbmpkay05LWpyZSBcCi0tICBsaWJzdGRjKys2OmkzODYg XAotLSAgbGlicHVsc2UwIFwKLS0gIGdjYyBcCi0tICBsaWJjNi1kZXYKLS0KLS1XT1JLRElSIC9h bmRyb2lkLwotLUNPUFkgYW5kcm9pZCogL2FuZHJvaWQvCi0tCi0tRU5WIEFORFJPSURfQVJDSD1h YXJjaDY0Ci0tRU5WIFBBVEg9JFBBVEg6L2FuZHJvaWQvbmRrLSRBTkRST0lEX0FSQ0gvYmluOi9h bmRyb2lkL3Nkay90b29sczovYW5kcm9pZC9zZGsvcGxhdGZvcm0tdG9vbHMKLS0KLS1SVU4gc2gg L2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLW5kay5zaCAkQU5EUk9JRF9BUkNICi0tUlVOIHNoIC9h bmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2ggJEFORFJPSURfQVJDSAotLVJVTiBtdiAvcm9v dC8uYW5kcm9pZCAvdG1wCi0tUlVOIGNobW9kIDc3NyAtUiAvdG1wLy5hbmRyb2lkCi0tUlVOIGNo bW9kIDc1NSAvYW5kcm9pZC9zZGsvdG9vbHMvKiAvYW5kcm9pZC9zZGsvZW11bGF0b3IvcWVtdS9s aW51eC14ODZfNjQvKgotLQotLUVOViBQQVRIPSRQQVRIOi9ydXN0L2JpbiBcCi0tICAgIENBUkdP X1RBUkdFVF9BQVJDSDY0X0xJTlVYX0FORFJPSURfTElOS0VSPWFhcmNoNjQtbGludXgtYW5kcm9p ZC1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfQUFSQ0g2NF9MSU5VWF9BTkRST0lEX1JVTk5FUj0v dG1wL3J1bnRlc3QgXAotLSAgICBPQkpEVU1QPWFhcmNoNjQtbGludXgtYW5kcm9pZC1vYmpkdW1w IFwKLS0gICAgSE9NRT0vdG1wCi0tCi0tQUREIHJ1bnRlc3QtYW5kcm9pZC5ycyAvdG1wL3J1bnRl c3QucnMKLS1FTlRSWVBPSU5UIFsgXAotLSAgImJhc2giLCBcCi0tICAiLWMiLCBcCi0tICAjIHNl dCBTSEVMTCBzbyBhbmRyb2lkIGNhbiBkZXRlY3QgYSA2NGJpdHMgc3lzdGVtLCBzZWUKLS0gICMg aHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDE3ODkxNDQKLS0gICJTSEVMTD0vYmluL2Rhc2gg L2FuZHJvaWQvc2RrL2VtdWxhdG9yL2VtdWxhdG9yIEBhYXJjaDY0IC1uby13aW5kb3cgJiBcCi0t ICAgcnVzdGMgL3RtcC9ydW50ZXN0LnJzIC1vIC90bXAvcnVudGVzdCAmJiBcCi0tICAgZXhlYyBc IiRAXCIiLCBcCi0tICAiLS0iIFwKLS1dCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxl IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC11bmtub3du LWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci9hYXJjaDY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTQgKzAsMCBAQAotLUZST00g dWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAt LW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBnY2MgXAotLSAgY2EtY2VydGlmaWNhdGVzIFwK LS0gIGxpYmM2LWRldiBcCi0tICBnY2MtYWFyY2g2NC1saW51eC1nbnUgXAotLSAgbGliYzYtZGV2 LWFybTY0LWNyb3NzIFwKLS0gIHFlbXUtdXNlciBcCi0tICBtYWtlIFwKLS0gIGZpbGUKLS0KLS1F TlYgQ0FSR09fVEFSR0VUX0FBUkNINjRfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPWFhcmNoNjQt bGludXgtZ251LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9BQVJDSDY0X1VOS05PV05fTElOVVhf R05VX1JVTk5FUj0icWVtdS1hYXJjaDY0IC1MIC91c3IvYWFyY2g2NC1saW51eC1nbnUiIFwKLS0g ICAgT0JKRFVNUD1hYXJjaDY0LWxpbnV4LWdudS1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFi aS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJt LXVua25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZp bGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9j a2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTUgKzAs MCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQg aW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBnY2MgXAotLSAgY2EtY2Vy dGlmaWNhdGVzIFwKLS0gIGxpYmM2LWRldiBcCi0tICBsaWJjNi1hcm1lbC1jcm9zcyBcCi0tICBs aWJjNi1kZXYtYXJtZWwtY3Jvc3MgXAotLSAgYmludXRpbHMtYXJtLWxpbnV4LWdudWVhYmkgXAot LSAgZ2NjLWFybS1saW51eC1nbnVlYWJpIFwKLS0gIHFlbXUtdXNlciBcCi0tICBtYWtlIFwKLS0g IGZpbGUKLS1FTlYgQ0FSR09fVEFSR0VUX0FSTV9VTktOT1dOX0xJTlVYX0dOVUVBQklfTElOS0VS PWFybS1saW51eC1nbnVlYWJpLWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9BUk1fVU5LTk9XTl9M SU5VWF9HTlVFQUJJX1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9hcm0tbGludXgtZ251ZWFiaSIg XAotLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpLW9iamR1bXAKLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1n bnVlYWJpaGYvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJp aGYvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgt Z251ZWFiaWhmL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDEzICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0 ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZ2Nj IFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBsaWJjNi1kZXYgXAotLSAgZ2NjLWFybS1saW51 eC1nbnVlYWJpaGYgXAotLSAgbGliYzYtZGV2LWFybWhmLWNyb3NzIFwKLS0gIHFlbXUtdXNlciBc Ci0tICBtYWtlIFwKLS0gIGZpbGUKLS1FTlYgQ0FSR09fVEFSR0VUX0FSTV9VTktOT1dOX0xJTlVY X0dOVUVBQklIRl9MSU5LRVI9YXJtLWxpbnV4LWdudWVhYmloZi1nY2MgXAotLSAgICBDQVJHT19U QVJHRVRfQVJNX1VOS05PV05fTElOVVhfR05VRUFCSUhGX1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vz ci9hcm0tbGludXgtZ251ZWFiaWhmIiBcCi0tICAgIE9CSkRVTVA9YXJtLWxpbnV4LWdudWVhYmlo Zi1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9k b2NrZXIvYXJtdjctbGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZp bGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LWxp bnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3 LWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDQ3ICswLDAgQEAKLS1GUk9NIHVidW50dToxNi4wNAotLQotLVJVTiBk cGtnIC0tYWRkLWFyY2hpdGVjdHVyZSBpMzg2ICYmIFwKLS0gICAgYXB0LWdldCB1cGRhdGUgJiYg XAotLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAg ZmlsZSBcCi0tICBtYWtlIFwKLS0gIGN1cmwgXAotLSAgY2EtY2VydGlmaWNhdGVzIFwKLS0gIHB5 dGhvbiBcCi0tICB1bnppcCBcCi0tICBleHBlY3QgXAotLSAgb3Blbmpkay05LWpyZSBcCi0tICBs aWJzdGRjKys2OmkzODYgXAotLSAgbGlicHVsc2UwIFwKLS0gIGdjYyBcCi0tICBsaWJjNi1kZXYK LS0KLS1XT1JLRElSIC9hbmRyb2lkLwotLUNPUFkgYW5kcm9pZCogL2FuZHJvaWQvCi0tCi0tRU5W IEFORFJPSURfQVJDSD1hcm0KLS1FTlYgUEFUSD0kUEFUSDovYW5kcm9pZC9uZGstJEFORFJPSURf QVJDSC9iaW46L2FuZHJvaWQvc2RrL3Rvb2xzOi9hbmRyb2lkL3Nkay9wbGF0Zm9ybS10b29scwot LQotLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtbmRrLnNoICRBTkRST0lEX0FSQ0gK LS1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCAkQU5EUk9JRF9BUkNICi0t UlVOIG12IC9yb290Ly5hbmRyb2lkIC90bXAKLS1SVU4gY2htb2QgNzc3IC1SIC90bXAvLmFuZHJv aWQKLS1SVU4gY2htb2QgNzU1IC9hbmRyb2lkL3Nkay90b29scy8qIC9hbmRyb2lkL3Nkay9lbXVs YXRvci9xZW11L2xpbnV4LXg4Nl82NC8qCi0tCi0tRU5WIFBBVEg9JFBBVEg6L3J1c3QvYmluIFwK LS0gICAgQ0FSR09fVEFSR0VUX0FSTV9MSU5VWF9BTkRST0lERUFCSV9MSU5LRVI9YXJtLWxpbnV4 LWFuZHJvaWRlYWJpLWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9BUk1fTElOVVhfQU5EUk9JREVB QklfUlVOTkVSPS90bXAvcnVudGVzdCBcCi0tICAgIE9CSkRVTVA9YXJtLWxpbnV4LWFuZHJvaWRl YWJpLW9iamR1bXAgXAotLSAgICBIT01FPS90bXAKLS0KLS1BREQgcnVudGVzdC1hbmRyb2lkLnJz IC90bXAvcnVudGVzdC5ycwotLUVOVFJZUE9JTlQgWyBcCi0tICAiYmFzaCIsIFwKLS0gICItYyIs IFwKLS0gICMgc2V0IFNIRUxMIHNvIGFuZHJvaWQgY2FuIGRldGVjdCBhIDY0Yml0cyBzeXN0ZW0s IHNlZQotLSAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MTc4OTE0NAotLSAgIlNIRUxM PS9iaW4vZGFzaCAvYW5kcm9pZC9zZGsvZW11bGF0b3IvZW11bGF0b3IgQGFybSAtbm8td2luZG93 ICYgXAotLSAgIHJ1c3RjIC90bXAvcnVudGVzdC5ycyAtbyAvdG1wL3J1bnRlc3QgJiYgXAotLSAg IGV4ZWMgXCIkQFwiIiwgXAotLSAgIi0tIiBcCi0tXQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhm L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12 Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9E b2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdu dWVhYmloZi9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSwxMyArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUg JiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYyBc Ci0tICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgbGliYzYtZGV2IFwKLS0gIGdjYy1hcm0tbGludXgt Z251ZWFiaWhmIFwKLS0gIGxpYmM2LWRldi1hcm1oZi1jcm9zcyBcCi0tICBxZW11LXVzZXIgXAot LSAgbWFrZSBcCi0tICBmaWxlCi0tRU5WIENBUkdPX1RBUkdFVF9BUk1WN19VTktOT1dOX0xJTlVY X0dOVUVBQklIRl9MSU5LRVI9YXJtLWxpbnV4LWdudWVhYmloZi1nY2MgXAotLSAgICBDQVJHT19U QVJHRVRfQVJNVjdfVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfUlVOTkVSPSJxZW11LWFybSAtTCAv dXNyL2FybS1saW51eC1nbnVlYWJpaGYiIFwKLS0gICAgT0JKRFVNUD1hcm0tbGludXgtZ251ZWFi aWhmLW9iamR1bXAKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZp bGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k1ODYtdW5r bm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTU4Ni11 bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSw3ICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLVJVTiBhcHQtZ2V0 IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAot LSAgZ2NjLW11bHRpbGliIFwKLS0gIGxpYmM2LWRldiBcCi0tICBmaWxlIFwKLS0gIG1ha2UgXAot LSAgY2EtY2VydGlmaWNhdGVzCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIvaTY4Ni11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTY4Ni11bmtub3duLWxpbnV4LWdudS9E b2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9p Njg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L2k2ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsNyArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS1SVU4g YXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1l bmRzIFwKLS0gIGdjYy1tdWx0aWxpYiBcCi0tICBsaWJjNi1kZXYgXAotLSAgZmlsZSBcCi0tICBt YWtlIFwKLS0gIGNhLWNlcnRpZmljYXRlcwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHMtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHMtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9k b2NrZXIvbWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9taXBzLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4w NAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0 YWxsLXJlY29tbWVuZHMgXAotLSAgICAgICAgZ2NjIGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2Vy dGlmaWNhdGVzIFwKLS0gICAgICAgIGdjYy1taXBzLWxpbnV4LWdudSBsaWJjNi1kZXYtbWlwcy1j cm9zcyBcCi0tICAgICAgICBxZW11LXN5c3RlbS1taXBzIFwKLS0gICAgICAgIHFlbXUtdXNlciBc Ci0tICAgICAgICBtYWtlIFwKLS0gICAgICAgIGZpbGUKLS0KLS1FTlYgQ0FSR09fVEFSR0VUX01J UFNfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPW1pcHMtbGludXgtZ251LWdjYyBcCi0tICAgIENB UkdPX1RBUkdFVF9NSVBTX1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1taXBzIC1MIC91 c3IvbWlwcy1saW51eC1nbnUiIFwKLS0gICAgT0JKRFVNUD1taXBzLWxpbnV4LWdudS1vYmpkdW1w Ci1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NC9E b2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0 LXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQvRG9j a2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0LXVua25vd24tbGludXgtZ251 YWJpNjQvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsMTAgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0tCi0tUlVOIGFwdC1nZXQgdXBkYXRl ICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICAgICAg ICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICAgICAgZ2Nj LW1pcHM2NC1saW51eC1nbnVhYmk2NCBsaWJjNi1kZXYtbWlwczY0LWNyb3NzIFwKLS0gICAgICAg IHFlbXUtc3lzdGVtLW1pcHM2NCBxZW11LXVzZXIKLS0KLS1FTlYgQ0FSR09fVEFSR0VUX01JUFM2 NF9VTktOT1dOX0xJTlVYX0dOVUFCSTY0X0xJTktFUj1taXBzNjQtbGludXgtZ251YWJpNjQtZ2Nj IFwKLS0gICAgQ0FSR09fVEFSR0VUX01JUFM2NF9VTktOT1dOX0xJTlVYX0dOVUFCSTY0X1JVTk5F Uj0icWVtdS1taXBzNjQgLUwgL3Vzci9taXBzNjQtbGludXgtZ251YWJpNjQiIFwKLS0gICAgT0JK RFVNUD1taXBzNjQtbGludXgtZ251YWJpNjQtb2JqZHVtcAotXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvbWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVh Ymk2NC9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv Y2tlci9taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL21pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmls ZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTAgKzAsMCBAQAot LUZST00gdWJ1bnR1OjE4LjA0Ci0tCi0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5z dGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICAgICAgICBnY2MgbGliYzYtZGV2 IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICAgICAgZ2NjLW1pcHM2NGVsLWxpbnV4 LWdudWFiaTY0IGxpYmM2LWRldi1taXBzNjRlbC1jcm9zcyBcCi0tICAgICAgICBxZW11LXN5c3Rl bS1taXBzNjRlbAotLQotLUVOViBDQVJHT19UQVJHRVRfTUlQUzY0RUxfVU5LTk9XTl9MSU5VWF9H TlVBQkk2NF9MSU5LRVI9bWlwczY0ZWwtbGludXgtZ251YWJpNjQtZ2NjIFwKLS0gICAgQ0FSR09f VEFSR0VUX01JUFM2NEVMX1VOS05PV05fTElOVVhfR05VQUJJNjRfUlVOTkVSPSJxZW11LW1pcHM2 NGVsIC1MIC91c3IvbWlwczY0ZWwtbGludXgtZ251YWJpNjQiIFwKLS0gICAgT0JKRFVNUD1taXBz NjRlbC1saW51eC1nbnVhYmk2NC1vYmpkdW1wCi1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBz ZWwtdW5rbm93bi1saW51eC1tdXNsL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9taXBzZWwtdW5rbm93bi1saW51eC1tdXNsL0RvY2tlcmZpbGUKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHNlbC11bmtub3du LWxpbnV4LW11c2wvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwc2VsLXVu a25vd24tbGludXgtbXVzbC9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSwyNSArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMTAKLS0KLS1SVU4gYXB0 LWdldCB1cGRhdGUgJiYgXAotLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJl Y29tbWVuZHMgXAotLSAgICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICBnY2MgXAotLSAgICBsaWJj Ni1kZXYgXAotLSAgICBtYWtlIFwKLS0gICAgcWVtdS11c2VyIFwKLS0gICAgcWVtdS1zeXN0ZW0t bWlwcyBcCi0tICAgIGJ6aXAyIFwKLS0gICAgY3VybCBcCi0tICAgIGZpbGUKLS0KLS1SVU4gbWtk aXIgL3Rvb2xjaGFpbgotLQotLSMgTm90ZSB0aGF0IHRoaXMgb3JpZ2luYWxseSBjYW1lIGZyb206 Ci0tIyBodHRwczovL2Rvd25sb2Fkcy5vcGVud3J0Lm9yZy9zbmFwc2hvdHMvdHJ1bmsvbWFsdGEv Z2VuZXJpYy9PcGVuV3J0LVRvb2xjaGFpbi1tYWx0YS1sZV9nY2MtNS4zLjBfbXVzbC0xLjEuMTUu TGludXgteDg2XzY0LnRhci5iejIKLS1SVU4gY3VybCAtTCBodHRwczovL2NpLW1pcnJvcnMucnVz dC1sYW5nLm9yZy9saWJjL09wZW5XcnQtVG9vbGNoYWluLW1hbHRhLWxlX2djYy01LjMuMF9tdXNs LTEuMS4xNS5MaW51eC14ODZfNjQudGFyLmJ6MiB8IFwKLS0gICAgICB0YXIgeGpmIC0gLUMgL3Rv b2xjaGFpbiAtLXN0cmlwLWNvbXBvbmVudHM9MgotLQotLUVOViBQQVRIPSRQQVRIOi9ydXN0L2Jp bjovdG9vbGNoYWluL2JpbiBcCi0tICAgIENDX21pcHNlbF91bmtub3duX2xpbnV4X211c2w9bWlw c2VsLW9wZW53cnQtbGludXgtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX01JUFNFTF9VTktOT1dO X0xJTlVYX01VU0xfTElOS0VSPW1pcHNlbC1vcGVud3J0LWxpbnV4LWdjYyBcCi0tICAgIENBUkdP X1RBUkdFVF9NSVBTRUxfVU5LTk9XTl9MSU5VWF9NVVNMX1JVTk5FUj0icWVtdS1taXBzZWwgLUwg L3Rvb2xjaGFpbiIKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9wb3dlcnBjLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjLXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bv d2VycGMtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvcG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMyArMCwwIEBACi0tRlJPTSB1YnVudHU6MjIuMDQK LS0KLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFs bC1yZWNvbW1lbmRzIFwKLS0gICAgICAgIGdjYyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRp ZmljYXRlcyBcCi0tICAgICAgICBnY2MtcG93ZXJwYy1saW51eC1nbnUgbGliYzYtZGV2LXBvd2Vy cGMtY3Jvc3MgXAotLSAgICAgICAgcWVtdS1zeXN0ZW0tcHBjIFwKLS0gICAgICAgIG1ha2UgXAot LSAgICAgICAgZmlsZQotLQotLUVOViBDQVJHT19UQVJHRVRfUE9XRVJQQ19VTktOT1dOX0xJTlVY X0dOVV9MSU5LRVI9cG93ZXJwYy1saW51eC1nbnUtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX1BP V0VSUENfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11LXBwYyAtY3B1IFZnZXIgLUwgL3Vz ci9wb3dlcnBjLWxpbnV4LWdudSIgXAotLSAgICBDQz1wb3dlcnBjLWxpbnV4LWdudS1nY2MgXAot LSAgICBPQkpEVU1QPXBvd2VycGMtbGludXgtZ251LW9iamR1bXAKLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjNjQtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L3Bvd2VycGM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUv RG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGlu dXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDE3ICswLDAgQEAKLS1GUk9NIHVidW50dToyMi4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0 ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgICBn Y2MgXAotLSAgICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICBsaWJjNi1kZXYgXAotLSAgICBnY2Mt cG93ZXJwYzY0LWxpbnV4LWdudSBcCi0tICAgIGxpYmM2LWRldi1wcGM2NC1jcm9zcyBcCi0tICAg IHFlbXUtdXNlciAgXAotLSAgICBxZW11LXN5c3RlbS1wcGMgXAotLSAgICBtYWtlIFwKLS0gICAg ZmlsZSAKLS0KLS1FTlYgQ0FSR09fVEFSR0VUX1BPV0VSUEM2NF9VTktOT1dOX0xJTlVYX0dOVV9M SU5LRVI9cG93ZXJwYzY0LWxpbnV4LWdudS1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfUE9XRVJQ QzY0X1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1wcGM2NCAtTCAvdXNyL3Bvd2VycGM2 NC1saW51eC1nbnUiIFwKLS0gICAgQ0M9cG93ZXJwYzY0LWxpbnV4LWdudS1nY2MgXAotLSAgICBP QkpEVU1QPXBvd2VycGM2NC1saW51eC1nbnUtb2JqZHVtcAotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NGxlLXVua25vd24tbGludXgt Z251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9w b3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdu dS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjNjRsZS11bmtub3du LWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSwxMSArMCwwIEBACi0tRlJPTSB1YnVudHU6MjIuMDQKLS0KLS1SVU4gYXB0LWdldCB1 cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0g ICAgICAgIGdjYyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgICAg ICBnY2MtcG93ZXJwYzY0bGUtbGludXgtZ251IGxpYmM2LWRldi1wcGM2NGVsLWNyb3NzIFwKLS0g ICAgICAgIHFlbXUtc3lzdGVtLXBwYyBmaWxlIG1ha2UKLS0KLS1FTlYgQ0FSR09fVEFSR0VUX1BP V0VSUEM2NExFX1VOS05PV05fTElOVVhfR05VX0xJTktFUj1wb3dlcnBjNjRsZS1saW51eC1nbnUt Z2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX1BPV0VSUEM2NExFX1VOS05PV05fTElOVVhfR05VX1JV Tk5FUj0icWVtdS1wcGM2NGxlIC1MIC91c3IvcG93ZXJwYzY0bGUtbGludXgtZ251IiBcCi0tICAg IENDPXBvd2VycGM2NGxlLWxpbnV4LWdudS1nY2MgXAotLSAgICBPQkpEVU1QPXBvd2VycGM2NGxl LWxpbnV4LWdudS1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIvczM5MHgtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3MzOTB4LXVua25vd24tbGludXgtZ251 L0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L3MzOTB4LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL3MzOTB4LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIwICswLDAgQEAKLS1GUk9NIHVidW50dToyMi4wNAot LQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBcCi0tICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5v LWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICAgIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgIGN1cmwg XAotLSAgICBjbWFrZSBcCi0tICAgIGdjYyBcCi0tICAgIGxpYmM2LWRldiBcCi0tICAgIGcrKy1z MzkweC1saW51eC1nbnUgXAotLSAgICBsaWJjNi1kZXYtczM5MHgtY3Jvc3MgXAotLSAgICBxZW11 LXVzZXIgXAotLSAgICBtYWtlIFwKLS0gICAgZmlsZQotLQotLUVOViBDQVJHT19UQVJHRVRfUzM5 MFhfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXMzOTB4LWxpbnV4LWdudS1nY2MgXAotLSAgICBD QVJHT19UQVJHRVRfUzM5MFhfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11LXMzOTB4IC1M IC91c3IvczM5MHgtbGludXgtZ251IiBcCi0tICAgIENDX3MzOTB4X3Vua25vd25fbGludXhfZ251 PXMzOTB4LWxpbnV4LWdudS1nY2MgXAotLSAgICBDWFhfczM5MHhfdW5rbm93bl9saW51eF9nbnU9 czM5MHgtbGludXgtZ251LWcrKyBcCi0tICAgIE9CSkRVTVA9czM5MHgtbGludXgtZ251LW9iamR1 bXAKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9z cGFyYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci9zcGFyYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3NwYXJjNjQtdW5r bm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvc3BhcmM2 NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwxOCArMCwwIEBACi0tRlJPTSBkZWJpYW46Ym9va3dvcm0KLS0KLS1S VU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNv bW1lbmRzIFwKLS0gICAgICAgIGN1cmwgY2EtY2VydGlmaWNhdGVzIFwKLS0gICAgICAgIGdjYyBs aWJjNi1kZXYgXAotLSAgICAgICAgZ2NjLXNwYXJjNjQtbGludXgtZ251IGxpYmM2LWRldi1zcGFy YzY0LWNyb3NzIFwKLS0gICAgICAgIHFlbXUtc3lzdGVtLXNwYXJjNjQgb3BlbmJpb3Mtc3BhcmMg c2VhYmlvcyBpcHhlLXFlbXUgXAotLSAgICAgICAgcDd6aXAtZnVsbCBjcGlvCi0tCi0tQ09QWSBs aW51eC1zcGFyYzY0LnNoIC8KLS1SVU4gYmFzaCAvbGludXgtc3BhcmM2NC5zaAotLQotLUNPUFkg dGVzdC1ydW5uZXItbGludXggLwotLQotLUVOViBDQVJHT19UQVJHRVRfU1BBUkM2NF9VTktOT1dO X0xJTlVYX0dOVV9MSU5LRVI9c3BhcmM2NC1saW51eC1nbnUtZ2NjIFwKLS0gICAgQ0FSR09fVEFS R0VUX1NQQVJDNjRfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSIvdGVzdC1ydW5uZXItbGludXgg c3BhcmM2NCIgXAotLSAgICBDQ19zcGFyYzY0X3Vua25vd25fbGludXhfZ251PXNwYXJjNjQtbGlu dXgtZ251LWdjYyBcCi0tICAgIFBBVEg9JFBBVEg6L3J1c3QvYmluCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tbGludXgtYW5k cm9pZGVhYmkvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL3RodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLWxpbnV4LWFuZHJv aWRlYWJpL0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLWxp bnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDQ3ICswLDAgQEAKLS1GUk9NIHVidW50dToxNi4wNAotLQotLVJVTiBkcGtn IC0tYWRkLWFyY2hpdGVjdHVyZSBpMzg2ICYmIFwKLS0gICAgYXB0LWdldCB1cGRhdGUgJiYgXAot LSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZmls ZSBcCi0tICBtYWtlIFwKLS0gIGN1cmwgXAotLSAgY2EtY2VydGlmaWNhdGVzIFwKLS0gIHB5dGhv biBcCi0tICB1bnppcCBcCi0tICBleHBlY3QgXAotLSAgb3Blbmpkay05LWpyZSBcCi0tICBsaWJz dGRjKys2OmkzODYgXAotLSAgbGlicHVsc2UwIFwKLS0gIGdjYyBcCi0tICBsaWJjNi1kZXYKLS0K LS1XT1JLRElSIC9hbmRyb2lkLwotLUNPUFkgYW5kcm9pZCogL2FuZHJvaWQvCi0tCi0tRU5WIEFO RFJPSURfQVJDSD1hcm0KLS1FTlYgUEFUSD0kUEFUSDovYW5kcm9pZC9uZGstJEFORFJPSURfQVJD SC9iaW46L2FuZHJvaWQvc2RrL3Rvb2xzOi9hbmRyb2lkL3Nkay9wbGF0Zm9ybS10b29scwotLQot LVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtbmRrLnNoICRBTkRST0lEX0FSQ0gKLS1S VU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCAkQU5EUk9JRF9BUkNICi0tUlVO IG12IC9yb290Ly5hbmRyb2lkIC90bXAKLS1SVU4gY2htb2QgNzc3IC1SIC90bXAvLmFuZHJvaWQK LS1SVU4gY2htb2QgNzU1IC9hbmRyb2lkL3Nkay90b29scy8qIC9hbmRyb2lkL3Nkay9lbXVsYXRv ci9xZW11L2xpbnV4LXg4Nl82NC8qCi0tCi0tRU5WIFBBVEg9JFBBVEg6L3J1c3QvYmluIFwKLS0g ICAgQ0FSR09fVEFSR0VUX1RIVU1CVjdORU9OX0xJTlVYX0FORFJPSURFQUJJX0xJTktFUj1hcm0t bGludXgtYW5kcm9pZGVhYmktZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX1RIVU1CVjdORU9OX0xJ TlVYX0FORFJPSURFQUJJX1JVTk5FUj0vdG1wL3J1bnRlc3QgXAotLSAgICBPQkpEVU1QPWFybS1s aW51eC1hbmRyb2lkZWFiaS1vYmpkdW1wIFwKLS0gICAgSE9NRT0vdG1wCi0tCi0tQUREIHJ1bnRl c3QtYW5kcm9pZC5ycyAvdG1wL3J1bnRlc3QucnMKLS1FTlRSWVBPSU5UIFsgXAotLSAgImJhc2gi LCBcCi0tICAiLWMiLCBcCi0tICAjIHNldCBTSEVMTCBzbyBhbmRyb2lkIGNhbiBkZXRlY3QgYSA2 NGJpdHMgc3lzdGVtLCBzZWUKLS0gICMgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDE3ODkx NDQKLS0gICJTSEVMTD0vYmluL2Rhc2ggL2FuZHJvaWQvc2RrL2VtdWxhdG9yL2VtdWxhdG9yIEBh cm0gLW5vLXdpbmRvdyAmIFwKLS0gICBydXN0YyAvdG1wL3J1bnRlc3QucnMgLW8gL3RtcC9ydW50 ZXN0ICYmIFwKLS0gICBleGVjIFwiJEBcIiIsIFwKLS0gICItLSIgXAotLV0KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi11bmtu b3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2Vy ZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2 N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZQkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTMgKzAsMCBAQAotLUZS T00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAt eSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBnY2MgXAotLSAgY2EtY2VydGlmaWNhdGVz IFwKLS0gIGxpYmM2LWRldiBcCi0tICBnY2MtYXJtLWxpbnV4LWdudWVhYmloZiBcCi0tICBsaWJj Ni1kZXYtYXJtaGYtY3Jvc3MgXAotLSAgcWVtdS11c2VyIFwKLS0gIG1ha2UgXAotLSAgZmlsZQot LUVOViBDQVJHT19UQVJHRVRfVEhVTUJWN05FT05fVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfTElO S0VSPWFybS1saW51eC1nbnVlYWJpaGYtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX1RIVU1CVjdO RU9OX1VOS05PV05fTElOVVhfR05VRUFCSUhGX1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9hcm0t bGludXgtZ251ZWFiaWhmIiBcCi0tICAgIE9CSkRVTVA9YXJtLWxpbnV4LWdudWVhYmloZi1vYmpk dW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv d2FzbTMyLXVua25vd24tdW5rbm93bi9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvd2FzbTMyLXVua25vd24tdW5rbm93bi9Eb2NrZXJmaWxlCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci93YXNtMzItdW5rbm93bi11 bmtub3duL0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3dhc20zMi11bmtub3du LXVua25vd24vRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMzkgKzAsMCBAQAotLUZST00gdWJ1bnR1OjIyLjA0Ci0tCi0tUlVOIGFwdC1nZXQgdXBk YXRlIC15ICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0t ICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgY2xhbmcgXAotLSAgY21ha2UgXAotLSAgY3VybCBcCi0t ICBnaXQgXAotLSAgbGliYzYtZGV2IFwKLS0gIG1ha2UgXAotLSAgbmluamEtYnVpbGQgXAotLSAg cHl0aG9uLWlzLXB5dGhvbjMgXAotLSAgeHotdXRpbHMKLS0KLS0jIEluc3RhbGwgYHdhc20yd2F0 YAotLVJVTiBnaXQgY2xvbmUgLS1yZWN1cnNpdmUgaHR0cHM6Ly9naXRodWIuY29tL1dlYkFzc2Vt Ymx5L3dhYnQKLS1SVU4gbWFrZSAtQyB3YWJ0IC1qJChucHJvYykKLS1FTlYgUEFUSD0kUEFUSDov d2FidC9iaW4KLS0KLS0jIEluc3RhbGwgYHdhc20tYmluZGdlbi10ZXN0LXJ1bm5lcmAKLS1SVU4g Y3VybCAtTCBodHRwczovL2dpdGh1Yi5jb20vcnVzdHdhc20vd2FzbS1iaW5kZ2VuL3JlbGVhc2Vz L2Rvd25sb2FkLzAuMi44Ny93YXNtLWJpbmRnZW4tMC4yLjg3LXg4Nl82NC11bmtub3duLWxpbnV4 LW11c2wudGFyLmd6IFwKLS0gIHwgdGFyIHh6ZiAtCi0tIyBLZWVwIGluIHN5bmMgd2l0aCB0aGUg dmVyc2lvbiBvbiBDYXJnby50b21sLgotLUVOViBQQVRIPSRQQVRIOi93YXNtLWJpbmRnZW4tMC4y Ljg3LXg4Nl82NC11bmtub3duLWxpbnV4LW11c2wKLS1FTlYgQ0FSR09fVEFSR0VUX1dBU00zMl9V TktOT1dOX1VOS05PV05fUlVOTkVSPXdhc20tYmluZGdlbi10ZXN0LXJ1bm5lcgotLQotLSMgSW5z dGFsbCBgbm9kZWAKLS1SVU4gY3VybCBodHRwczovL25vZGVqcy5vcmcvZGlzdC92MTQuMTYuMC9u b2RlLXYxNC4xNi4wLWxpbnV4LXg2NC50YXIueHogfCB0YXIgeEpmIC0KLS1FTlYgUEFUSD0kUEFU SDovbm9kZS12MTQuMTYuMC1saW51eC14NjQvYmluCi0tCi0tIyBXZSB1c2UgYSBzaGltIGxpbmtl ciB0aGF0IHJlbW92ZXMgYC0tc3RyaXAtZGVidWdgIHdoZW4gcGFzc2VkIHRvIExMRC4gV2hpbGUK LS0jIHRoaXMgdHlwaWNhbGx5IHJlc3VsdHMgaW4gaW52YWxpZCBkZWJ1ZyBpbmZvcm1hdGlvbiBp biByZWxlYXNlIG1vZGUgaXQgZG9lc24ndAotLSMgcmVzdWx0IGluIGFuIGludmFsaWQgbmFtZXMg c2VjdGlvbiB3aGljaCBpcyB3aGF0IHdlJ3JlIGludGVyZXN0ZWQgaW4uCi0tQ09QWSBsbGQtc2hp bS5ycyAvCi0tRU5WIENBUkdPX1RBUkdFVF9XQVNNMzJfVU5LTk9XTl9VTktOT1dOX0xJTktFUj0v dG1wL2xsZC1zaGltCi0tCi0tIyBSdXN0YyBpc24ndCBhdmFpbGFibGUgdW50aWwgdGhpcyBjb250 YWluZXIgc3RhcnRzLCBzbyBkZWZlciBjb21waWxhdGlvbiBvZiB0aGUKLS0jIHNoaW0uCi0tRU5U UllQT0lOVCAvcnVzdC9iaW4vcnVzdGMgL2xsZC1zaGltLnJzIC1vIC90bXAvbGxkLXNoaW0gJiYg ZXhlYyBiYXNoICIkQCIKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci94ODZfNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmls ZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LWxp bnV4LWFuZHJvaWQvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LWxp bnV4LWFuZHJvaWQvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMzEgKzAsMCBAQAotLUZST00gdWJ1bnR1OjIwLjA0Ci0tCi0tUlVOIGFwdC1nZXQg dXBkYXRlICYmIFwKLS0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1l bmRzIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBjdXJsIFwKLS0gIGdjYyBcCi0tICBsaWJj LWRldiBcCi0tICBweXRob24gXAotLSAgdW56aXAgXAotLSAgZmlsZSBcCi0tICBtYWtlCi0tCi0t V09SS0RJUiAvYW5kcm9pZC8KLS1FTlYgQU5EUk9JRF9BUkNIPXg4Nl82NAotLUNPUFkgYW5kcm9p ZC1pbnN0YWxsLW5kay5zaCAvYW5kcm9pZC8KLS1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0 YWxsLW5kay5zaAotLQotLUVOViBTVERBUkNIX0FTU0VSVF9JTlNUUl9MSU1JVD0zMAotLQotLSMg V2UgZG8gbm90IHJ1biB4ODZfNjQtbGludXgtYW5kcm9pZCB0ZXN0cyBvbiBhbiBhbmRyb2lkIGVt dWxhdG9yLgotLSMgU2VlIGNpL2FuZHJvaWQtc3lzaW1hZ2Uuc2ggZm9yIGluZm9ybWF0aW9ucyBh Ym91dCBob3cgdGVzdHMgYXJlIHJ1bi4KLS1DT1BZIGFuZHJvaWQtc3lzaW1hZ2Uuc2ggL2FuZHJv aWQvCi0tUlVOIGJhc2ggL2FuZHJvaWQvYW5kcm9pZC1zeXNpbWFnZS5zaCB4ODZfNjQgeDg2XzY0 LTI0X3IwNy56aXAKLS0KLS1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW46L2FuZHJvaWQvbmRrL3Rv b2xjaGFpbnMvbGx2bS9wcmVidWlsdC9saW51eC14ODZfNjQvYmluIFwKLS0gICAgQ0FSR09fVEFS R0VUX1g4Nl82NF9MSU5VWF9BTkRST0lEX0xJTktFUj14ODZfNjQtbGludXgtYW5kcm9pZDIxLWNs YW5nIFwKLS0gICAgQ0NfeDg2XzY0X2xpbnV4X2FuZHJvaWQ9eDg2XzY0LWxpbnV4LWFuZHJvaWQy MS1jbGFuZyBcCi0tICAgIENYWF94ODZfNjRfbGludXhfYW5kcm9pZD14ODZfNjQtbGludXgtYW5k cm9pZDIxLWNsYW5nKysgXAotLSAgICBPQkpEVU1QPWxsdm0tb2JqZHVtcCBcCi0tICAgIEhPTUU9 L3RtcAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L3g4Nl82NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsMTAgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1n ZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBc Ci0tICBnY2MgXAotLSAgbGliYzYtZGV2IFwKLS0gIGZpbGUgXAotLSAgbWFrZSBcCi0tICBjYS1j ZXJ0aWZpY2F0ZXMgXAotLSAgY21ha2UgXAotLSAgbGliY2xhbmctZGV2IFwKLS0gIGNsYW5nCi1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0 LXVua25vd24tbGludXgtZ251LWVtdWxhdGVkL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUtZW11bGF0ZWQv RG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv eDg2XzY0LXVua25vd24tbGludXgtZ251LWVtdWxhdGVkL0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxl CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNiArMCwwIEBACi0t RlJPTSB1YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxs IC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYyBcCi0tICBsaWJjNi1kZXYgXAot LSAgZmlsZSBcCi0tICBtYWtlIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICB3Z2V0IFwKLS0g IGJ6aXAyIFwKLS0gIGNtYWtlIFwKLS0gIGxpYmNsYW5nLWRldiBcCi0tICBjbGFuZwotLQotLVJV TiB3Z2V0IGh0dHBzOi8vZ2l0aHViLmNvbS9nbnpsYmcvaW50ZWxfc2RlL3Jhdy9tYXN0ZXIvc2Rl LWV4dGVybmFsLTguMTYuMC0yMDE4LTAxLTMwLWxpbi50YXIuYnoyCi0tUlVOIHRhciAteGpmIHNk ZS1leHRlcm5hbC04LjE2LjAtMjAxOC0wMS0zMC1saW4udGFyLmJ6MgotLUVOViBDQVJHT19UQVJH RVRfWDg2XzY0X1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0iL3NkZS1leHRlcm5hbC04LjE2LjAt MjAxOC0wMS0zMC1saW4vc2RlNjQgLS0iCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb3guc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv eC5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb3guc2gJMjAyNS0w OS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG94LnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSwyNyArMCwwIEBACi0tIyEvYmluL3NoCi0tCi0tc2V0IC1leAotLQotLXJtIC1yZiB0YXJn ZXQvZG9jCi0tbWtkaXIgLXAgdGFyZ2V0L2RvYwotLQotLSMgQnVpbGQgQVBJIGRvY3VtZW50YXRp b24KLS1jYXJnbyBkb2MgLS1mZWF0dXJlcz1pbnRvX2JpdHMKLS0KLS0jIEJ1aWxkIFBlcmZvcm1h bmNlIEd1aWRlCi0tIyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5 L21kQm9vay9pc3N1ZXMvNzgwCi0tIyBtZGJvb2sgYnVpbGQgcGVyZi1ndWlkZSAtZCB0YXJnZXQv ZG9jL3BlcmYtZ3VpZGUKLS1jZCBwZXJmLWd1aWRlCi0tbWRib29rIGJ1aWxkCi0tY2QgLQotLWNw IC1yIHBlcmYtZ3VpZGUvYm9vayB0YXJnZXQvZG9jL3BlcmYtZ3VpZGUKLS0KLS0jIElmIHdlJ3Jl IG9uIHRyYXZpcywgbm90IGEgUFIsIGFuZCBvbiB0aGUgcmlnaHQgYnJhbmNoLCBwdWJsaXNoIQot LWlmIFsgIiRUUkFWSVNfUFVMTF9SRVFVRVNUIiA9ICJmYWxzZSIgXSAmJiBbICIkVFJBVklTX0JS QU5DSCIgPSAibWFzdGVyIiBdOyB0aGVuCi0tICBweXRob24zIC12VgotLSAgcGlwIC12VgotLSAg cHl0aG9uMy45IC12VgotLSAgcGlwIGluc3RhbGwgZ2hwX2ltcG9ydCAtLXVzZXIKLS0gIGdocC1p bXBvcnQgLW4gdGFyZ2V0L2RvYwotLSAgZ2l0IHB1c2ggLXFmIGh0dHBzOi8vJHtHSF9QQUdFU31A Z2l0aHViLmNvbS8ke1RSQVZJU19SRVBPX1NMVUd9LmdpdCBnaC1wYWdlcwotLWZpCi1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zMzkweC5zaCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgtczM5MHguc2gKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgtczM5MHguc2gJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvbGludXgtczM5MHguc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDE4ICswLDAgQEAKLS1zZXQgLWV4Ci0tCi0tbWtkaXIgLW0gNzc3IC9xZW11Ci0tY2QgL3Fl bXUKLS0KLS1jdXJsIC1MTyBodHRwczovL2dpdGh1Yi5jb20vcWVtdS9xZW11L3Jhdy9tYXN0ZXIv cGMtYmlvcy9zMzkwLWNjdy5pbWcKLS1jdXJsIC1MTyBodHRwOi8vZnRwLmRlYmlhbi5vcmcvZGVi aWFuL2Rpc3RzL3Rlc3RpbmcvbWFpbi9pbnN0YWxsZXItczM5MHgvMjAxNzA4MjgvaW1hZ2VzL2dl bmVyaWMva2VybmVsLmRlYmlhbgotLWN1cmwgLUxPIGh0dHA6Ly9mdHAuZGViaWFuLm9yZy9kZWJp YW4vZGlzdHMvdGVzdGluZy9tYWluL2luc3RhbGxlci1zMzkweC8yMDE3MDgyOC9pbWFnZXMvZ2Vu ZXJpYy9pbml0cmQuZGViaWFuCi0tCi0tbXYga2VybmVsLmRlYmlhbiBrZXJuZWwKLS1tdiBpbml0 cmQuZGViaWFuIGluaXRyZC5negotLQotLW1rZGlyIGluaXQKLS1jZCBpbml0Ci0tZ3VuemlwIC1j IC4uL2luaXRyZC5neiB8IGNwaW8gLWlkCi0tcm0gLi4vaW5pdHJkLmd6Ci0tY3AgL3Vzci9zMzkw eC1saW51eC1nbnUvbGliL2xpYmdjY19zLnNvLjEgdXNyL2xpYi8KLS1jaG1vZCBhK3cgLgotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgtc3BhcmM2NC5z aCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgtc3BhcmM2NC5zaAotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zcGFyYzY0LnNoCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2xpbnV4LXNwYXJjNjQuc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDE3ICswLDAgQEAKLS1zZXQgLWV4Ci0tCi0tbWtkaXIgLW0gNzc3IC9x ZW11Ci0tY2QgL3FlbXUKLS0KLS1jdXJsIC1MTyBodHRwczovL2NkaW1hZ2UuZGViaWFuLm9yZy9j ZGltYWdlL3BvcnRzLzkuMC9zcGFyYzY0L2lzby1jZC9kZWJpYW4tOS4wLXNwYXJjNjQtTkVUSU5T VC0xLmlzbwotLTd6IGUgZGViaWFuLTkuMC1zcGFyYzY0LU5FVElOU1QtMS5pc28gYm9vdC9pbml0 cmQuZ3oKLS03eiBlIGRlYmlhbi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvIGJvb3Qvc3BhcmM2 NAotLW12IHNwYXJjNjQga2VybmVsCi0tcm0gZGViaWFuLTkuMC1zcGFyYzY0LU5FVElOU1QtMS5p c28KLS0KLS1ta2RpciBpbml0Ci0tY2QgaW5pdAotLWd1bnppcCAtYyAuLi9pbml0cmQuZ3ogfCBj cGlvIC1pZAotLXJtIC4uL2luaXRyZC5negotLWNwIC91c3Ivc3BhcmM2NC1saW51eC1nbnUvbGli L2xpYmdjY19zLnNvLjEgdXNyL2xpYi8KLS1jaG1vZCBhK3cgLgotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGxkLXNoaW0ucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2xsZC1zaGltLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2xsZC1zaGltLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xsZC1zaGltLnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMSArMCwwIEBACi0tdXNlIHN0 ZDo6b3M6OnVuaXg6OnByZWx1ZGU6Oio7Ci0tdXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKLS11 c2Ugc3RkOjplbnY7Ci0tCi0tZm4gbWFpbigpIHsKLS0gICAgbGV0IGFyZ3MgPSBlbnY6OmFyZ3Mo KQotLSAgICAgICAgLnNraXAoMSkKLS0gICAgICAgIC5maWx0ZXIofHN8IHMgIT0gIi0tc3RyaXAt ZGVidWciKQotLSAgICAgICAgLmNvbGxlY3Q6OjxWZWM8Xz4+KCk7Ci0tICAgIHBhbmljISgiZmFp bGVkIHRvIGV4ZWM6IHt9IiwgQ29tbWFuZDo6bmV3KCJydXN0LWxsZCIpLmFyZ3MoJmFyZ3MpLmV4 ZWMoKSk7Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv bWF4X2xpbmVfd2lkdGguc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL21heF9s aW5lX3dpZHRoLnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL21heF9s aW5lX3dpZHRoLnNoCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL21heF9saW5lX3dpZHRoLnNoCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNyArMCwwIEBACi0tIyEvdXNyL2Jp bi9lbnYgc2gKLS0KLS1zZXQgLXgKLS0KLS1leHBvcnQgc3VjY2Vzcz10cnVlCi0tCi0tZmluZCAu IC1pbmFtZSAnKi5ycycgfCB3aGlsZSByZWFkIC1yIGZpbGU7IGRvCi0tICAgIHJlc3VsdD0kKGdy ZXAgJy5cezc5XH0nICIke2ZpbGV9IiB8IGdyZXAgLS1pbnZlcnQgJ2h0dHAnKQotLSAgICBpZiBb ICIke3Jlc3VsdH0iID0gIiIgXQotLSAgICB0aGVuCi0tICAgICAgICA6Ci0tICAgIGVsc2UKLS0g ICAgICAgIGVjaG8gImZpbGUgXCIke2ZpbGV9XCI6ICRyZXN1bHQiCi0tICAgICAgICBleGl0IDEK LS0gICAgZmkKLS1kb25lCi0tCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9ydW4tZG9ja2VyLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9y dW4tZG9ja2VyLnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi1k b2NrZXIuc2gJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLWRvY2tlci5zaAkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzggKzAsMCBAQAotLSMgU21hbGwgc2NyaXB0IHRv IHJ1biB0ZXN0cyBmb3IgYSB0YXJnZXQgKG9yIGFsbCB0YXJnZXRzKSBpbnNpZGUgYWxsIHRoZQot LSMgcmVzcGVjdGl2ZSBkb2NrZXIgaW1hZ2VzLgotLQotLXNldCAtZXgKLS0KLS1ydW4oKSB7Ci0t ICAgIGVjaG8gIkJ1aWxkaW5nIGRvY2tlciBjb250YWluZXIgZm9yIFRBUkdFVD0ke1RBUkdFVH0g UlVTVEZMQUdTPSR7UlVTVEZMQUdTfSIKLS0gICAgZG9ja2VyIGJ1aWxkIC10IHBhY2tlZF9zaW1k IC1mIGNpL2RvY2tlci8ke1RBUkdFVH0vRG9ja2VyZmlsZSBjaS8KLS0gICAgbWtkaXIgLXAgdGFy Z2V0Ci0tICAgIHRhcmdldD0kKGVjaG8gIiR7VEFSR0VUfSIgfCBzZWQgJ3MvLWVtdWxhdGVkLy8n KQotLSAgICBlY2hvICJSdW5uaW5nIGRvY2tlciIKLS0gICAgZG9ja2VyIHJ1biBcCi0tICAgICAg LS11c2VyIGBpZCAtdWA6YGlkIC1nYCBcCi0tICAgICAgLS1ybSBcCi0tICAgICAgLS1pbml0IFwK LS0gICAgICAtLXZvbHVtZSAkSE9NRS8uY2FyZ286L2NhcmdvIFwKLS0gICAgICAtLWVudiBDQVJH T19IT01FPS9jYXJnbyBcCi0tICAgICAgLS12b2x1bWUgYHJ1c3RjIC0tcHJpbnQgc3lzcm9vdGA6 L3J1c3Q6cm8gXAotLSAgICAgIC0tZW52IFRBUkdFVD0kdGFyZ2V0IFwKLS0gICAgICAtLWVudiBO T1JVTiBcCi0tICAgICAgLS1lbnYgTk9WRVJJRlkgXAotLSAgICAgIC0tZW52IFJVU1RGTEFHUyBc Ci0tICAgICAgLS12b2x1bWUgYHB3ZGA6L2NoZWNrb3V0OnJvIFwKLS0gICAgICAtLXZvbHVtZSBg cHdkYC90YXJnZXQ6L2NoZWNrb3V0L3RhcmdldCBcCi0tICAgICAgLS13b3JrZGlyIC9jaGVja291 dCBcCi0tICAgICAgLS1wcml2aWxlZ2VkIFwKLS0gICAgICBwYWNrZWRfc2ltZCBcCi0tICAgICAg YmFzaCBcCi0tICAgICAgLWMgJ1BBVEg9JFBBVEg6L3J1c3QvYmluIGV4ZWMgY2kvcnVuLnNoJwot LX0KLS0KLS1pZiBbIC16ICIke1RBUkdFVH0iIF07IHRoZW4KLS0gIGZvciBkIGluIGBscyBjaS9k b2NrZXIvYDsgZG8KLS0gICAgcnVuICRkCi0tICBkb25lCi0tZWxzZQotLSAgcnVuICR7VEFSR0VU fQotLWZpCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4u c2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi5zaAotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4uc2gJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLnNo CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw5OSArMCwwIEBACi0t IyEvdXNyL2Jpbi9lbnYgYmFzaAotLQotLXNldCAtZXgKLS0KLS06ICR7VEFSR0VUPyJUaGUgVEFS R0VUIGVudmlyb25tZW50IHZhcmlhYmxlIG11c3QgYmUgc2V0LiJ9Ci0tCi0tIyBUZXN0cyBhcmUg YWxsIHN1cGVyIGZhc3QgYW55d2F5LCBhbmQgdGhleSBmYXVsdCBvZnRlbiBlbm91Z2ggb24gdHJh dmlzIHRoYXQKLS0jIGhhdmluZyBvbmx5IG9uZSB0aHJlYWQgaW5jcmVhc2VzIGRlYnVnZ2FiaWxp dHkgdG8gYmUgd29ydGggaXQuCi0tI2V4cG9ydCBSVVNUX1RFU1RfVEhSRUFEUz0xCi0tI2V4cG9y dCBSVVNUX0JBQ0tUUkFDRT1mdWxsCi0tI2V4cG9ydCBSVVNUX1RFU1RfTk9DQVBUVVJFPTEKLS0K LS0jIFNvbWUgYXBwdmV5b3IgYnVpbGRzIHJ1biBvdXQtb2YtbWVtb3J5OyB0aGlzIGF0dGVtcHRz IHRvIG1pdGlnYXRlIHRoYXQ6Ci0tIyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzM5Ci0tIyBleHBvcnQgUlVTVEZMQUdTPSIke1JVU1RGTEFH U30gLUMgY29kZWdlbi11bml0cz0xIgotLSMgZXhwb3J0IENBUkdPX0JVSUxEX0pPQlM9MQotLQot LWV4cG9ydCBDQVJHT19TVUJDTUQ9dGVzdAotLWlmIFtbICIke05PUlVOfSIgPT0gIjEiIF1dOyB0 aGVuCi0tICAgIGV4cG9ydCBDQVJHT19TVUJDTUQ9YnVpbGQKLS1maQotLQotLWlmIFtbICR7VEFS R0VUfSA9PSAieDg2XzY0LWFwcGxlLWlvcyIgXV0gfHwgW1sgJHtUQVJHRVR9ID09ICJpMzg2LWFw cGxlLWlvcyIgXV07IHRoZW4KLS0gICAgZXhwb3J0IFJVU1RGTEFHUz0iJHtSVVNURkxBR1N9IC1D bGluay1hcmc9LW1pb3Mtc2ltdWxhdG9yLXZlcnNpb24tbWluPTcuMCIKLS0gICAgcnVzdGMgLi9j aS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzIC1vICRIT01FL3J1bnRlc3QKLS0g ICAgZXhwb3J0IENBUkdPX1RBUkdFVF9YODZfNjRfQVBQTEVfSU9TX1JVTk5FUj0kSE9NRS9ydW50 ZXN0Ci0tICAgIGV4cG9ydCBDQVJHT19UQVJHRVRfSTM4Nl9BUFBMRV9JT1NfUlVOTkVSPSRIT01F L3J1bnRlc3QKLS1maQotLQotLSMgVGhlIHNvdXJjZSBkaXJlY3RvcnkgaXMgcmVhZC1vbmx5LiBO ZWVkIHRvIGNvcHkgaW50ZXJuYWwgY3JhdGVzIHRvIHRoZSB0YXJnZXQKLS0jIGRpcmVjdG9yeSBm b3IgdGhlaXIgQ2FyZ28ubG9jayB0byBiZSBwcm9wZXJseSB3cml0dGVuLgotLW1rZGlyIHRhcmdl dCB8fCB0cnVlCi0tCi0tcnVzdGMgLS12ZXJzaW9uCi0tY2FyZ28gLS12ZXJzaW9uCi0tZWNobyAi VEFSR0VUPSR7VEFSR0VUfSIKLS1lY2hvICJIT1NUPSR7SE9TVH0iCi0tZWNobyAiUlVTVEZMQUdT PSR7UlVTVEZMQUdTfSIKLS1lY2hvICJOT1JVTj0ke05PUlVOfSIKLS1lY2hvICJOT1ZFUklGWT0k e05PVkVSSUZZfSIKLS1lY2hvICJDQVJHT19TVUJDTUQ9JHtDQVJHT19TVUJDTUR9IgotLWVjaG8g IkNBUkdPX0JVSUxEX0pPQlM9JHtDQVJHT19CVUlMRF9KT0JTfSIKLS1lY2hvICJDQVJHT19JTkNS RU1FTlRBTD0ke0NBUkdPX0lOQ1JFTUVOVEFMfSIKLS1lY2hvICJSVVNUX1RFU1RfVEhSRUFEUz0k e1JVU1RfVEVTVF9USFJFQURTfSIKLS1lY2hvICJSVVNUX0JBQ0tUUkFDRT0ke1JVU1RfQkFDS1RS QUNFfSIKLS1lY2hvICJSVVNUX1RFU1RfTk9DQVBUVVJFPSR7UlVTVF9URVNUX05PQ0FQVFVSRX0i Ci0tCi0tY2FyZ29fdGVzdCgpIHsKLS0gICAgY21kPSJjYXJnbyAke0NBUkdPX1NVQkNNRH0gLS12 ZXJib3NlIC0tdGFyZ2V0PSR7VEFSR0VUfSAke0B9IgotLSAgICBpZiBbICIke05PUlVOfSIgIT0g IjEiIF0KLS0gICAgdGhlbgotLSAgICAgICAgaWYgWyAiJFRBUkdFVCIgIT0gIndhc20zMi11bmtu b3duLXVua25vd24iIF0KLS0gICAgICAgIHRoZW4KLS0gICAgICAgICAgICBjbWQ9IiRjbWQgLS0g LS1xdWlldCIKLS0gICAgICAgIGZpCi0tICAgIGZpCi0tICAgIG1rZGlyIHRhcmdldCB8fCB0cnVl Ci0tICAgICR7Y21kfSAyPiYxIHwgdGVlID4gdGFyZ2V0L291dHB1dAotLSAgICBpZiBbWyAke1BJ UEVTVEFUVVNbMF19ICE9IDAgXV07IHRoZW4KLS0gICAgICAgIGNhdCB0YXJnZXQvb3V0cHV0Ci0t ICAgICAgICByZXR1cm4gMQotLSAgICBmaQotLX0KLS0KLS1jYXJnb190ZXN0X2ltcGwoKSB7Ci0t ICAgIE9SSUdJTkFMX1JVU1RGTEFHUz0ke1JVU1RGTEFHU30KLS0gICAgUlVTVEZMQUdTPSIke09S SUdJTkFMX1JVU1RGTEFHU30gLS1jZmcgdGVzdF92MTYgIC0tY2ZnIHRlc3RfdjMyIC0tY2ZnIHRl c3RfdjY0IiBjYXJnb190ZXN0ICR7QH0KLS0gICAgUlVTVEZMQUdTPSIke09SSUdJTkFMX1JVU1RG TEFHU30gLS1jZmcgdGVzdF92MTI4IC0tY2ZnIHRlc3RfdjI1NiIgY2FyZ29fdGVzdCAke0B9Ci0t ICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxBR1N9IC0tY2ZnIHRlc3RfdjUxMiIgY2Fy Z29fdGVzdCAke0B9Ci0tICAgIFJVU1RGTEFHUz0ke09SSUdJTkFMX1JVU1RGTEFHU30KLS19Ci0t Ci0tIyBEZWJ1ZyBydW46Ci0taWYgW1sgIiR7VEFSR0VUfSIgIT0gIndhc20zMi11bmtub3duLXVu a25vd24iIF1dOyB0aGVuCi0tICAgIyBSdW4gd2FzbTMyLXVua25vd24tdW5rbm93biBpbiByZWxl YXNlIG1vZGUgb25seQotLSAgIGNhcmdvX3Rlc3RfaW1wbAotLWZpCi0tCi0taWYgW1sgIiR7VEFS R0VUfSIgPT0gIng4Nl82NC11bmtub3duLWxpbnV4LWdudSIgXV0gfHwgW1sgIiR7VEFSR0VUfSIg PT0gIng4Nl82NC1wYy13aW5kb3dzLW1zdmMiIF1dOyB0aGVuCi0tICAgICMgdXNlIHNsZWVmIG9u IGxpbnV4IGFuZCB3aW5kb3dzIHg4Nl82NCBidWlsZHMKLS0gICAgIyBGSVhNRTogVXNlIGBjb3Jl X2FyY2gsc2xlZWYtc3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KLS0gICAgY2Fy Z29fdGVzdF9pbXBsIC0tcmVsZWFzZSAtLWZlYXR1cmVzPWludG9fYml0cwotLWVsc2UKLS0gICAg IyBGSVhNRTogVXNlIGBjb3JlX2FyY2hgIGZlYXR1cmUgb25jZSBpdCB3b3JrcyBhZ2FpbgotLSAg ICBjYXJnb190ZXN0X2ltcGwgLS1yZWxlYXNlIC0tZmVhdHVyZXM9aW50b19iaXRzCi0tZmkKLS0K LS0jIFZlcmlmeSBjb2RlIGdlbmVyYXRpb24KLS1pZiBbWyAiJHtOT1ZFUklGWX0iICE9ICIxIiBd XTsgdGhlbgotLSAgICBjcCAtciB2ZXJpZnkvdmVyaWZ5IHRhcmdldC92ZXJpZnkKLS0gICAgZXhw b3J0IFNURFNJTURfQVNTRVJUX0lOU1RSX0xJTUlUPTMwCi0tICAgIGlmIFtbICIke1RBUkdFVH0i ID09ICJpNTg2LXVua25vd24tbGludXgtZ251IiBdXTsgdGhlbgotLSAgICAgICAgZXhwb3J0IFNU RFNJTURfQVNTRVJUX0lOU1RSX0xJTUlUPTUwCi0tICAgIGZpCi0tICAgIGNhcmdvX3Rlc3QgLS1y ZWxlYXNlIC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvdmVyaWZ5L0NhcmdvLnRvbWwKLS1maQotLQot LSMgRklYTUU6IEZpZ3VyZSBvdXQgd2hpY2ggZXhhbXBsZXMgdGFrZSB0b28gbG9uZyB0byBydW4g YW5kIGlnbm9yZSBvciBhZGp1c3QgdGhvc2UKLS0jLiBjaS9ydW5fZXhhbXBsZXMuc2gKLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bl9leGFtcGxlcy5zaCBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuX2V4YW1wbGVzLnNoCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bl9leGFtcGxlcy5zaAkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9ydW5fZXhhbXBsZXMuc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDUxICswLDAgQEAKLS0jIFJ1bnMgYWxsIGV4YW1wbGVzLgotLQotLSMgRklYTUU6 IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMv NTUKLS0jIEFsbCBleGFtcGxlcyBmYWlsIHRvIGJ1aWxkIGZvciBgYXJtdjctYXBwbGUtaW9zYC4K LS1pZiBbWyAke1RBUkdFVH0gPT0gImFybXY3LWFwcGxlLWlvcyIgXV07IHRoZW4KLS0gICAgZXhp dCAwCi0tZmkKLS0KLS0jIEZJWE1FOiB0cmF2aXMgZXhjZWVkcyA1MCBtaW51dGVzIG9uIHRoZXNl IHRhcmdldHMKLS0jIFNraXBwaW5nIHRoZSBleGFtcGxlcyBpcyBhbiBhdHRlbXB0IGF0IHByZXZl bnRpbmcgdHJhdmlzIGZyb20gdGltaW5nLW91dAotLWlmIFtbICR7VEFSR0VUfSA9PSAiYXJtLWxp bnV4LWFuZHJvaWRhYmkiIF1dIHx8IFtbICR7VEFSR0VUfSA9PSAiYWFyY2g2NC1saW51eC1hbmRy b2lkYWJpIiBdXSBcCi0tICAgIHx8IFtbICR7VEFSR0VUfSA9PSAic3BhcmM2NC11bmtub3duLWxp bnV4LWdudSIgXV07IHRoZW4KLS0gICAgZXhpdCAwCi0tZmkKLS0KLS1pZiBbWyAke1RBUkdFVH0g PT0gIndhc20zMi11bmtub3duLXVua25vd24iIF1dOyB0aGVuCi0tICAgIGV4aXQgMAotLWZpCi0t Ci0tY3AgLXIgZXhhbXBsZXMvYW9iZW5jaCB0YXJnZXQvYW9iZW5jaAotLWNhcmdvX3Rlc3QgLS1t YW5pZmVzdC1wYXRoPXRhcmdldC9hb2JlbmNoL0NhcmdvLnRvbWwgLS1yZWxlYXNlIC0tbm8tZGVm YXVsdC1mZWF0dXJlcwotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9hb2JlbmNo L0NhcmdvLnRvbWwgLS1yZWxlYXNlIC0tZmVhdHVyZXM9MjU2Yml0Ci0tCi0tY3AgLXIgZXhhbXBs ZXMvZG90X3Byb2R1Y3QgdGFyZ2V0L2RvdF9wcm9kdWN0Ci0tY2FyZ29fdGVzdCAtLW1hbmlmZXN0 LXBhdGg9dGFyZ2V0L2RvdF9wcm9kdWN0L0NhcmdvLnRvbWwgLS1yZWxlYXNlCi0tCi0tY3AgLXIg ZXhhbXBsZXMvZmFubmt1Y2hfcmVkdXggdGFyZ2V0L2Zhbm5rdWNoX3JlZHV4Ci0tY2FyZ29fdGVz dCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L2Zhbm5rdWNoX3JlZHV4L0NhcmdvLnRvbWwgLS1yZWxl YXNlCi0tCi0tIyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL2lzc3Vlcy81NgotLWlmIFtbICR7VEFSR0VUfSAhPSAiaTU4Ni11bmtub3duLWxp bnV4LWdudSIgXV07IHRoZW4KLS0gICAgY3AgLXIgZXhhbXBsZXMvbWFuZGVsYnJvdCB0YXJnZXQv bWFuZGVsYnJvdAotLSAgICBjYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvbWFuZGVs YnJvdC9DYXJnby50b21sIC0tcmVsZWFzZQotLWZpCi0tCi0tY3AgLXIgZXhhbXBsZXMvbWF0cml4 X2ludmVyc2UgdGFyZ2V0L21hdHJpeF9pbnZlcnNlCi0tY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBh dGg9dGFyZ2V0L21hdHJpeF9pbnZlcnNlL0NhcmdvLnRvbWwgLS1yZWxlYXNlCi0tCi0tY3AgLXIg ZXhhbXBsZXMvbmJvZHkgdGFyZ2V0L25ib2R5Ci0tY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9 dGFyZ2V0L25ib2R5L0NhcmdvLnRvbWwgLS1yZWxlYXNlCi0tCi0tY3AgLXIgZXhhbXBsZXMvc3Bl Y3RyYWxfbm9ybSB0YXJnZXQvc3BlY3RyYWxfbm9ybQotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1w YXRoPXRhcmdldC9zcGVjdHJhbF9ub3JtL0NhcmdvLnRvbWwgLS1yZWxlYXNlCi0tCi0taWYgW1sg JHtUQVJHRVR9ICE9ICJpNTg2LXVua25vd24tbGludXgtZ251IiBdXTsgdGhlbgotLSAgICBjcCAt ciBleGFtcGxlcy9zdGVuY2lsIHRhcmdldC9zdGVuY2lsCi0tICAgIGNhcmdvX3Rlc3QgLS1tYW5p ZmVzdC1wYXRoPXRhcmdldC9zdGVuY2lsL0NhcmdvLnRvbWwgLS1yZWxlYXNlCi0tZmkKLS0KLS1j cCAtciBleGFtcGxlcy90cmlhbmdsZV94Zm9ybSB0YXJnZXQvdHJpYW5nbGVfeGZvcm0KLS1jYXJn b190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvdHJpYW5nbGVfeGZvcm0vQ2FyZ28udG9tbCAt LXJlbGVhc2UKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1 bnRlc3QtYW5kcm9pZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVudGVz dC1hbmRyb2lkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bnRl c3QtYW5kcm9pZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFuZHJvaWQucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQ1ICswLDAgQEAKLS11c2Ugc3Rk OjplbnY7Ci0tdXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKLS11c2Ugc3RkOjpwYXRoOjp7UGF0 aCwgUGF0aEJ1Zn07Ci0tCi0tZm4gbWFpbigpIHsKLS0gICAgbGV0IGFyZ3MgPSBlbnY6OmFyZ3Nf b3MoKQotLSAgICAgICAgLnNraXAoMSkKLS0gICAgICAgIC5maWx0ZXIofGFyZ3wgYXJnICE9ICIt LXF1aWV0IikKLS0gICAgICAgIC5jb2xsZWN0Ojo8VmVjPF8+PigpOwotLSAgICBhc3NlcnRfZXEh KGFyZ3MubGVuKCksIDEpOwotLSAgICBsZXQgdGVzdCA9IFBhdGhCdWY6OmZyb20oJmFyZ3NbMF0p OwotLSAgICBsZXQgZHN0ID0gUGF0aDo6bmV3KCIvZGF0YS9sb2NhbC90bXAiKS5qb2luKHRlc3Qu ZmlsZV9uYW1lKCkudW53cmFwKCkpOwotLQotLSAgICBsZXQgc3RhdHVzID0gQ29tbWFuZDo6bmV3 KCJhZGIiKQotLSAgICAgICAgLmFyZygid2FpdC1mb3ItZGV2aWNlIikKLS0gICAgICAgIC5zdGF0 dXMoKQotLSAgICAgICAgLmV4cGVjdCgiZmFpbGVkIHRvIHJ1bjogYWRiIHdhaXQtZm9yLWRldmlj ZSIpOwotLSAgICBhc3NlcnQhKHN0YXR1cy5zdWNjZXNzKCkpOwotLQotLSAgICBsZXQgc3RhdHVz ID0gQ29tbWFuZDo6bmV3KCJhZGIiKQotLSAgICAgICAgLmFyZygicHVzaCIpCi0tICAgICAgICAu YXJnKCZ0ZXN0KQotLSAgICAgICAgLmFyZygmZHN0KQotLSAgICAgICAgLnN0YXR1cygpCi0tICAg ICAgICAuZXhwZWN0KCJmYWlsZWQgdG8gcnVuOiBhZGIgcHVzaHIiKTsKLS0gICAgYXNzZXJ0IShz dGF0dXMuc3VjY2VzcygpKTsKLS0KLS0gICAgbGV0IG91dHB1dCA9IENvbW1hbmQ6Om5ldygiYWRi IikKLS0gICAgICAgIC5hcmcoInNoZWxsIikKLS0gICAgICAgIC5hcmcoJmRzdCkKLS0gICAgICAg IC5vdXRwdXQoKQotLSAgICAgICAgLmV4cGVjdCgiZmFpbGVkIHRvIHJ1bjogYWRiIHNoZWxsIik7 Ci0tICAgIGFzc2VydCEoc3RhdHVzLnN1Y2Nlc3MoKSk7Ci0tCi0tICAgIHByaW50bG4hKCJzdGF0 dXM6IHt9XG5zdGRvdXQgLS0tXG57fVxuc3RkZXJyIC0tLVxue30iLAotLSAgICAgICAgICAgICBv dXRwdXQuc3RhdHVzLAotLSAgICAgICAgICAgICBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0 cHV0LnN0ZG91dCksCi0tICAgICAgICAgICAgIFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZvdXRw dXQuc3RkZXJyKSk7Ci0tCi0tICAgIGxldCBzdGRvdXQgPSBTdHJpbmc6OmZyb21fdXRmOF9sb3Nz eSgmb3V0cHV0LnN0ZG91dCk7Ci0tICAgIGxldCBtdXQgbGluZXMgPSBzdGRvdXQubGluZXMoKS5m aWx0ZXIofGx8IGwuc3RhcnRzX3dpdGgoInRlc3QgcmVzdWx0IikpOwotLSAgICBpZiAhbGluZXMu YWxsKHxsfCBsLmNvbnRhaW5zKCJ0ZXN0IHJlc3VsdDogb2siKSAmJiBsLmNvbnRhaW5zKCIwIGZh aWxlZCIpKSB7Ci0tICAgICAgICBwYW5pYyEoImZhaWxlZCB0byBmaW5kIHN1Y2Nlc3NmdWwgdGVz dCBydW4iKTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL3NldHVwX2JlbmNobWFya3Muc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL3NldHVwX2JlbmNobWFya3Muc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvc2V0dXBfYmVuY2htYXJrcy5zaAkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9zZXR1cF9iZW5j aG1hcmtzLnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3ICsw LDAgQEAKLS0jIS91c3IvYmluL2VudiBiYXNoCi0tCi0tc2V0IC1leAotLQotLSMgR2V0IGxhdGVz dCBJU1BDIGJpbmFyeSBmb3IgdGhlIHRhcmdldCBhbmQgcHV0IGl0IGluIHRoZSBwYXRoCi0tZ2l0 IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9nbnpsYmcvaXNwYy1iaW5hcmllcwotLWNwIGlzcGMt YmluYXJpZXMvaXNwYy0ke1RBUkdFVH0gaXNwYwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvdGVzdC1ydW5uZXItbGludXggYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL3Rlc3QtcnVubmVyLWxpbnV4Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL3Rlc3QtcnVubmVyLWxpbnV4CTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3Rlc3QtcnVu bmVyLWxpbnV4CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyNCAr MCwwIEBACi0tIyEvYmluL3NoCi0tCi0tc2V0IC1lCi0tCi0tYXJjaD0kMQotLXByb2c9JDIKLS0K LS1jZCAvcWVtdS9pbml0Ci0tY3AgLWYgJDIgcHJvZwotLWZpbmQgLiB8IGNwaW8gLS1jcmVhdGUg LS1mb3JtYXQ9J25ld2MnIC0tcXVpZXQgfCBnemlwID4gLi4vaW5pdHJkLmd6Ci0tY2QgLi4KLS0K LS10aW1lb3V0IDMwcyBxZW11LXN5c3RlbS0kYXJjaCBcCi0tICAgICAgICAtbSAxMDI0IFwKLS0g ICAgICAgIC1ub2dyYXBoaWMgXAotLSAgICAgICAgLWtlcm5lbCBrZXJuZWwgXAotLSAgICAgICAg LWluaXRyZCBpbml0cmQuZ3ogXAotLSAgICAgICAgLWFwcGVuZCBpbml0PS9wcm9nID4gb3V0cHV0 IHx8IHRydWUKLS0KLS0jIHJlbW92ZSBrZXJuZWwgbWVzc2FnZXMKLS10ciAtZCAnXHInIDwgb3V0 cHV0IHwgZWdyZXAgLXYgJ15cWycKLS0KLS0jIGlmIHRoZSBvdXRwdXQgY29udGFpbnMgYSBmYWls dXJlLCByZXR1cm4gZXJyb3IKLS0hIGdyZXAgRkFJTEVEIG91dHB1dCA+IC9kZXYvbnVsbAotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY29udHJpYnV0aW5nLm1kIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jb250cmlidXRpbmcubWQKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY29udHJpYnV0aW5nLm1kCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Nv bnRyaWJ1dGluZy5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs NjcgKzAsMCBAQAotLSMgQ29udHJpYnV0aW5nIHRvIGBwYWNrZWRfc2ltZGAKLS0KLS1XZWxjb21l ISBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBkb2N1bWVudCwgaXQgbWVhbnMgeW91IGFyZSBpbnRl cmVzdGVkIGluIGNvbnRyaWJ1dGluZwotLXRvIHRoZSBgcGFja2VkX3NpbWRgIGNyYXRlLgotLQot LSMjIFJlcG9ydGluZyBpc3N1ZXMKLS0KLS1BbGwgaXNzdWVzIHdpdGggdGhpcyBjcmF0ZSBhcmUg dHJhY2tlZCB1c2luZyBHaXRIdWIncyBbSXNzdWUgVHJhY2tlcl0uCi0tCi0tWW91IGNhbiB1c2Ug aXNzdWVzIHRvIGJyaW5nIGJ1Z3MgdG8gdGhlIGF0dGVudGlvbiBvZiB0aGUgbWFpbnRhaW5lcnMs IHRvIGRpc2N1c3MKLS1jZXJ0YWluIHByb2JsZW1zIGVuY291bnRlcmVkIHdpdGggdGhlIGNyYXRl LCBvciB0byByZXF1ZXN0IG5ldyBmZWF0dXJlcyAoYWx0aG91Z2gKLS1mZWF0dXJlIHJlcXVlc3Rz IHNob3VsZCBiZSBsaW1pdGVkIHRvIHRoaW5ncyBtZW50aW9uZWQgaW4gdGhlIFtSRkNdKS4KLS0K LS1PbmUgdGhpbmcgdG8ga2VlcCBpbiBtaW5kIGlzIHRvIGFsd2F5cyB1c2UgdGhlICoqbGF0ZXN0 KiogbmlnaHRseSB0b29sY2hhaW4gd2hlbgotLXdvcmtpbmcgb24gdGhpcyBjcmF0ZS4gRHVlIHRv IHRoZSBuYXR1cmUgb2YgdGhpcyBwcm9qZWN0LCB3ZSB1c2UgYSBsb3Qgb2YgdW5zdGFibGUKLS1m ZWF0dXJlcywgbWVhbmluZyBicmVha2FnZSBoYXBwZW5zIG9mdGVuLgotLQotLVtJc3N1ZSBUcmFj a2VyXTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lz c3VlcwotLVtSRkNdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8yMzY2 Ci0tCi0tIyMjIExMVk0gaXNzdWVzCi0tCi0tVGhlIFJ1c3QgY29tcGlsZXIgcmVsaWVzIG9uIFtM TFZNXShodHRwczovL2xsdm0ub3JnLykgZm9yIG1hY2hpbmUgY29kZSBnZW5lcmF0aW9uLAotLWFu ZCBxdWl0ZSBhIGZldyBMTFZNIGJ1Z3MgaGF2ZSBiZWVuIGRpc2NvdmVyZWQgZHVyaW5nIHRoZSBk ZXZlbG9wbWVudCBvZiB0aGlzIHByb2plY3QuCi0tCi0tSWYgeW91IGVuY291bnRlciBpc3N1ZXMg d2l0aCBpbmNvcnJlY3Qvc3Vib3B0aW1hbCBjb2RlZ2VuLCB3aGljaCB5b3UgZG8gbm90IGVuY291 bnRlcgotLXdoZW4gdXNpbmcgdGhlIFtTSU1EIHZlbmRvciBpbnRyaW5zaWNzXShodHRwczovL2Rv Yy5ydXN0LWxhbmcub3JnL25pZ2h0bHkvc3RkL2FyY2gvKSwKLS1pdCBpcyBsaWtlbHkgdGhlIGlz c3VlIGlzIHdpdGggTExWTSwgb3IgdGhpcyBjcmF0ZSdzIGludGVyYWN0aW9uIHdpdGggaXQuCi0t Ci0tWW91IHNob3VsZCBmaXJzdCBvcGVuIGFuIGlzc3VlICoqaW4gdGhpcyByZXBvKiogdG8gaGVs cCB1cyB0cmFjayB0aGUgcHJvYmxlbSwgYW5kIHdlCi0td2lsbCBoZWxwIGRldGVybWluZSB3aGF0 IGlzIHRoZSBleGFjdCBjYXVzZSBvZiB0aGUgcHJvYmxlbS4KLS1JZiBMTFZNIGlzIGluZGVlZCB0 aGUgY2F1c2UsIHRoZSBpc3N1ZSB3aWxsIGJlIHJlcG9ydGVkIHVwc3RyZWFtIHRvIHRoZQotLVtM TFZNIGJ1Z3RyYWNrZXJdKGh0dHBzOi8vYnVncy5sbHZtLm9yZy8pLgotLQotLSMjIFN1Ym1pdHRp bmcgUHVsbCBSZXF1ZXN0cwotLQotLU5ldyBjb2RlIGlzIHN1Ym1pdHRlZCB0byB0aGUgY3JhdGUg dXNpbmcgR2l0SHViJ3MgW3B1bGwgcmVxdWVzdF0gbWVjaGFuaXNtLgotLVlvdSBzaG91bGQgZmly c3QgZm9yayB0aGlzIHJlcG9zaXRvcnksIG1ha2UgeW91ciBjaGFuZ2VzIChwcmVmZXJhYmx5IGlu IGEgbmV3Ci0tYnJhbmNoKSwgdGhlbiB1c2UgR2l0SHViJ3Mgd2ViIFVJIHRvIGNyZWF0ZSBhIG5l dyBQUi4KLS0KLS1bcHVsbCByZXF1ZXN0XTogaHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20vYXJ0aWNs ZXMvYWJvdXQtcHVsbC1yZXF1ZXN0cy8KLS0KLS0jIyMgRXhhbXBsZXMKLS0KLS1UaGUgYGV4YW1w bGVzYCBkaXJlY3RvcnkgY29udGFpbnMgY29kZSBzaG93Y2FzaW5nIFNJTUQgY29kZSB3cml0dGVu IHdpdGggdGhpcyBjcmF0ZSwKLS11c3VhbGx5IGluIGNvbXBhcmlzb24gdG8gc2NhbGFyIG9yIElT UEMgY29kZS4gSWYgeW91IGhhdmUgYSBwcm9qZWN0IC8gaWRlYSB3aGljaAotLXVzZXMgU0lNRCwg d2UnZCBsb3ZlIHRvIGFkZCBpdCB0byB0aGUgZXhhbXBsZXMgbGlzdC4KLS0KLS1FdmVyeSBleGFt cGxlIHNob3VsZCBpbmNsdWRlIGEgc21hbGwgYFJFQURNRWAsIGRlc2NyaWJpbmcgdGhlIGV4YW1w bGUgY29kZSdzIHB1cnBvc2UuCi0tSWYgeW91ciBleGFtcGxlIGNvdWxkIHBvdGVudGlhbGx5IHdv cmsgYXMgYSBiZW5jaG1hcmssIHRoZW4gYWRkIGEgYGJlbmNobWFyay5zaGAKLS1zY3JpcHQgdG8g YWxsb3cgcnVubmluZyB0aGUgZXhhbXBsZSBiZW5jaG1hcmsgY29kZSBpbiBDSS4gU2VlIGFuIGV4 aXN0aW5nIGV4YW1wbGUncwotLVtgYmVuY2htYXJrLnNoYF0oZXhhbXBsZXMvYW9iZW5jaC9iZW5j aG1hcmsuc2gpIGZvciBhIHNhbXBsZS4KLS0KLS1Eb24ndCBmb3JnZXQgdG8gdXBkYXRlIHRoZSBj cmF0ZSdzIHRvcC1sZXZlbCBgUkVBRE1FYCB3aXRoIGEgbGluayB0byB5b3VyIGV4YW1wbGUuCi0t Ci0tIyMjIFBlcmYgZ3VpZGUKLS0KLS1UaGUgb2JqZWN0aXZlIG9mIHRoZSBbcGVyZm9ybWFuY2Ug Z3VpZGVdW3BlcmYtZ3VpZGVdIGlzIHRvIGJlIGEgY29tcHJlaGVuc2l2ZQotLXJlc291cmNlIGRl dGFpbGluZyB0aGUgcHJvY2VzcyBvZiBvcHRpbWl6aW5nIFJ1c3QgY29kZSB3aXRoIFNJTUQgc3Vw cG9ydC4KLS0KLS1JZiB5b3UgYmVsaWV2ZSBhIGNlcnRhaW4gc2VjdGlvbiBjb3VsZCBiZSByZXdv cmRlZCwgb3IgaWYgeW91IGhhdmUgYW55IHRpcHMgJiB0cmlja3MKLS1yZWxhdGVkIHRvIFNJTUQg d2hpY2ggeW91J2QgbGlrZSB0byBzaGFyZSwgcGxlYXNlIG9wZW4gYSBQUi4KLS0KLS1bbWRCb29r XSBpcyB1c2VkIHRvIG1hbmFnZSB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ3VpZGUgYXMgYSBib29r LgotLQotLVtwZXJmLWd1aWRlXTogaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIuaW8v cGFja2VkX3NpbWQvcGVyZi1ndWlkZS8KLS1bbWRCb29rXTogaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L21kQm9vawotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS8uZ2l0aWdub3JlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlLy5naXRpZ25vcmUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS8uZ2l0aWdub3JlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvLmdp dGlnbm9yZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEgKzAsMCBA QAotLS9ib29rCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJm LWd1aWRlL2Jvb2sudG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9ib29rLnRvbWwKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9ib29rLnRvbWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9ib29rLnRvbWwJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEyICswLDAgQEAKLS1bYm9va10KLS1h dXRob3JzID0gWyJHb256YWxvIEJyaXRvIEdhZGVzY2hpIiwgIkdhYnJpZWwgTWFqZXJpIl0KLS1t dWx0aWxpbmd1YWwgPSBmYWxzZQotLXNyYyA9ICJzcmMiCi0tdGl0bGUgPSAiUnVzdCBTSU1EIFBl cmZvcm1hbmNlIEd1aWRlIgotLWRlc2NyaXB0aW9uID0gIlRoaXMgYm9vayBkZXNjcmliZXMgaG93 IHRvIHdyaXRlIHBlcmZvcm1hbnQgU0lNRCBjb2RlIGluIFJ1c3QuIgotLQotLVtidWlsZF0KLS1j cmVhdGUtbWlzc2luZyA9IGZhbHNlCi0tCi0tW291dHB1dC5odG1sXQotLWFkZGl0aW9uYWwtY3Nz ID0gWyIuL3NyYy9hc2NpaS5jc3MiXQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvU1VNTUFSWS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvU1VNTUFSWS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9TVU1NQVJZLm1kCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvc3JjL1NVTU1BUlkubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDIxICswLDAgQEAKLS0jIFN1bW1hcnkKLS0KLS1bSW50cm9kdWN0aW9uXSguL2lu dHJvZHVjdGlvbi5tZCkKLS0KLS0tIFtGbG9hdGluZy1wb2ludCBNYXRoXSguL2Zsb2F0LW1hdGgv ZnAubWQpCi0tICAtIFtTaG9ydC12ZWN0b3IgTWF0aCBMaWJyYXJ5XSguL2Zsb2F0LW1hdGgvc3Zt bC5tZCkKLS0gIC0gW0FwcHJveGltYXRlIGZ1bmN0aW9uc10oLi9mbG9hdC1tYXRoL2FwcHJveC5t ZCkKLS0gIC0gW0Z1c2VkIG11bHRpcGx5LWFjY3VtdWxhdGVdKC4vZmxvYXQtbWF0aC9mbWEubWQp Ci0tCi0tLSBbVGFyZ2V0IGZlYXR1cmVzXSguL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kKQot LSAgLSBbVXNpbmcgYFJVU1RGTEFHU2BdKC4vdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kKQot LSAgLSBbVXNpbmcgdGhlIGB0YXJnZXRfZmVhdHVyZWAgYXR0cmlidXRlXSguL3RhcmdldC1mZWF0 dXJlL2F0dHJpYnV0ZS5tZCkKLS0gIC0gW0ludGVyYWN0aW9uIHdpdGggaW5saW5pbmddKC4vdGFy Z2V0LWZlYXR1cmUvaW5saW5pbmcubWQpCi0tICAtIFtEZXRlY3RpbmcgZmVhdHVyZXMgYXQgcnVu dGltZV0oLi90YXJnZXQtZmVhdHVyZS9ydW50aW1lLm1kKQotLQotLS0gW0JvdW5kcyBjaGVja2lu Z10oLi9ib3VuZF9jaGVja3MubWQpCi0tLSBbVmVydGljYWwgYW5kIGhvcml6b250YWwgb3BlcmF0 aW9uc10oLi92ZXJ0LWhvci1vcHMubWQpCi0tCi0tLSBbUGVyZm9ybWFuY2UgcHJvZmlsaW5nXSgu L3Byb2YvcHJvZmlsaW5nLm1kKQotLSAgLSBbUHJvZmlsaW5nIG9uIExpbnV4XSguL3Byb2YvbGlu dXgubWQpCi0tICAtIFtVc2luZyBtYWNoaW5lIGNvZGUgYW5hbHl6ZXJzXSguL3Byb2YvbWNhLm1k KQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9z cmMvYXNjaWkuY3NzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy9hc2NpaS5jc3MKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvYXNjaWkuY3NzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNCArMCwwIEBACi0tY29k ZSB7Ci0tICAgIC8qICJTb3VyY2UgQ29kZSBQcm8iIGJyZWFrcyBBU0NJSSBhcnQgKi8KLS0gICAg Zm9udC1mYW1pbHk6IENvbnNvbGFzLCAiVWJ1bnR1IE1vbm8iLCBNZW5sbywgIkRlamFWdSBTYW5z IE1vbm8iLCBtb25vc3BhY2U7Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZAkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjIgKzAsMCBAQAotLSMgQm91bmRzIGNoZWNr aW5nCi0tCi0tUmVhZGluZyBhbmQgd3JpdGluZyBwYWNrZWQgdmVjdG9ycyB0by9mcm9tIHNsaWNl cyBpcyBjaGVja2VkIGJ5IGRlZmF1bHQuCi0tSW5kZXBlbmRlbnRseSBvZiB0aGUgY29uZmlndXJh dGlvbiBvcHRpb25zIHVzZWQsIHRoZSBzYWZlIGZ1bmN0aW9uczoKLS0KLS0qIGBTaW1kPFtUOyBO XT46OmZyb21fc2xpY2VfYWxpZ25lZCgmIHNbLi5dKWAKLS0qIGBTaW1kPFtUOyBOXT46OndyaXRl X3RvX3NsaWNlX2FsaWduZWQoJm11dCBzWy4uXSlgCi0tCi0tYWx3YXlzIGNoZWNrIHRoYXQ6Ci0t Ci0tKiB0aGUgc2xpY2UgaXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSB2ZWN0b3IKLS0qIHRoZSBz bGljZSBpcyBzdWl0YWJseSBhbGlnbmVkIHRvIHBlcmZvcm0gYW4gYWxpZ25lZCBsb2FkL3N0b3Jl IGZvciBhIGBTaW1kPFtUOwotLSAgTl0+YCAodGhpcyBhbGlnbm1lbnQgaXMgb2Z0ZW4gbXVjaCBs YXJnZXIgdGhhbiB0aGF0IG9mIGBUYCkuCi0tCi0tVGhlcmUgYXJlIGBfdW5hbGlnbmVkYCB2ZXJz aW9ucyB0aGF0IHVzZSB1bmFsaWduZWQgbG9hZCBhbmQgc3RvcmVzLCBhcyB3ZWxsIGFzCi0tYHVu c2FmZWAgYF91bmNoZWNrZWRgIHRoYXQgZG8gbm90IHBlcmZvcm0gYW55IGNoZWNrcyBpZmYgYGRl YnVnLWFzc2VydGlvbnMgPQotLWZhbHNlYCAvIGBkZWJ1ZyA9IGZhbHNlYC4gVGhhdCBpcywgdGhl IGBfdW5jaGVja2VkYCBtZXRob2RzIGRvIHN0aWxsIGFzc2VydCBzaXplCi0tYW5kIGFsaWdubWVu dCBpbiBkZWJ1ZyBidWlsZHMgYW5kIGNvdWxkIGFsc28gZG8gc28gaW4gcmVsZWFzZSBidWlsZHMg ZGVwZW5kaW5nCi0tb24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KLS0KLS1UaGVzZSBhc3Nl cnRpb25zIGRvIG9mdGVuIHNpZ25pZmljYW50bHkgaW1wYWN0IHBlcmZvcm1hbmNlIGFuZCB5b3Ug c2hvdWxkIGJlCi0tYXdhcmUgb2YgdGhlbS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvYXBwcm94Lm1kIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2FwcHJveC5t ZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9h dC1tYXRoL2FwcHJveC5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRo L2FwcHJveC5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOCAr MCwwIEBACi0tIyBBcHByb3hpbWF0ZSBmdW5jdGlvbnMKLS0KLS08IS0tIFRPRE86Ci0tCi0tRXhw bGFpbiB0aGF0IHRoZXkgZXhpc3RzLCB0aGF0IHRoZXkgYXJlIG9mdGVuIF9tdWNoXyBmYXN0ZXIs IGhvdyB0byB1c2UgdGhlbSwKLS10aGF0IHBlb3BsZSBzaG91bGQgY2hlY2sgd2hldGhlciB0aGUg ZXJyb3IgaXMgZ29vZCBlbm91Z2ggZm9yIHRoZWlyCi0tYXBwbGljYXRpb25zLiBFeHBsYWluIHRo YXQgdGhpcyBlcnJvciBpcyBjdXJyZW50bHkgdW5zdGFibGUgYW5kIG1pZ2h0IGNoYW5nZS4KLS0t LT4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL2Zsb2F0LW1hdGgvZm1hLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJm LWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5tZAkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsNiArMCwwIEBACi0tIyBGdXNlZCBNdWx0aXBseSBBZGQKLS0KLS08 IS0tIFRPRE86Ci0tRXhwbGFpbiB0aGF0IHRoaXMgaXMgYSBjb21wb3VuZCBvcGVyYXRpb24sIGlu ZmluaXRlIHByZWNpc2lvbiwgZGlmZmVyZW5jZQotLWJldHdlZW4gYG11bF9hZGRgIGFuZCBgbXVs X2FkZGVgLCB0aGF0IExMVk0gY2Fubm90IGRvIHRoaXMgYnkgaXRzZWxmLCBldGMuCi0tLS0+Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9m bG9hdC1tYXRoL2ZwLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy9mbG9hdC1tYXRoL2ZwLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZnAubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvZmxvYXQtbWF0aC9mcC5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMyArMCwwIEBACi0tIyBGbG9hdGluZy1wb2ludCBtYXRoCi0tCi0tVGhpcyBjaGFw dGVyIGNvbnRhaW5zIGluZm9ybWF0aW9uIHBlcnRhaW5pbmcgdG8gd29ya2luZyB3aXRoIGZsb2F0 aW5nLXBvaW50IG51bWJlcnMuCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvc3ZtbC5tZAotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwu bWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1sLm1kCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3ICswLDAgQEAKLS0jIFNob3J0 IFZlY3RvciBNYXRoIExpYnJhcnkKLS0KLS08IS0tIFRPRE86Ci0tRXhwbGFpbiBob3cgaXMgc2hv cnQtdmVjdG9yIG1hdGggcGVyZm9ybWVkIGJ5IGRlZmF1bHQgKGp1c3Qgc2NhbGFyaXplZCBsaWJt IGNhbGxzKS4KLS0KLS1FeHBsYWluIGhvdyB0byBlbmFibGUgYHNsZWVmYCwgZXRjLgotLS0tPgot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv aW50cm9kdWN0aW9uLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy9pbnRyb2R1Y3Rpb24ubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv cGVyZi1ndWlkZS9zcmMvaW50cm9kdWN0aW9uLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL2ludHJvZHVjdGlvbi5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMjYgKzAsMCBAQAotLSMgSW50cm9kdWN0aW9uCi0tCi0tIyMgV2hhdCBpcyBTSU1ECi0t Ci0tPCEtLSBUT0RPOgotLWRlc2NyaWJlIHdoYXQgU0lNRCBpcywgd2hpY2ggYWxnb3JpdGhtcyBj YW4gYmVuZWZpdCBmcm9tIGl0LAotLWdpdmUgdXNhZ2UgZXhhbXBsZXMKLS0tLT4KLS0KLS0jIyBI aXN0b3J5IG9mIFNJTUQgaW4gUnVzdAotLQotLTwhLS0gVE9ETzoKLS1kaXNjdXNzIGhpc3Rvcnkg b2YgdW5zdGFibGUgc3RkOjpzaW1kLAotLXN0YWJpbGl6YXRpb24gb2Ygc3RkOjphcmNoLCBldGMu Ci0tLS0+Ci0tCi0tIyMgRGlzY292ZXIgcGFja2VkX3NpbWQKLS0KLS08IS0tIFRPRE86IGRlc2Ny aWJlIHNjb3BlIG9mIHRoaXMgcHJvamVjdCAtLT4KLS0KLS1Xcml0aW5nIGZhc3QgYW5kIHBvcnRh YmxlIFNJTUQgYWxnb3JpdGhtcyB1c2luZyBgcGFja2VkX3NpbWRgIGlzLCB1bmZvcnR1bmF0ZWx5 LAotLW5vdCB0cml2aWFsLiBUaGVyZSBhcmUgbWFueSBwaXRmYWxzIHRoYXQgb25lIHNob3VsZCBi ZSBhd2FyZSBvZiwgYW5kIHNvbWUgaWRpb21zCi0tdGhhdCBoZWxwIGF2b2lkIHRob3NlIHBpdGZh bGxzLgotLQotLVRoaXMgYm9vayBhdHRlbXB0cyB0byBkb2N1bWVudCB0aGVzZSBiZXN0IHByYWN0 aWNlcyBhbmQgcHJvdmlkZXMgcHJhY3RpY2FsIGV4YW1wbGVzCi0tb24gaG93IHRvIGFwcGx5IHRo ZSB0aXBzIHRvIF95b3VyXyBjb2RlLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9saW51eC5tZCBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9saW51eC5tZAotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL2xpbnV4Lm1kCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwNyArMCwwIEBACi0tIyBQZXJmb3JtYW5jZSBwcm9maWxp bmcgb24gTGludXgKLS0KLS0jIyBVc2luZyBgcGVyZmAKLS0KLS1bcGVyZl0oaHR0cHM6Ly9wZXJm Lndpa2kua2VybmVsLm9yZy8pIGlzIHRoZSBtb3N0IHBvd2VyZnVsIHBlcmZvcm1hbmNlIHByb2Zp bGVyCi0tZm9yIExpbnV4LCBmZWF0dXJpbmcgc3VwcG9ydCBmb3IgdmFyaW91cyBoYXJkd2FyZSBQ ZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXRzLAotLWFzIHdlbGwgYXMgaW50ZWdyYXRpb24gd2l0 aCB0aGUga2VybmVsJ3MgcGVyZm9ybWFuY2UgZXZlbnRzIGZyYW1ld29yay4KLS0KLS1XZSB3aWxs IG9ubHkgbG9vayBhdCBob3cgY2FuIHRoZSBgcGVyZmAgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBw cm9maWxlIFNJTUQgY29kZS4KLS1GdWxsIHN5c3RlbSBwcm9maWxpbmcgaXMgb3V0c2lkZSBvZiB0 aGUgc2NvcGUgb2YgdGhpcyBib29rLgotLQotLSMjIyBSZWNvcmRpbmcKLS0KLS1UaGUgZmlyc3Qg c3RlcCBpcyB0byByZWNvcmQgYSBwcm9ncmFtJ3MgZXhlY3V0aW9uIGR1cmluZyBhbiBhdmVyYWdl IHdvcmtsb2FkLgotLUl0IGhlbHBzIGlmIHlvdSBjYW4gaXNvbGF0ZSB0aGUgcGFydHMgb2YgeW91 ciBwcm9ncmFtIHdoaWNoIGhhdmUgcGVyZm9ybWFuY2UKLS1pc3N1ZXMsIGFuZCBzZXQgdXAgYSBi ZW5jaG1hcmsgd2hpY2ggY2FuIGJlIGVhc2lseSAocmUpcnVuLgotLQotLUJ1aWxkIHRoZSBiZW5j aG1hcmsgYmluYXJ5IGluIHJlbGVhc2UgbW9kZSwgYWZ0ZXIgaGF2aW5nIGVuYWJsZWQgZGVidWcg aW5mbzoKLS0KLS1gYGBzaAotLSQgY2FyZ28gYnVpbGQgLS1yZWxlYXNlCi0tRmluaXNoZWQgcmVs ZWFzZSBbb3B0aW1pemVkICsgZGVidWdpbmZvXSB0YXJnZXQocykgaW4gMC4wMnMKLS1gYGAKLS0K LS1UaGVuIHVzZSB0aGUgYHBlcmYgcmVjb3JkYCBzdWJjb21tYW5kOgotLQotLWBgYHNoCi0tJCBw ZXJmIHJlY29yZCAtLWNhbGwtZ3JhcGg9ZHdhcmYgLi90YXJnZXQvcmVsZWFzZS9teS1wcm9ncmFt Ci0tWyBwZXJmIHJlY29yZDogV29rZW4gdXAgMTAgdGltZXMgdG8gd3JpdGUgZGF0YSBdCi0tWyBw ZXJmIHJlY29yZDogQ2FwdHVyZWQgYW5kIHdyb3RlIDIsMzU2IE1CIHBlcmYuZGF0YSAoMjkyIHNh bXBsZXMpIF0KLS1gYGAKLS0KLS1JbnN0ZWFkIG9mIHVzaW5nIGAtLWNhbGwtZ3JhcGg9ZHdhcmZg LCB3aGljaCBjYW4gYmVjb21lIHByZXR0eSBzbG93LCB5b3UgY2FuIHVzZQotLWAtLWNhbGwtZ3Jh cGg9bGJyYCBpZiB5b3UgaGF2ZSBhIHByb2Nlc3NvciB3aXRoIHN1cHBvcnQgZm9yIExhc3QgQnJh bmNoIFJlY29yZAotLShpLmUuIEludGVsIEhhc3dlbGwgYW5kIG5ld2VyKS4KLS0KLS1gcGVyZmAg d2lsbCwgYnkgZGVmYXVsdCwgcmVjb3JkIHRoZSBjb3VudCBvZiBDUFUgY3ljbGVzIGl0IHRha2Vz IHRvIGV4ZWN1dGUKLS12YXJpb3VzIHBhcnRzIG9mIHlvdXIgcHJvZ3JhbS4gWW91IGNhbiB1c2Ug dGhlIGAtZWAgY29tbWFuZCBsaW5lIG9wdGlvbgotLXRvIGVuYWJsZSBvdGhlciBwZXJmb3JtYW5j ZSBldmVudHMsIHN1Y2ggYXMgYGNhY2hlLW1pc3Nlc2AuIFVzZSBgcGVyZiBsaXN0YAotLXRvIGdl dCBhIGxpc3Qgb2YgYWxsIGhhcmR3YXJlIGNvdW50ZXJzIHN1cHBvcnRlZCBieSB5b3VyIENQVS4K LS0KLS0jIyMgVmlld2luZyB0aGUgcmVwb3J0Ci0tCi0tVGhlIG5leHQgc3RlcCBpcyBnZXR0aW5n IGEgYmlyZCdzIGV5ZSB2aWV3IG9mIHRoZSBwcm9ncmFtJ3MgZXhlY3V0aW9uLgotLWBwZXJmYCBw cm92aWRlcyBhIGBuY3Vyc2VzYC1iYXNlZCBpbnRlcmZhY2Ugd2hpY2ggd2lsbCBnZXQgeW91IHN0 YXJ0ZWQuCi0tCi0tVXNlIGBwZXJmIHJlcG9ydGAgdG8gb3BlbiBhIHZpc3VhbGl6YXRpb24gb2Yg eW91ciBwcm9ncmFtJ3MgcGVyZm9ybWFuY2U6Ci0tCi0tYGBgc2gKLS1wZXJmIHJlcG9ydCAtLWhp ZXJhcmNoeSAtTSBpbnRlbAotLWBgYAotLQotLWAtLWhpZXJhcmNoeWAgd2lsbCBkaXNwbGF5IGEg dHJlZS1saWtlIHN0cnVjdHVyZSBvZiB3aGVyZSB5b3VyIHByb2dyYW0gc3BlbnQKLS1tb3N0IG9m IGl0cyB0aW1lLiBgLU0gaW50ZWxgIGVuYWJsZXMgZGlzYXNzZW1ibHkgb3V0cHV0IHdpdGggSW50 ZWwgc3ludGF4LCB3aGljaAotLWlzIHN1YmplY3RpdmVseSBtb3JlIHJlYWRhYmxlIHRoYW4gdGhl IGRlZmF1bHQgQVQmVCBzeW50YXguCi0tCi0tSGVyZSBpcyB0aGUgb3V0cHV0IGZyb20gcHJvZmls aW5nIHRoZSBgbmJvZHlgIGJlbmNobWFyazoKLS0KLS1gYGAKLS0tIDEwMCwwMCUgbmJvZHkKLS0g IC0gOTQsMTglIG5ib2R5Ci0tICAgICsgOTMsNDglIFsuXSBuYm9keV9saWI6OnNpbWQ6OmFkdmFu Y2UKLS0gICAgKyAwLDcwJSBbLl0gbmJvZHlfbGliOjpydW4KLS0gICAgKyA1LDA2JSBsaWJjLTIu Mjguc28KLS1gYGAKLS0KLS1JZiB5b3UgbW92ZSB3aXRoIHRoZSBhcnJvdyBrZXlzIHRvIGFueSBu b2RlIGluIHRoZSB0cmVlLCB5b3UgY2FuIHRoZSBwcmVzcyBgYWAKLS10byBoYXZlIGBwZXJmYCBf YW5ub3RhdGVfIHRoYXQgbm9kZS4gVGhpcyBtZWFucyBpdCB3aWxsOgotLQotLS0gZGlzYXNzZW1i bGUgdGhlIGZ1bmN0aW9uCi0tCi0tLSBhc3NvY2lhdGUgZXZlcnkgaW5zdHJ1Y3Rpb24gd2l0aCB0 aGUgcGVyY2VudGFnZSBvZiB0aW1lIHdoaWNoIHdhcyBzcGVudCBleGVjdXRpbmcgaXQKLS0KLS0t IGludGVybGVhdmVzIHRoZSBkaXNhc3NlbWJseSB3aXRoIHRoZSBzb3VyY2UgY29kZSwKLS0gIGFz c3VtaW5nIGl0IGZvdW5kIHRoZSBkZWJ1ZyBzeW1ib2xzCi0tICAoeW91IGNhbiB1c2UgYHNgIHRv IHRvZ2dsZSB0aGlzIGJlaGF2aW91cikKLS0KLS1gcGVyZmAgd2lsbCwgYnkgZGVmYXVsdCwgb3Bl biB0aGUgaW5zdHJ1Y3Rpb24gd2hpY2ggaXQgaWRlbnRpZmllZCBhcyBiZWluZyB0aGUKLS1ob3R0 ZXN0IHNwb3QgaW4gdGhlIGZ1bmN0aW9uOgotLQotLWBgYAotLTAsNzYgIOKUgiBtb3ZhcGQgeG1t Mix4bW0wCi0tMCwzOCAg4pSCIG1vdmhscHMgeG1tMix4bW0wCi0tICAgICAg4pSCIGFkZHBkICB4 bW0yLHhtbTAKLS0gICAgICDilIIgdW5wY2tscGQgeG1tMSx4bW0yCi0tMTIsNTAg4pSCIHNxcnRw ZCB4bW0wLHhtbTEKLS0xLDUyICDilIIgbXVscGQgIHhtbTAseG1tMQotLWBgYAotLQotLUluIHRo aXMgY2FzZSwgYHNxcnRwZGAgd2lsbCBiZSBoaWdobGlnaHRlZCBpbiByZWQsIHNpbmNlIHRoYXQn cyB0aGUgaW5zdHJ1Y3Rpb24KLS13aGljaCB0aGUgQ1BVIHNwZW5kcyBtb3N0IG9mIGl0cyB0aW1l IGV4ZWN1dGluZy4KLS0KLS0jIyBVc2luZyBWYWxncmluZAotLQotLVZhbGdyaW5kIGlzIGEgc2V0 IG9mIHRvb2xzIHdoaWNoIGluaXRpYWxseSBoZWxwZWQgQy9DKysgcHJvZ3JhbW1lcnMgZmluZCB1 bnNhZmUKLS1tZW1vcnkgYWNjZXNzZXMgaW4gdGhlaXIgY29kZS4gTm93YWRheXMgdGhlIHByb2pl Y3QgYWxzbyBoYXMKLS0KLS0tIGEgaGVhcCBwcm9maWxlciBjYWxsZWQgYG1hc3NpZmAKLS0KLS0t IGEgY2FjaGUgdXRpbGl6YXRpb24gcHJvZmlsZXIgY2FsbGVkIGBjYWNoZWdyaW5kYAotLQotLS0g YSBjYWxsLWdyYXBoIHBlcmZvcm1hbmNlIHByb2ZpbGVyIGNhbGxlZCBgY2FsbGdyaW5kYAotLQot LTwhLS0KLS1UT0RPOiBleHBsYWluIHZhbGdyaW5kJ3MgZHluYW1pYyBiaW5hcnkgdHJhbnNsYXRp b24sIHdhcm4gYWJvdXQgbWFzc2l2ZQotLXNsb3dkb3duLCB0YWxrIGFib3V0IGBrY2FjaGVncmlu ZGAgZm9yIGEgR1VJCi0tLS0+Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL21jYS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9tY2EubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9tY2EubWQJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9zcmMvcHJvZi9tY2EubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDEwMCArMCwwIEBACi0tIyBNYWNoaW5lIGNvZGUgYW5hbHlzaXMgdG9vbHMKLS0K LS0jIyBUaGUgbWljcm9hcmNoaXRlY3R1cmUgb2YgbW9kZXJuIENQVXMKLS0KLS1XaGlsZSB5b3Ug bWlnaHQgaGF2ZSBoZWFyZCBvZiBJbnN0cnVjdGlvbiBTZXQgQXJjaGl0ZWN0dXJlcywgc3VjaCBh cyBgeDg2YCBvcgotLWBhcm1gIG9yIGBtaXBzYCwgdGhlIHRlcm0gX21pY3JvYXJjaGl0ZWN0dXJl XyAoYWxzbyB3cml0dGVuIGhlcmUgYXMgX8K1LWFyY2hfKSwKLS1yZWZlcnMgdG8gdGhlIGludGVy bmFsIGRldGFpbHMgb2YgYW4gYWN0dWFsIGZhbWlseSBvZiBDUFVzLCBzdWNoIGFzIEludGVsJ3MK LS1fSGFzd2VsbF8gb3IgQU1EJ3MgX0phZ3Vhcl8uCi0tCi0tUmVwbGFjaW5nIHNjYWxhciBjb2Rl IHdpdGggU0lNRCBjb2RlIHdpbGwgaW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBhbGwgQ1BVcwotLXN1 cHBvcnRpbmcgdGhlIHJlcXVpcmVkIHZlY3RvciBleHRlbnNpb25zLgotLUhvd2V2ZXIsIGR1ZSB0 byBtaWNyb2FyY2hpdGVjdHVyYWwgZGlmZmVyZW5jZXMsIHRoZSBhY3R1YWwgc3BlZWQtdXAgYXQK LS1ydW50aW1lIG1pZ2h0IHZhcnkuCi0tCi0tKipFeGFtcGxlKio6IGEgc2ltcGxlIGV4YW1wbGUg YXJpc2VzIHdoZW4gb3B0aW1pemluZyBmb3IgQU1EIEs4IENQVXMuCi0tVGhlIGFzc2VtYmx5IGdl bmVyYXRlZCBmb3IgYW4gZW1wdHkgZnVuY3Rpb24gc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgotLQot LWBgYGFzbQotLW5vcAotLXJldAotLWBgYAotLQotLVRoZSBgbm9wYCBpcyB1c2VkIHRvIGFsaWdu IHRoZSBgcmV0YCBpbnN0cnVjdGlvbiBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLgotLUhvd2V2ZXIs IHRoZSBjb21waWxlciB3aWxsIGFjdHVhbGx5IGdlbmVyYXRlZCB0aGUgZm9sbG93aW5nIGNvZGU6 Ci0tCi0tYGBgYXNtCi0tcmVweiByZXQKLS1gYGAKLS0KLS1UaGUgYHJlcHpgIGluc3RydWN0aW9u IHdpbGwgcmVwZWF0IHRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb24gdW50aWwgYSBjZXJ0YWluCi0t Y29uZGl0aW9uLiBPZiBjb3Vyc2UsIGluIHRoaXMgc2l0dWF0aW9uLCB0aGUgZnVuY3Rpb24gd2ls bCBzaW1wbHkgaW1tZWRpYXRlbHkKLS1yZXR1cm4sIGFuZCB0aGUgYHJldGAgaW5zdHJ1Y3Rpb24g aXMgc3RpbGwgYWxpZ25lZC4KLS1Ib3dldmVyLCBBTUQgSzgncyBicmFuY2ggcHJlZGljdG9yIHBl cmZvcm1zIGJldHRlciB3aXRoIHRoZSBsYXR0ZXIgY29kZS4KLS0KLS1Gb3IgdGhvc2UgbG9va2lu ZyB0byBhYnNvbHV0ZWx5IG1heGltaXplIHBlcmZvcm1hbmNlIGZvciBhIGNlcnRhaW4gdGFyZ2V0 IMK1LWFyY2gsCi0teW91IHdpbGwgaGF2ZSB0byByZWFkIHNvbWUgQ1BVIG1hbnVhbHMsIG9yIGFz ayB0aGUgY29tcGlsZXIgdG8gZG8gaXQgZm9yIHlvdQotLXdpdGggYC1DIHRhcmdldC1jcHVgLgot LQotLSMjIyBTdW1tYXJ5IG9mIENQVSBpbnRlcm5hbHMKLS0KLS1Nb2Rlcm4gcHJvY2Vzc29ycyBh cmUgYWJsZSB0byBleGVjdXRlIGluc3RydWN0aW9ucyBvdXQtb2Ytb3JkZXIgZm9yIGJldHRlciBw ZXJmb3JtYW5jZSwKLS1ieSB1dGlsaXppbmcgdHJpY2tzIHN1Y2ggYXMgW2JyYW5jaCBwcmVkaWN0 aW9uXSwgW2luc3RydWN0aW9uIHBpcGVsaW5pbmddLAotLW9yIFtzdXBlcnNjYWxhciBleGVjdXRp b25dLgotLQotLVticmFuY2ggcHJlZGljdGlvbl06IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93 aWtpL0JyYW5jaF9wcmVkaWN0b3IKLS1baW5zdHJ1Y3Rpb24gcGlwZWxpbmluZ106IGh0dHBzOi8v ZW4ud2lraXBlZGlhLm9yZy93aWtpL0luc3RydWN0aW9uX3BpcGVsaW5pbmcKLS1bc3VwZXJzY2Fs YXIgZXhlY3V0aW9uXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3VwZXJzY2FsYXJf cHJvY2Vzc29yCi0tCi0tU0lNRCBpbnN0cnVjdGlvbnMgYXJlIGFsc28gc3ViamVjdCB0byB0aGVz ZSBvcHRpbWl6YXRpb25zLCBtZWFuaW5nIGl0IGNhbiBnZXQgcHJldHR5Ci0tZGlmZmljdWx0IHRv IGRldGVybWluZSB3aGVyZSB0aGUgc2xvd2Rvd24gaGFwcGVucy4KLS1Gb3IgZXhhbXBsZSwgaWYg dGhlIHByb2ZpbGVyIHJlcG9ydHMgYSBzdG9yZSBvcGVyYXRpb24gaXMgc2xvdywgb25lIG9mIHR3 byB0aGluZ3MKLS1jb3VsZCBiZSBoYXBwZW5pbmc6Ci0tCi0tLSB0aGUgc3RvcmUgaXMgbGltaXRl ZCBieSB0aGUgQ1BVJ3MgbWVtb3J5IGJhbmR3aWR0aCwgd2hpY2ggaXMgYWN0dWFsbHkgYW4gaWRl YWwKLS0gIHNjZW5hcmlvLCBhbGwgdGhpbmdzIGNvbnNpZGVyZWQ7Ci0tCi0tLSBtZW1vcnkgYmFu ZHdpZHRoIGlzIG5vd2hlcmUgbmVhciBpdHMgcGVhaywgYnV0IHRoZSB2YWx1ZSB0byBiZSBzdG9y ZWQgaXMgYXQgdGhlCi0tICBlbmQgb2YgYSBsb25nIGNoYWluIG9mIG9wZXJhdGlvbnMsIGFuZCB0 aGlzIHN0b3JlIGlzIHdoZXJlIHRoZSBwcm9maWxlcgotLSAgZW5jb3VudGVyZWQgdGhlIHBpcGVs aW5lIHN0YWxsOwotLQotLVNpbmNlIG1vc3QgcHJvZmlsZXJzIGFyZSBzaW1wbGUgdG9vbHMgd2hp Y2ggZG9uJ3QgdW5kZXJzdGFuZCB0aGUgc3VidGxldGllcyBvZgotLWluc3RydWN0aW9uIHNjaGVk dWxpbmcsIHlvdQotLQotLSMjIEFuYWx5emluZyB0aGUgbWFjaGluZSBjb2RlCi0tCi0tQ2VydGFp biB0b29scyBoYXZlIGtub3dsZWRnZSBvZiBpbnRlcm5hbCBDUFUgbWljcm9hcmNoaXRlY3R1cmUs IGkuZS4gdGhleSBrbm93Ci0tCi0tLSBob3cgbWFueSBwaHlzaWNhbCBbcmVnaXN0ZXIgZmlsZXNd IGEgQ1BVIGFjdHVhbGx5IGhhcwotLQotLS0gd2hhdCBpcyB0aGUgbGF0ZW5jeSAvIHRocm91Z2h0 cHV0IG9mIGFuIGluc3RydWN0aW9uCi0tCi0tLSB3aGF0IFvCtS1vcHNdIGFyZSBnZW5lcmF0ZWQg Zm9yIGEgc2V0IG9mIGluc3RydWN0aW9ucwotLQotLWFuZCBtYW55IG90aGVyIGFyY2hpdGVjdHVy YWwgZGV0YWlscy4KLS0KLS1bcmVnaXN0ZXIgZmlsZXNdOiBodHRwczovL2VuLndpa2lwZWRpYS5v cmcvd2lraS9SZWdpc3Rlcl9maWxlCi0tW8K1LW9wc106IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL01pY3JvLW9wZXJhdGlvbgotLQotLVRoZXNlIHRvb2xzIGFyZSB0aGVyZWZvcmUgYWJs ZSB0byBwcm92aWRlIGFjY3VyYXRlIGluZm9ybWF0aW9uIGFzIHRvIHdoeSBzb21lCi0taW5zdHJ1 Y3Rpb25zIGFyZSBpbmVmZmljaWVudCwgYW5kIHdoZXJlIHRoZSBib3R0bGVuZWNrIGlzLgotLQot LVRoZSBkaXNhZHZhbnRhZ2UgaXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZXNlIHRvb2xzIHJlcXVp cmVzIGFkdmFuY2VkIGtub3dsZWRnZQotLW9mIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlIHRvIHVu ZGVyc3RhbmQsIGkuZS4gdGhleSAqKmNhbm5vdCoqIHBvaW50IG91dCB3aGF0Ci0tdGhlIGNhdXNl IG9mIHRoZSBpc3N1ZSBpcyBleHBsaWNpdGx5LgotLQotLSMjIEludGVsJ3MgQXJjaGl0ZWN0dXJl IENvZGUgQW5hbHl6ZXIgKElBQ0EpCi0tCi0tW0lBQ0FdIGlzIGEgZnJlZSB0b29sIG9mZmVyZWQg YnkgSW50ZWwgZm9yIGFuYWx5emluZyB0aGUgcGVyZm9ybWFuY2Ugb2YgdmFyaW91cwotLWNvbXB1 dGF0aW9uYWwga2VybmVscy4KLS0KLS1CZWluZyBhIHByb3ByaWV0YXJ5LCBjbG9zZWQgc291cmNl IHRvb2wsIGl0IF9vbmx5XyBzdXBwb3J0cyBJbnRlbCdzIMK1LWFyY2hlcy4KLS0KLS1bSUFDQV06 IGh0dHBzOi8vc29mdHdhcmUuaW50ZWwuY29tL2VuLXVzL2FydGljbGVzL2ludGVsLWFyY2hpdGVj dHVyZS1jb2RlLWFuYWx5emVyCi0tCi0tIyMgbGx2bS1tY2EKLS0KLS08IS0tCi0tVE9ETzogb25j ZSBMTFZNIDcgZ2V0cyByZWxlYXNlZCwgd3JpdGUgYSBjaGFwdGVyIG9uIHVzaW5nIGxsdm0tbWNh Ci0td2l0aCBTSU1EIGRpc2Fzc2VtYmx5LgotLS0tPgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1k Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2Yv cHJvZmlsaW5nLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5n Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNCArMCwwIEBA Ci0tIyBQZXJmb3JtYW5jZSBwcm9maWxpbmcKLS0KLS1XaGlsZSB0aGUgcmVzdCBvZiB0aGUgYm9v ayBwcm92aWRlcyBwcmFjdGljYWwgYWR2aWNlIG9uIGhvdyB0byBpbXByb3ZlIHRoZSBwZXJmb3Jt YW5jZQotLW9mIFNJTUQgY29kZSwgdGhpcyBjaGFwdGVyIGlzIGRlZGljYXRlZCB0byBbKipwZXJm b3JtYW5jZSBwcm9maWxpbmcqKl1bcHJvZmlsaW5nXS4KLS1Qcm9maWxpbmcgY29uc2lzdHMgb2Yg cmVjb3JkaW5nIGEgcHJvZ3JhbSdzIGV4ZWN1dGlvbiBpbiBvcmRlciB0byBpZGVudGlmeSBwcm9n cmFtCi0taG90c3BvdHMuCi0tCi0tKipJbXBvcnRhbnQqKjogbW9zdCBwcm9maWxlcnMgcmVxdWly ZSBkZWJ1ZyBpbmZvcm1hdGlvbiBpbiBvcmRlciB0byBhY2N1cmF0ZWx5Ci0tbGluayB0aGUgcHJv Z3JhbSBob3RzcG90cyBiYWNrIHRvIHRoZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBjb2RlIGxpbmVz LiBSdXN0IHdpbGwKLS1kaXNhYmxlIGRlYnVnIGluZm8gZ2VuZXJhdGlvbiBieSBkZWZhdWx0IGZv ciBvcHRpbWl6ZWQgYnVpbGRzLCBidXQgeW91IGNhbiBjaGFuZ2UKLS10aGF0IFtpbiB5b3VyIGBD YXJnby50b21sYF1bY2FyZ28tcmVmXS4KLS0KLS1bcHJvZmlsaW5nXTogaHR0cHM6Ly9lbi53aWtp cGVkaWEub3JnL3dpa2kvUHJvZmlsaW5nXyhjb21wdXRlcl9wcm9ncmFtbWluZykKLS1bY2FyZ28t cmVmXTogaHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZy9jYXJnby9yZWZlcmVuY2UvbWFuaWZlc3Qu aHRtbCN0aGUtcHJvZmlsZS1zZWN0aW9ucwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVy ZS9hdHRyaWJ1dGUubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1n dWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYt Z3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2F0dHJpYnV0ZS5tZAkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNSArMCwwIEBACi0tIyBUaGUgYHRhcmdldF9mZWF0dXJl YCBhdHRyaWJ1dGUKLS0KLS08IS0tIFRPRE86Ci0tRXhwbGFpbiB0aGUgYCNbdGFyZ2V0X2ZlYXR1 cmVdYCBhdHRyaWJ1dGUKLS0tLT4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9mZWF0 dXJlcy5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsMTMgKzAsMCBAQAotLSMgRW5hYmxpbmcgdGFyZ2V0IGZlYXR1cmVzCi0t Ci0tTm90IGFsbCBwcm9jZXNzb3JzIG9mIGEgY2VydGFpbiBhcmNoaXRlY3R1cmUgd2lsbCBoYXZl IFNJTUQgcHJvY2Vzc2luZyB1bml0cywKLS1hbmQgdXNpbmcgYSBTSU1EIGluc3RydWN0aW9uIHdo aWNoIGlzIG5vdCBzdXBwb3J0ZWQgd2lsbCB0cmlnZ2VyIHVuZGVmaW5lZCBiZWhhdmlvci4KLS0K LS1UbyBhbGxvdyBidWlsZGluZyBzYWZlLCBwb3J0YWJsZSBwcm9ncmFtcywgdGhlIFJ1c3QgY29t cGlsZXIgd2lsbCAqKm5vdCoqLCBieSBkZWZhdWx0LAotLWdlbmVyYXRlIGFueSBzb3J0IG9mIHZl Y3RvciBpbnN0cnVjdGlvbnMsIHVubGVzcyBpdCBjYW4gc3RhdGljYWxseSBkZXRlcm1pbmUKLS10 aGV5IGFyZSBzdXBwb3J0ZWQuIEZvciBleGFtcGxlLCBvbiBBTUQ2NCwgU1NFMiBzdXBwb3J0IGlz IGFyY2hpdGVjdHVyYWxseSBndWFyYW50ZWVkLgotLVRoZSBgeDg2XzY0LWFwcGxlLWRhcndpbmAg dGFyZ2V0IGVuYWJsZXMgdXAgdG8gU1NTRTMuIFRoZSBnZXQgYSBkZWZpbnRpdmUgbGlzdCBvZgot LXdoaWNoIGZlYXR1cmVzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQgb24gdmFyaW91cyBwbGF0Zm9y bXMsIHJlZmVyIHRvIHRoZSB0YXJnZXQKLS1zcGVjaWZpY2F0aW9ucyBbaW4gdGhlIGNvbXBpbGVy J3Mgc291cmNlIGNvZGVdW3RhcmdldHNdLgotLQotLVt0YXJnZXRzXTogaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy9ydXN0L3RyZWUvbWFzdGVyL3NyYy9saWJydXN0Y190YXJnZXQvc3BlYwot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv dGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lubGluaW5nLm1kCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lubGlu aW5nLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lubGlu aW5nLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1ICswLDAg QEAKLS0jIElubGluaW5nCi0tCi0tPCEtLSBUT0RPOgotLUV4cGxhaW4gaG93IHRoZSBgI1t0YXJn ZXRfZmVhdHVyZV1gIGF0dHJpYnV0ZSBpbnRlcmFjdHMgd2l0aCBpbmxpbmluZwotLS0tPgotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFy Z2V0LWZlYXR1cmUvcHJhY3RpY2UubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNlLm1kCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNl Lm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNl Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzMSArMCwwIEBA Ci0tIyBUYXJnZXQgZmVhdHVyZXMgaW4gcHJhY3RpY2UKLS0KLS1Vc2luZyBgUlVTVEZMQUdTYCB3 aWxsIGFsbG93IHRoZSBjcmF0ZSBiZWluZyBjb21waWxlZCwgYXMgd2VsbCBhcyBhbGwgaXRzCi0t dHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMgdG8gdXNlIGNlcnRhaW4gdGFyZ2V0IGZlYXR1cmVzLgot LQotLUEgdGVobmlxdWUgdXNlZCB0byBhdm9pZCB1bmRlZmluZWQgYmVoYXZpb3IgYXQgcnVudGlt ZSBpcyB0byBjb21waWxlIGFuZAotLXNoaXAgbXVsdGlwbGUgYmluYXJpZXMsIGVhY2ggY29tcGls ZWQgd2l0aCBhIGNlcnRhaW4gc2V0IG9mIGZlYXR1cmVzLgotLVRoaXMgbWlnaHQgbm90IGJlIGZl YXNpYmxlIGluIHNvbWUgY2FzZXMsIGFuZCBjYW4gcXVpY2tseSBnZXQgb3V0IG9mIGhhbmQKLS1h cyBtb3JlIGFuZCBtb3JlIHZlY3RvciBleHRlbnNpb25zIGFyZSBhZGRlZCB0byBhbiBhcmNoaXRl Y3R1cmUuCi0tCi0tUnVzdCBjYW4gYmUgbW9yZSBmbGV4aWJsZTogeW91IGNhbiBidWlsZCBhIHNp bmdsZSBiaW5hcnkvbGlicmFyeSB3aGljaCBhdXRvbWF0aWNhbGx5Ci0tcGlja3MgdGhlIGJlc3Qg c3VwcG9ydGVkIHZlY3RvciBpbnN0cnVjdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSBob3N0IG1hY2hp bmUuCi0tVGhlIHRyaWNrIGNvbnNpc3RzIG9mIG1vbm9tb3JwaGl6aW5nIHBhcnRzIG9mIHRoZSBj b2RlIGR1cmluZyBidWlsZGluZywgYW5kIHRoZW4KLS11c2luZyBydW4tdGltZSBmZWF0dXJlIGRl dGVjdGlvbiB0byBzZWxlY3QgdGhlIHJpZ2h0IGNvZGUgcGF0aCB3aGVuIHJ1bm5pbmcuCi0tCi0t PCEtLSBUT0RPCi0tRXhwbGFpbiBob3cgdG8gY3JlYXRlIGVmZmljaWVudCBmdW5jdGlvbnMgdGhh dCBkaXNwYXRjaCB0byBkaWZmZXJlbnQKLS1pbXBsZW1lbnRhdGlvbnMgYXQgcnVuLXRpbWUgd2l0 aG91dCBpc3N1ZXMgKGUuZy4gdXNpbmcgYCNbaW5saW5lKGFsd2F5cyldYCBmb3IKLS10aGUgaW1w bHMsIHdyYXBwaW5nIGluIGAjW3RhcmdldF9mZWF0dXJlXWAsIGFuZCB0aGUgd3JhcHBpbmcgdGhv c2UgaW4gYSBmdW5jdGlvbgotLXRoYXQgZG9lcyBydW4tdGltZSBmZWF0dXJlIGRldGVjdGlvbiku Ci0tLS0+Ci0tCi0tKipOT1RFKiogKHg4NiBzcGVjaWZpYyk6IGJlY2F1c2UgdGhlIEFWWCAoMjU2 LWJpdCkgcmVnaXN0ZXJzIGV4dGVuZCB0aGUgZXhpc3RpbmcKLS1TU0UgKDEyOC1iaXQpIHJlZ2lz dGVycywgbWl4aW5nIFNTRSBhbmQgQVZYIGluc3RydWN0aW9ucyBpbiBhIHByb2dyYW0gY2FuIGNh dXNlCi0tcGVyZm9ybWFuY2UgaXNzdWVzLgotLQotLVRoZSBzb2x1dGlvbiBpcyB0byBjb21waWxl IGFsbCBjb2RlLCBldmVuIHRoZSBjb2RlIHdyaXR0ZW4gd2l0aCAxMjgtYml0IHZlY3RvcnMsCi0t d2l0aCB0aGUgQVZYIHRhcmdldCBmZWF0dXJlIGVuYWJsZWQuIFRoaXMgd2lsbCBjYXVzZSB0aGUg Y29tcGlsZXIgdG8gcHJlZml4IHRoZQotLWdlbmVyYXRlZCBpbnN0cnVjdGlvbnMgd2l0aCB0aGUg W1ZFWF0gcHJlZml4LgotLQotLVtWRVhdOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9W RVhfcHJlZml4Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJm LWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydW50aW1lLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydW50aW1lLm1kCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL3J1bnRpbWUubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1 cmUvcnVudGltZS5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs NSArMCwwIEBACi0tIyBEZXRlY3RpbmcgaG9zdCBmZWF0dXJlcyBhdCBydW50aW1lCi0tCi0tPCEt LSBUT0RPOgotLUV4cGxhaW4gY29zdCAoaG93IGl0IHdvcmtzKS4KLS0tLT4KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL3J1c3RmbGFncy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZAky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDc3ICswLDAgQEAKLS0j IFVzaW5nIFJVU1RGTEFHUwotLQotLU9uZSBvZiB0aGUgZWFzaWVzdCB3YXlzIHRvIGJlbmVmaXQg ZnJvbSBTSU1EIGlzIHRvIGFsbG93IHRoZSBjb21waWxlcgotLXRvIGdlbmVyYXRlIGNvZGUgdXNp bmcgY2VydGFpbiB2ZWN0b3IgaW5zdHJ1Y3Rpb24gZXh0ZW5zaW9ucy4KLS0KLS1UaGUgZW52aXJv bm1lbnQgdmFyaWFibGUgYFJVU1RGTEFHU2AgY2FuIGJlIHVzZWQgdG8gcGFzcyBvcHRpb25zIGZv ciBjb2RlCi0tZ2VuZXJhdGlvbiB0byB0aGUgUnVzdCBjb21waWxlci4gVGhlc2UgZmxhZ3Mgd2ls bCBhZmZlY3QgKiphbGwqKiBjb21waWxlZCBjcmF0ZXMuCi0tCi0tVGhlcmUgYXJlIHR3byBmbGFn cyB3aGljaCBjYW4gYmUgdXNlZCB0byBlbmFibGUgc3BlY2lmaWMgdmVjdG9yIGV4dGVuc2lvbnM6 Ci0tCi0tIyMgdGFyZ2V0LWZlYXR1cmUKLS0KLS0tIFN5bnRheDogYC1DIHRhcmdldC1mZWF0dXJl PTxmZWF0dXJlcz5gCi0tCi0tLSBQcm92aWRlcyB0aGUgY29tcGlsZXIgd2l0aCBhIGNvbW1hLXNl cGFyYXRlZCBzZXQgb2YgaW5zdHJ1Y3Rpb24gZXh0ZW5zaW9ucwotLSAgdG8gZW5hYmxlLgotLQot LSAgKipFeGFtcGxlKio6IFVzZSBgLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTMsK2F2eGAgdG8gZW5h YmxlIGdlbmVyYXRpbmcgaW5zdHJ1Y3Rpb25zCi0tICBmb3IgW1N0cmVhbWluZyBTSU1EIEV4dGVu c2lvbnMgM10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU1NFMykgYW5kCi0tICBbQWR2 YW5jZWQgVmVjdG9yIEV4dGVuc2lvbnNdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Fk dmFuY2VkX1ZlY3Rvcl9FeHRlbnNpb25zKS4KLS0KLS0tIFRvIGxpc3QgdGFyZ2V0IHRyaXBsZXMg Zm9yIGFsbCB0YXJnZXRzIHN1cHBvcnRlZCBieSBSdXN0LCB1c2U6Ci0tCi0tICBgYGBzaAotLSAg cnVzdGMgLS1wcmludCB0YXJnZXQtbGlzdAotLSAgYGBgCi0tCi0tLSBUbyBsaXN0IGFsbCBzdXBw b3J0IHRhcmdldCBmZWF0dXJlcyBmb3IgYSBjZXJ0YWluIHRhcmdldCB0cmlwbGUsIHVzZToKLS0K LS0gIGBgYHNoCi0tICBydXN0YyAtLXRhcmdldD0ke1RSSVBMRX0gLS1wcmludCB0YXJnZXQtZmVh dHVyZXMKLS0gIGBgYAotLQotLS0gTm90ZSB0aGF0IGFsbCBDUFUgZmVhdHVyZXMgYXJlIGluZGVw ZW5kZW50LCBhbmQgd2lsbCBoYXZlIHRvIGJlIGVuYWJsZWQgaW5kaXZpZHVhbGx5LgotLQotLSAg KipFeGFtcGxlKio6IFNldHRpbmcgYC1DIHRhcmdldC1mZWF0dXJlPSthdngyYCB3aWxsIF9ub3Rf IGVuYWJsZSBgZm1hYCwgZXZlbiB0aG91Z2gKLS0gIGFsbCBDUFVzIHdoaWNoIHN1cHBvcnQgQVZY MiBhbHNvIHN1cHBvcnQgRk1BLiBUbyBlbmFibGUgYm90aCwgb25lIGhhcyB0byB1c2UKLS0gIGAt QyB0YXJnZXQtZmVhdHVyZT0rYXZ4MiwrZm1hYAotLQotLS0gU29tZSBmZWF0dXJlcyBhbHNvIGRl cGVuZCBvbiBvdGhlciBmZWF0dXJlcywgd2hpY2ggbmVlZCB0byBiZSBlbmFibGVkIGZvciB0aGUK LS0gIHRhcmdldCBpbnN0cnVjdGlvbnMgdG8gYmUgZ2VuZXJhdGVkLgotLQotLSAgKipFeGFtcGxl Kio6IFVubGVzcyBgdjdgIGlzIHNwZWNpZmllZCBhcyB0aGUgdGFyZ2V0IENQVSAoc2VlIGJlbG93 KSwgdG8gZW5hYmxlCi0tICBORU9OIG9uIEFSTSBpdCBpcyBuZWNlc3NhcnkgdG8gdXNlIGAtQyB0 YXJnZXQtZmVhdHVyZT0rdjcsK25lb25gLgotLQotLSMjIHRhcmdldC1jcHUKLS0KLS0tIFN5bnRh eDogYC1DIHRhcmdldC1jcHU9PGNwdT5gCi0tCi0tLSBTZXRzIHRoZSBpZGVudGlmaWVyIG9mIGEg Q1BVIGZhbWlseSAvIG1vZGVsIGZvciB3aGljaCB0byBidWlsZCBhbmQgb3B0aW1pemUgdGhlIGNv ZGUuCi0tCi0tICAqKkV4YW1wbGUqKjogYFJVU1RGTEFHUz0nLUMgdGFyZ2V0LWNwdT1jb3J0ZXgt YTc1J2AKLS0KLS0tIFRvIGxpc3QgYWxsIHN1cHBvcnRlZCB0YXJnZXQgQ1BVcyBmb3IgYSBjZXJ0 YWluIHRhcmdldCB0cmlwbGUsIHVzZToKLS0KLS0gIGBgYHNoCi0tICBydXN0YyAtLXRhcmdldD0k e1RSSVBMRX0gLS1wcmludCB0YXJnZXQtY3B1cwotLSAgYGBgCi0tCi0tICAqKkV4YW1wbGUqKjoK LS0KLS0gIGBgYHNoCi0tICBydXN0YyAtLXRhcmdldD1pNjg2LXBjLXdpbmRvd3MtbXN2YyAtLXBy aW50IHRhcmdldC1jcHVzCi0tICBgYGAKLS0KLS0tIFRoZSBjb21waWxlciB3aWxsIHRyYW5zbGF0 ZSB0aGlzIGludG8gYSBsaXN0IG9mIHRhcmdldCBmZWF0dXJlcy4gVGhlcmVmb3JlLAotLSAgaW5k aXZpZHVhbCBmZWF0dXJlIGNoZWNrcyAoYCNbY2ZnKHRhcmdldF9mZWF0dXJlID0gIi4uLiIpXWAp IHdpbGwgc3RpbGwKLS0gIHdvcmsgcHJvcGVybHkuCi0tCi0tLSBJdCB3aWxsIGNhdXNlIHRoZSBj b2RlIGdlbmVyYXRvciB0byBvcHRpbWl6ZSB0aGUgZ2VuZXJhdGVkIGNvZGUgZm9yIHRoYXQKLS0g IHNwZWNpZmljIENQVSBtb2RlbC4KLS0KLS0tIFVzaW5nIGBuYXRpdmVgIGFzIHRoZSBDUFUgbW9k ZWwgd2lsbCBjYXVzZSBSdXN0IHRvIGdlbmVyYXRlIGFuZCBvcHRpbWl6ZSBjb2RlCi0tICBmb3Ig dGhlIENQVSBydW5uaW5nIHRoZSBjb21waWxlci4gSXQgaXMgdXNlZnVsIHdoZW4gYnVpbGRpbmcg cHJvZ3JhbXMgd2hpY2ggeW91Ci0tICBwbGFuIHRvIG9ubHkgdXNlIGxvY2FsbHkuIFRoaXMgc2hv dWxkIG5ldmVyIGJlIHVzZWQgd2hlbiB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zCi0tICBhcmUgbWVh bnQgdG8gYmUgcnVuIG9uIG90aGVyIGNvbXB1dGVycywgc3VjaCBhcyB3aGVuIHBhY2thZ2luZyBm b3IgZGlzdHJpYnV0aW9uCi0tICBvciBjcm9zcy1jb21waWxpbmcuCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9w cy5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy92 ZXJ0LWhvci1vcHMubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdmVydC1ob3Itb3Bz Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3NiArMCwwIEBA Ci0tIyBWZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBvcGVyYXRpb25zCi0tCi0tSW4gU0lNRCB0ZXJt aW5vbG9neSwgZWFjaCB2ZWN0b3IgaGFzIGEgY2VydGFpbiAid2lkdGgiIChudW1iZXIgb2YgbGFu ZXMpLgotLUEgdmVjdG9yIHByb2Nlc3NvciBpcyBhYmxlIHRvIHBlcmZvcm0gdHdvIGtpbmRzIG9m IG9wZXJhdGlvbnMgb24gYSB2ZWN0b3I6Ci0tCi0tLSBWZXJ0aWNhbCBvcGVyYXRpb25zOgotLSAg b3BlcmF0ZSBvbiB0d28gdmVjdG9ycyBvZiB0aGUgc2FtZSB3aWR0aCwgcmVzdWx0IGhhcyBzYW1l IHdpZHRoCi0tCi0tKipFeGFtcGxlKio6IHZlcnRpY2FsIGFkZGl0aW9uIG9mIHR3byBgZjMyeDRg IHZlY3RvcnMKLS0KLS0gICAgICAlMCAgICAgPT0gfCAyIHwgLTMuNSB8ICAwIHwgNyB8Ci0tICAg ICAgICAgICAgICAgICAgKyAgICAgKyAgICAgKyAgICsKLS0gICAgICAlMSAgICAgPT0gfCA0IHwg IDEuNSB8IC0xIHwgMCB8Ci0tICAgICAgICAgICAgICAgICAgPSAgICAgPSAgICAgPSAgID0KLS0g ICAgJTAgKyAlMSAgPT0gfCA2IHwgIC0yICB8IC0xIHwgNyB8Ci0tCi0tLSBIb3Jpem9udGFsIG9w ZXJhdGlvbnM6Ci0tICByZWR1Y2UgdGhlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzIGluIHNvbWUg d2F5LAotLSAgdGhlIHJlc3VsdCdzIGVsZW1lbnRzIGNvbWJpbmUgaW5mb3JtYXRpb24gZnJvbSB0 aGUgdHdvIG9yaWdpbmFsIG9uZXMKLS0KLS0qKkV4YW1wbGUqKjogaG9yaXpvbnRhbCBhZGRpdGlv biBvZiB0d28gYHU2NHgyYCB2ZWN0b3JzCi0tCi0tICAgICAgJTAgICAgID09IHwgMSB8ICAzIHwK LS0gICAgICAgICAgICAgICAgICDilJTilIAr4pSA4pSA4pSA4pSYCi0tICAgICAgICAgICAgICAg ICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilJAKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAg4pSCCi0tICAgICAgJTEgICAgID09IHwgNCB8IC0xIHwgIOKUggotLSAgICAgICAgICAg ICAgICAgIOKUlOKUgCvilIDilIDilJggICAg4pSCCi0tICAgICAgICAgICAgICAgICAgICDilJTi lIDilIDilIDilJAgICDilIIKLS0gICAgICAgICAgICAgICAgICAgICAgICDilIIgICDilIIKLS0g ICAgICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilILilIDilIDilIDilJgKLS0gICAg ICAgICAgICAgICAgICDilrwgICAgIOKWvAotLSAgICAlMCArICUxICA9PSB8IDQgfCAgIDMgfAot LQotLSMjIFBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb24gb2YgaG9yaXpvbnRhbCBvcGVyYXRpb25z Ci0tCi0tVGhlIHJlc3VsdCBvZiB2ZXJ0aWNhbCBvcGVyYXRpb25zLCBsaWtlIHZlY3RvciBuZWdh dGlvbjogYC1hYCwgZm9yIGEgZ2l2ZW4gbGFuZSwKLS1kb2VzIG5vdCBkZXBlbmQgb24gdGhlIHJl c3VsdCBvZiB0aGUgb3BlcmF0aW9uIGZvciB0aGUgb3RoZXIgbGFuZXMuIFRoZSByZXN1bHQKLS1v ZiBob3Jpem9udGFsIG9wZXJhdGlvbnMsIGxpa2UgdGhlIHZlY3RvciBgc3VtYCByZWR1Y3Rpb246 IGBhLnN1bSgpYCwgZGVwZW5kcyBvbgotLXRoZSB2YWx1ZSBvZiBhbGwgdmVjdG9yIGxhbmVzLgot LQotLUluIHZpcnR1YWxseSBhbGwgYXJjaGl0ZWN0dXJlcyB2ZXJ0aWNhbCBvcGVyYXRpb25zIGFy ZSBmYXN0LCB3aGlsZSBob3Jpem9udGFsCi0tb3BlcmF0aW9ucyBhcmUsIGJ5IGNvbXBhcmlzb24s IHZlcnkgc2xvdy4KLS0KLS1Db25zaWRlciB0aGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgZm9y IGNvbXB1dGluZyB0aGUgc3VtIG9mIGFsbCBgZjMyYCB2YWx1ZXMKLS1pbiBhIHNsaWNlOgotLQot LWBgYHJ1c3QKLS1mbiBmYXN0X3N1bSh4OiAmW2YzMl0pIC0+IGYzMiB7Ci0tICAgIGFzc2VydCEo eC5sZW4oKSAlIDQgPT0gMCk7Ci0tICAgIGxldCBtdXQgc3VtID0gZjMyeDQ6OnNwbGF0KDAuKTsg Ly8gWzAuLCAwLiwgMC4sIDAuXQotLSAgICBmb3IgaSBpbiAoMC4ueC5sZW4oKSkuc3RlcF9ieSg0 KSB7Ci0tICAgICAgICBzdW0gKz0gZjMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ4W2kuLl0p OwotLSAgICB9Ci0tICAgIHN1bS5zdW0oKQotLX0KLS0KLS1mbiBzbG93X3N1bSh4OiAmW2YzMl0p IC0+IGYzMiB7Ci0tICAgIGFzc2VydCEoeC5sZW4oKSAlIDQgPT0gMCk7Ci0tICAgIGxldCBtdXQg c3VtOiBmMzIgPSAwLjsKLS0gICAgZm9yIGkgaW4gKDAuLngubGVuKCkpLnN0ZXBfYnkoNCkgewot LSAgICAgICAgc3VtICs9IGYzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmeFtpLi5dKS5zdW0o KTsKLS0gICAgfQotLSAgICBzdW0KLS19Ci0tYGBgCi0tCi0tVGhlIGlubmVyIGxvb3Agb3ZlciB0 aGUgc2xpY2UgaXMgd2hlcmUgdGhlIGJ1bGsgb2YgdGhlIHdvcmsgYWN0dWFsbHkgaGFwcGVucy4K LS1UaGVyZSwgdGhlIGBmYXN0X3N1bWAgZnVuY3Rpb24gcGVyZm9ybSB2ZXJ0aWNhbCBvcGVyYXRp b25zIGludG8gYSB2ZWN0b3IsIGRvaW5nCi0tYSBzaW5nbGUgaG9yaXpvbnRhbCByZWR1Y3Rpb24g YXQgdGhlIGVuZCwgd2hpbGUgdGhlIGBzbG93X3N1bWAgZnVuY3Rpb24gcGVyZm9ybXMKLS1ob3Jp em9udGFsIHZlY3RvciBvcGVyYXRpb25zIGluc2lkZSBvZiB0aGUgbG9vcC4KLS0KLS1PbiBhbGwg d2lkZWx5LXVzZWQgYXJjaGl0ZWN0dXJlcywgYGZhc3Rfc3VtYCBpcyBhIGxhcmdlIGNvbnN0YW50 IGZhY3RvciBmYXN0ZXIKLS10aGFuIGBzbG93X3N1bWAuIFlvdSBjYW4gcnVuIHRoZSBbc2xpY2Vf c3VtXSgpIGV4YW1wbGUgYW5kIHNlZSBmb3IgeW91cnNlbGYuIE9uCi0tdGhlIHBhcnRpY3VsYXIg bWFjaGluZSB0ZXN0ZWQgdGhlcmUgdGhlIGFsZ29yaXRobSB1c2luZyB0aGUgaG9yaXpvbnRhbCB2 ZWN0b3IKLS1hZGRpdGlvbiBpcyAyLjd4IHNsb3dlciB0aGFuIHRoZSBvbmUgdXNpbmcgdmVydGlj YWwgdmVjdG9yIG9wZXJhdGlvbnMhCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9ydXN0Zm10LnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3J1c3Rm bXQudG9tbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ydXN0Zm10LnRvbWwJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcnVzdGZtdC50b21sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSw1ICswLDAgQEAKLS1tYXhfd2lkdGggPSAxMTAKLS11c2Vfc21hbGxfaGV1 cmlzdGljcyA9ICJNYXgiCi0td3JhcF9jb21tZW50cyA9IHRydWUKLS1lZGl0aW9uID0gIjIwMTgi Ci0tZXJyb3Jfb25fbGluZV9vdmVyZmxvdyA9IHRydWUKLVwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9i aXRfbWFuaXAucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21h bmlwLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21h bmlwLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21hbmlwLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMjkgKzAsMCBAQAotLS8vISBCaXQgbWFuaXB1 bGF0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9iaXRfbWFuaXAgewotLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+ IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVt YmVyIG9mIG9uZXMgaW4gdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZgotLSAgICAgICAgICAg IC8vLyB0aGUgbGFuZXMgb2YgYHNlbGZgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIHB1YiBmbiBjb3VudF9vbmVzKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICBzdXBlcjo6Y29kZWdlbjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3Rwb3Aoc2VsZikKLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB6ZXJv cyBpbiB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mCi0tICAgICAgICAgICAgLy8vIHRoZSBs YW5lcyBvZiBgc2VsZmAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHVi IGZuIGNvdW50X3plcm9zKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzdXBlcjo6 Y29kZWdlbjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3Rwb3AoIXNlbGYpCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJv cyBpbiB0aGUgYmluYXJ5Ci0tICAgICAgICAgICAgLy8vIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBs YW5lcyBvZiBgc2VsZmAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHVi IGZuIGxlYWRpbmdfemVyb3Moc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHN1cGVy Ojpjb2RlZ2VuOjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdGx6KHNlbGYpCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdHJhaWxpbmcgemVy b3MgaW4gdGhlIGJpbmFyeQotLSAgICAgICAgICAgIC8vLyByZXByZXNlbnRhdGlvbiBvZiB0aGUg bGFuZXMgb2YgYHNlbGZgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiBmbiB0cmFpbGluZ196ZXJvcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc3Vw ZXI6OmNvZGVnZW46OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0dHooc2VsZikKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRl c3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgI1th bGxvdyhvdmVyZmxvd2luZ19saXRlcmFscyldCi0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX2JpdF9tYW5pcD5dIHsKLS0gICAgICAgICAgICAgICAgICAgICMhW2FsbG93KGNvbnN0X2l0 ZW1fbXV0YXRpb24pXQotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLQotLSAg ICAgICAgICAgICAgICAgICAgY29uc3QgTEFORV9XSURUSDogdXNpemUgPSBtZW06OnNpemVfb2Y6 OjwkZWxlbV90eT4oKSAqIDg7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBtYWNyb19ydWxlcyEg dGVzdF9mdW5jIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAoJHg6ZXhwciwgJGZ1bmM6aWRl bnQpID0+IHt7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWN0dWFsID0g JHg7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMo KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgPSBhY3R1YWwucmVw bGFjZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICR4LmV4dHJhY3QoaSkuJGZ1bmMoKSBhcyAkZWxl bV90eQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXhwZWN0 ZWQgPSAkeC4kZnVuYygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGFjdHVhbCwgZXhwZWN0ZWQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH19OwotLSAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgY29uc3QgQllURVM6IFt1 ODsgNjRdID0gWwotLSAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYs IDcsCi0tICAgICAgICAgICAgICAgICAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAx NSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwg MjMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAs IDMxLAotLSAgICAgICAgICAgICAgICAgICAgICAgIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4 LCAzOSwKLS0gICAgICAgICAgICAgICAgICAgICAgICA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0 NiwgNDcsCi0tICAgICAgICAgICAgICAgICAgICAgICAgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1Mywg NTQsIDU1LAotLSAgICAgICAgICAgICAgICAgICAgICAgIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEs IDYyLCA2MywKLS0gICAgICAgICAgICAgICAgICAgIF07Ci0tCi0tICAgICAgICAgICAgICAgICAg ICBmbiBsb2FkX2J5dGVzKCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg ZWxlbXM6ICZtdXQgWyRlbGVtX3R5XSA9IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNsaWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQoCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCWVRFUy5hc19tdXRfcHRyKCkgYXMgKm11dCAkZWxlbV90eSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6bGFuZXMoKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgJGlkOjpmcm9tX3NsaWNlX3VuYWxpZ25lZChlbGVtcykKLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgZm4gY291bnRfb25lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMCksIGNvdW50X29uZXMpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCghMCksIGNvdW50X29uZXMpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEobG9hZF9ieXRlcygpLCBjb3VudF9vbmVzKTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgZm4gY291bnRfemVyb3MoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDApLCBjb3VudF96ZXJvcyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KCEwKSwgY291bnRfemVyb3Mp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEobG9hZF9ieXRlcygpLCBjb3Vu dF96ZXJvcyk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGxlYWRpbmdfemVyb3MoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDApLCBsZWFkaW5n X3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQo MSksIGxlYWRpbmdfemVyb3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvbWUgaW1w bGVtZW50YXRpb25zIHVzZSBgcHNodWZiYCB3aGljaCBoYXMgdW5pcXVlCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gYmVoYXZpb3Igd2hlbiB0aGUgOHRoIGJpdCBpcyBzZXQuCi0tICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDBiMTAwMF8wMDEwKSwgbGVh ZGluZ196ZXJvcyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNw bGF0KCEwKSwgbGVhZGluZ196ZXJvcyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9m dW5jISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgxIDw8IChMQU5F X1dJRFRIIC0gMSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nX3plcm9z Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgbGVhZGluZ196ZXJvcyk7Ci0tICAgICAgICAgICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAg ICAgICAgIGZuIHRyYWlsaW5nX3plcm9zKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfZnVuYyEoJGlkOjpzcGxhdCgwKSwgdHJhaWxpbmdfemVyb3MpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgxKSwgdHJhaWxpbmdfemVyb3MpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwYjEwMDBfMDAxMCks IHRyYWlsaW5nX3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRp ZDo6c3BsYXQoITApLCB0cmFpbGluZ196ZXJvcyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9mdW5jISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgxIDw8 IChMQU5FX1dJRFRIIC0gMSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGlu Z196ZXJvcwotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9mdW5jIShsb2FkX2J5dGVzKCksIHRyYWlsaW5nX3plcm9zKTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2JpdG1hc2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvYml0bWFzay5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2JpdG1hc2sucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRtYXNrLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3OSArMCwwIEBACi0tLy8hIEJpdG1h c2sgQVBJCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfYml0bWFzayB7Ci0tICAgICgkaWQ6aWRlbnQg fCAkaWJpdG1hc2tfdHk6aWRlbnQgfCAoJHNldDpleHByLCAkY2xlYXI6ZXhwcikKLS0gICAgIHwg JHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8g Q3JlYXRlcyBhIGJpdG1hc2sgd2l0aCB0aGUgTVNCIG9mIGVhY2ggdmVjdG9yIGxhbmUuCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIHRoZSB2ZWN0b3IgaGFzIGxlc3MgdGhh biA4IGxhbmVzLCB0aGUgYml0cyB0aGF0IGRvIG5vdAotLSAgICAgICAgICAgIC8vLyBjb3JyZXNw b25kIHRvIGFueSB2ZWN0b3IgbGFuZXMgYXJlIGNsZWFyZWQuCi0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgcHViIGZuIGJpdG1hc2soc2VsZikgLT4gJGliaXRtYXNrX3R5IHsK LS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgY29kZWdlbjo6bGx2bTo6c2ltZF9iaXRtYXNrKHNl bGYuMCkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYh IHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewot LSAgICAgICAgICAgICAgICAjW2NmZyhub3QoCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhN RTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vl cy8yMTAKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9lbmRpYW4gPSAiYmlnIgotLSAgICAg ICAgICAgICAgICApKV0KLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfYml0bWFzaz5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gYml0bWFzaygpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBjbGVhciBhbGwgbGFuZXMKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCgkY2xlYXIgYXMgXyk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGJpdG1hc2s6ICRpYml0bWFza190eSA9IDA7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2ZWMuYml0bWFzaygpLCBiaXRtYXNrKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBzZXQgZXZlbiBsYW5lcwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdmVjID0gJGlkOjpzcGxhdCgkY2xlYXIgYXMgXyk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2ZWMgPSB2ZWMucmVwbGFjZShpLCAkc2V0IGFzIF8pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGNyZWF0ZSBiaXRtYXNrIHdpdGggZXZlbiBsYW5lcyBzZXQ6Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiaXRtYXNrOiAkaWJpdG1hc2tfdHkgPSAwOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYml0bWFzayB8PSAxIDw8IGk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2ZWMuYml0bWFzaygpLCBiaXRtYXNrKTsKLS0KLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBzZXQgb2RkIGxhbmVzCi0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB2ZWMgPSAkaWQ6OnNwbGF0KCRjbGVhciBhcyBfKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZlYyA9IHZlYy5yZXBsYWNlKGksICRzZXQgYXMgXyk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gY3JlYXRlIGJpdG1hc2sgd2l0aCBvZGQgbGFuZXMgc2V0OgotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYml0bWFzazogJGliaXRtYXNrX3R5ID0gMDsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJpdG1hc2sgfD0gMSA8PCBpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodmVjLmJpdG1hc2soKSwgYml0bWFzayk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gc2V0IGFsbCBsYW5lcwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ZWMgPSAkaWQ6OnNwbGF0KCRzZXQgYXMgXyk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBiaXRtYXNrOiAkaWJpdG1hc2tfdHkgPSAwOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJpdG1hc2sgfD0gMSA8PCBpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHZlYy5iaXRtYXNrKCksIGJpdG1hc2sp OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC9tYWNyb3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC9tYWNyb3MucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L21hY3Jvcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2Nhc3QvbWFjcm9zLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSw4MiArMCwwIEBACi0tLy8hIE1hY3JvcyBpbXBsZW1lbnRpbmcgYEZyb21DYXN0YAotLQot LW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fY2FzdF8gewotLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0 OnR0XTogJGZyb21fdHk6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6OmFwaTo6Y2Fz dDo6RnJvbUNhc3Q8JGZyb21fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIGZyb21fY2FzdCh4OiAkZnJvbV90eSkgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9jYXN0OwotLSAgICAgICAgICAgICAgICBk ZWJ1Z19hc3NlcnRfZXEhKCRmcm9tX3R5OjpsYW5lcygpLCAkaWQ6OmxhbmVzKCkpOwotLSAgICAg ICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfY2FzdCh4LjApIH0pCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3Rf dHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1v ZCBbPCRpZCBfZnJvbV9jYXN0XyAkZnJvbV90eT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVz ZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB0ZXN0KCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGlkOjpsYW5lcygpLCAkZnJvbV90 eTo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVz ISBpbXBsX2Zyb21fY2FzdCB7Ci0tICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkKCRmcm9t X3R5OmlkZW50KSwqKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGxfZnJvbV9j YXN0XyEoJGlkWyR0ZXN0X3R0XTogJGZyb21fdHkpOwotLSAgICAgICAgKSoKLS0gICAgfQotLX0K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2Nhc3RfbWFza18gewotLSAgICAoJGlkOmlkZW50 WyR0ZXN0X3R0OnR0XTogJGZyb21fdHk6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6 OmFwaTo6Y2FzdDo6RnJvbUNhc3Q8JGZyb21fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIGZuIGZyb21fY2FzdCh4OiAkZnJvbV90eSkgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydF9lcSEoJGZyb21fdHk6OmxhbmVzKCksICRp ZDo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAgIHgubmUoJGZyb21fdHk6OmRlZmF1bHQoKSkK LS0gICAgICAgICAgICAgICAgICAgIC5zZWxlY3QoJGlkOjpzcGxhdCh0cnVlKSwgJGlkOjpzcGxh dChmYWxzZSkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9p ZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK LS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZnJvbV9jYXN0XyAkZnJvbV90eT5dIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICBmbiB0ZXN0KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoJGlkOjpsYW5lcygpLCAkZnJvbV90eTo6bGFuZXMoKSk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHggPSAkZnJvbV90eTo6ZGVmYXVsdCgpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtOiAkaWQgPSB4LmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKG0ubm9uZSgpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9f cnVsZXMhIGltcGxfZnJvbV9jYXN0X21hc2sgewotLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0 XTogJCgkZnJvbV90eTppZGVudCksKikgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAgICBp bXBsX2Zyb21fY2FzdF9tYXNrXyEoJGlkWyR0ZXN0X3R0XTogJGZyb21fdHkpOwotLSAgICAgICAg KSoKLS0gICAgfQotLX0KLS0KLS0jW2FsbG93KHVudXNlZCldCi0tbWFjcm9fcnVsZXMhIGltcGxf aW50b19jYXN0IHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRl bnQpLCopID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbF9mcm9tX2Nhc3RfISgk ZnJvbV90eVskdGVzdF90dF06ICRpZCk7Ci0tICAgICAgICApKgotLSAgICB9Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YxMjgucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwzMDIgKzAsMCBAQAotLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nh c3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMTI4LWJpdCB3aWRlIHZlY3RvcnMKLS0j W3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxfZnJvbV9jYXN0IShp OHgxNlt0ZXN0X3YxMjhdOiB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkz MngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0taW1wbF9mcm9tX2Nhc3QhKHU4eDE2W3Rl c3RfdjEyOF06IGk4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1 MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrIShtOHgxNlt0ZXN0 X3YxMjhdOiBpOHgxNiwgdTh4MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMy eDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpMTZ4OFt0 ZXN0X3YxMjhdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICB1MTZ4OCwKLS0g ICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0z Mng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwK LS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9m cm9tX2Nhc3QhKAotLSAgICB1MTZ4OFt0ZXN0X3YxMjhdOiBpOHg4LAotLSAgICB1OHg4LAotLSAg ICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4 OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0t ICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0g ICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG0xNng4W3Rlc3Rf djEyOF06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1 MTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgs Ci0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAg ICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS0KLS1pbXBsX2Zy b21fY2FzdCEoCi0tICAgIGkzMng0W3Rlc3RfdjEyOF06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAg IG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIHUzMng0 LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0g ICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAg bTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsK LS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHUzMng0W3Rlc3RfdjEyOF06IGk4eDQsCi0tICAgIHU4 eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0t ICAgIGkzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1 NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4 NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6 ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGYzMng0W3Rlc3RfdjEyOF06IGk4eDQs Ci0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAg bTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0 LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0t ICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAot LSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTMyeDRbdGVz dF92MTI4XTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAg IHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4 NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0t ICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0t ICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0g ICAgaTY0eDJbdGVzdF92MTI4XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAg aTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngy LAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0g ICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAg IGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9j YXN0ISgKLS0gICAgdTY0eDJbdGVzdF92MTI4XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4 MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0t ICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICBm NjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4 eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWlt cGxfZnJvbV9jYXN0ISgKLS0gICAgZjY0eDJbdGVzdF92MTI4XTogaTh4MiwKLS0gICAgdTh4MiwK LS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAg aTMyeDIsCi0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgy LAotLSAgICB1NjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAot LSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIK LS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtNjR4Mlt0ZXN0X3YxMjhdOiBpOHgy LAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAg IG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4 MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgaTEyOHgyLAot LSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwK LS0gICAgbXNpemV4MgotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpc2l6ZXgyW3Rl c3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAg ICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMy eDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAot LSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0g ICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1 c2l6ZXgyW3Rlc3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkx NngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwK LS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAg IGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0x Mjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9tX2Nhc3Rf bWFzayEoCi0tICAgIG1zaXpleDJbdGVzdF92MTI4XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAg bTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIs Ci0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAg ICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUx Mjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyCi0tKTsKLS0K LS0vLyBGSVhNRVt0ZXN0X3YxMjhdOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9ycyBpbnRv X2Nhc3QgaW1wbHMKLS1pbXBsX2Zyb21fY2FzdCEoaTEyOHgxW3Rlc3RfdjEyOF06IHUxMjh4MSwg bTEyOHgxKTsKLS1pbXBsX2Zyb21fY2FzdCEodTEyOHgxW3Rlc3RfdjEyOF06IGkxMjh4MSwgbTEy OHgxKTsKLS1pbXBsX2Zyb21fY2FzdCEobTEyOHgxW3Rlc3RfdjEyOF06IGkxMjh4MSwgdTEyOHgx KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2Fz dC92MTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YxNi5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjE2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSw2OCArMCwwIEBACi0tLy8hIGBGcm9tQ2FzdGAgYW5kIGBJ bnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAxNi1iaXQgd2lkZSB2ZWN0b3Jz Ci0tI1tydXN0Zm10Ojpza2lwXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fY2Fz dCEoCi0tICAgIGk4eDJbdGVzdF92MTZdOiB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwK LS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAg IGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4 MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIs Ci0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxf ZnJvbV9jYXN0ISgKLS0gICAgdTh4Mlt0ZXN0X3YxNl06IGk4eDIsCi0tICAgIG04eDIsCi0tICAg IGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4 MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0t ICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAg IG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7 Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG04eDJbdGVzdF92MTZdOiBpOHgyLAotLSAg ICB1OHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4 MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0t ICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAg dTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAg IG1zaXpleDIKLS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9jYXN0L3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvY2FzdC92MjU2LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvY2FzdC92MjU2LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MjU2LnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyOTggKzAsMCBAQAotLS8vISBg RnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMjU2 LWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRlOjoqOwot LQotLWltcGxfZnJvbV9jYXN0IShpOHgzMlt0ZXN0X3YyNTZdOiB1OHgzMiwgbTh4MzIsIGkxNngz MiwgdTE2eDMyLCBtMTZ4MzIpOwotLWltcGxfZnJvbV9jYXN0ISh1OHgzMlt0ZXN0X3YyNTZdOiBp OHgzMiwgbTh4MzIsIGkxNngzMiwgdTE2eDMyLCBtMTZ4MzIpOwotLWltcGxfZnJvbV9jYXN0X21h c2shKG04eDMyW3Rlc3RfdjI1Nl06IGk4eDMyLCB1OHgzMiwgaTE2eDMyLCB1MTZ4MzIsIG0xNngz Mik7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKGkxNngxNlt0ZXN0X3YyNTZdOiBpOHgxNiwgdTh4MTYs IG04eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsK LS1pbXBsX2Zyb21fY2FzdCEodTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDE2LCB1OHgxNiwgbTh4MTYs IGkxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOwotLWltcGxf ZnJvbV9jYXN0X21hc2shKG0xNngxNlt0ZXN0X3YyNTZdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBp MTZ4MTYsIHUxNngxNiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKLS0KLS1pbXBs X2Zyb21fY2FzdCEoCi0tICAgIGkzMng4W3Rlc3RfdjI1Nl06IGk4eDgsCi0tICAgIHU4eDgsCi0t ICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIHUz Mng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwK LS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAot LSAgICBtc2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHUzMng4W3Rlc3RfdjI1 Nl06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4 OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0t ICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBp c2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2Fz dCEoCi0tICAgIGYzMng4W3Rlc3RfdjI1Nl06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgs Ci0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAg ICB1MzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0 eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6 ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTMyeDhbdGVzdF92MjU2XTog aTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAot LSAgICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAg aTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpl eDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLQotLWltcGxfZnJvbV9jYXN0 ISgKLS0gICAgaTY0eDRbdGVzdF92MjU2XTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwK LS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAg IHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4 NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQs Ci0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWltcGxf ZnJvbV9jYXN0ISgKLS0gICAgdTY0eDRbdGVzdF92MjU2XTogaTh4NCwKLS0gICAgdTh4NCwKLS0g ICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMy eDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAot LSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAg ICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0p OwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgZjY0eDRbdGVzdF92MjU2XTogaTh4NCwKLS0gICAg dTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwK LS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAg IGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEy OHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1z aXpleDQKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtNjR4NFt0ZXN0X3YyNTZd OiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQs Ci0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAg ICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgaTEy OHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNp emV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpMTI4 eDJbdGVzdF92MjU2XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIs Ci0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAg ICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0 eDIsCi0tICAgIG02NHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4 MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAot LSAgICB1MTI4eDJbdGVzdF92MjU2XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0g ICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUz MngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwK LS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIG0xMjh4MiwKLS0g ICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9t X2Nhc3RfbWFzayEoCi0tICAgIG0xMjh4Mlt0ZXN0X3YyNTZdOiBpOHgyLAotLSAgICB1OHgyLAot LSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBp MzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIs Ci0tICAgIHU2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIGkxMjh4MiwKLS0g ICAgdTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0t KTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGlzaXpleDRbdGVzdF92MjU2XTogaTh4NCwK LS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBt MTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQs Ci0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAg ICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICB1c2l6ZXg0LAotLSAg ICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHVzaXpleDRbdGVzdF92MjU2 XTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0 LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0g ICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02 NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6 ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbXNp emV4NFt0ZXN0X3YyNTZdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4 NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0t ICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBm NjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4 eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQKLS0pOwotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YzMi5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YzMi5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjMyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvY2FzdC92MzIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDEzMiArMCwwIEBACi0tLy8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAgaW1wbGVtZW50YXRp b25zIGZvciBwb3J0YWJsZSAzMi1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQot LQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGk4eDRbdGVzdF92 MzJdOiB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0x Nng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwK LS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAg IGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAg IHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdTh4 NFt0ZXN0X3YzMl06IGk4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwK LS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAg IG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4 NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4 NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFz ayEoCi0tICAgIG04eDRbdGVzdF92MzJdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBpMTZ4NCwK LS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAg IGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4 NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQs Ci0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLQotLWlt cGxfZnJvbV9jYXN0ISgKLS0gICAgaTE2eDJbdGVzdF92MzJdOiBpOHgyLAotLSAgICB1OHgyLAot LSAgICBtOHgyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1 MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIs Ci0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0t ICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4Mgot LSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1MTZ4Mlt0ZXN0X3YzMl06IGk4eDIsCi0tICAg IHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIs Ci0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAg ICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUx Mjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBt c2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTE2eDJbdGVzdF92MzJd OiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIs Ci0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAg ICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEy OHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNp emV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjUxMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9jYXN0L3Y1MTIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9jYXN0L3Y1MTIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y1 MTIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIwOSArMCww IEBACi0tLy8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBw b3J0YWJsZSA1MTItYml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2Ug Y3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKGk4eDY0W3Rlc3RfdjUxMl06IHU4eDY0LCBt OHg2NCk7Ci0taW1wbF9mcm9tX2Nhc3QhKHU4eDY0W3Rlc3RfdjUxMl06IGk4eDY0LCBtOHg2NCk7 Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEobTh4NjRbdGVzdF92NTEyXTogaTh4NjQsIHU4eDY0KTsK LS0KLS1pbXBsX2Zyb21fY2FzdCEoaTE2eDMyW3Rlc3RfdjUxMl06IGk4eDMyLCB1OHgzMiwgbTh4 MzIsIHUxNngzMiwgbTE2eDMyKTsKLS1pbXBsX2Zyb21fY2FzdCEodTE2eDMyW3Rlc3RfdjUxMl06 IGk4eDMyLCB1OHgzMiwgbTh4MzIsIGkxNngzMiwgbTE2eDMyKTsKLS1pbXBsX2Zyb21fY2FzdF9t YXNrIShtMTZ4MzJbdGVzdF92NTEyXTogaTh4MzIsIHU4eDMyLCBtOHgzMiwgaTE2eDMyLCB1MTZ4 MzIpOwotLQotLWltcGxfZnJvbV9jYXN0IShpMzJ4MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2 LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7 Ci0taW1wbF9mcm9tX2Nhc3QhKHUzMngxNlt0ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2 LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKLS1pbXBs X2Zyb21fY2FzdCEoZjMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngx NiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBtMzJ4MTYpOwotLWltcGxfZnJvbV9j YXN0X21hc2shKG0zMngxNlt0ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYs IHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2KTsKLS0KLS1pbXBsX2Zyb21f Y2FzdCEoCi0tICAgIGk2NHg4W3Rlc3RfdjUxMl06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04 eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAot LSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICB1NjR4OCwKLS0gICAg ZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBt c2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHU2NHg4W3Rlc3RfdjUxMl06IGk4 eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0g ICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0z Mng4LAotLSAgICBpNjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4 LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0t ICAgIGY2NHg4W3Rlc3RfdjUxMl06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0tICAg IGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4 OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0t ICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0t KTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTY0eDhbdGVzdF92NTEyXTogaTh4OCwK LS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBt MTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgs Ci0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIGlzaXpleDgsCi0t ICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0g ICAgaTEyOHg0W3Rlc3RfdjUxMl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAg IGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4 NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0t ICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAg IGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9j YXN0ISgKLS0gICAgdTEyOHg0W3Rlc3RfdjUxMl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04 eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAot LSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAg dTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICBtMTI4 eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWlt cGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtMTI4eDRbdGVzdF92NTEyXTogaTh4NCwKLS0gICAg dTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwK LS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAg IGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBpMTI4 eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNp emV4NAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpc2l6ZXg4W3Rlc3RfdjUxMl06 IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwK LS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAg IG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4 OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAot LSAgICB1c2l6ZXg4W3Rlc3RfdjUxMl06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0t ICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1 MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgs Ci0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgbXNpemV4OAot LSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG1zaXpleDhbdGVzdF92NTEyXTogaTh4 OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAg ICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMy eDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAot LSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4Ci0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NjQucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NjQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y2NC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nh c3QvdjY0LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMDgg KzAsMCBAQAotLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBm b3IgcG9ydGFibGUgNjQtYml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11 c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpOHg4W3Rlc3RfdjY0XTog dTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwK LS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAg IGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6 ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEo Ci0tICAgIHU4eDhbdGVzdF92NjRdOiBpOHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0g ICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYz Mng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwK LS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgK LS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtOHg4W3Rlc3RfdjY0XTogaTh4OCwK LS0gICAgdTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAg aTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg4 LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAot LSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0t ICAgIGkxNng0W3Rlc3RfdjY0XTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAg dTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0 LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0g ICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAg IGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9j YXN0ISgKLS0gICAgdTE2eDRbdGVzdF92NjRdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0 LAotLSAgICBpMTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0g ICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2 NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4 NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1w bF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG0xNng0W3Rlc3RfdjY0XTogaTh4NCwKLS0gICAgdTh4 NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBpMzJ4NCwKLS0g ICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2 NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0 LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpl eDQKLS0pOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaTMyeDJbdGVzdF92NjRdOiBpOHgy LAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAg IG0xNngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4 MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAot LSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwK LS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1MzJ4Mlt0ZXN0X3Y2 NF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4 MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0t ICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBp MTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1 c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGYzMngy W3Rlc3RfdjY0XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0t ICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAgICBt MzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIs Ci0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIs Ci0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2sh KAotLSAgICBtMzJ4Mlt0ZXN0X3Y2NF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0t ICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1 MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIs Ci0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAot LSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0LnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2Nhc3QucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwOCAr MCwwIEBACi0tLy8hIEltcGxlbWVudGF0aW9uIG9mIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAu Ci0tIyFbYWxsb3coY2xpcHB5Ojptb2R1bGVfbmFtZV9yZXBldGl0aW9ucyldCi0tCi0tLy8vIE51 bWVyaWMgY2FzdCBmcm9tIGBUYCB0byBgU2VsZmAuCi0tLy8vCi0tLy8vID4gTm90ZTogVGhpcyBp cyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kIHVudGlsIHRoZSBjb252ZXJzaW9uIHRyYWl0cwotLS8v LyBzcGVjaWZpZWQgPiBpbiBbUkZDMjQ4NF0gYXJlIGltcGxlbWVudGVkLgotLS8vLwotLS8vLyBO dW1lcmljIGNhc3QgYmV0d2VlbiB2ZWN0b3JzIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVz LCBzdWNoIHRoYXQ6Ci0tLy8vCi0tLy8vICogY2FzdGluZyBpbnRlZ2VyIHZlY3RvcnMgd2hvc2Ug bGFuZSB0eXBlcyBoYXZlIHRoZSBzYW1lIHNpemUgKGUuZy4gYGkzMnhOYAotLS8vLyAtPiBgdTMy eE5gKSBpcyBhICoqbm8tb3AqKiwKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20gYSBsYXJnZXIg aW50ZWdlciB0byBhIHNtYWxsZXIgaW50ZWdlciAoZS5nLiBgdTMyeE5gIC0+Ci0tLy8vIGB1OHhO YCkgd2lsbCAqKnRydW5jYXRlKiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGEgc21hbGxl ciBpbnRlZ2VyIHRvIGEgbGFyZ2VyIGludGVnZXIgICAoZS5nLiBgdTh4TmAgLT4KLS0vLy8gICBg dTMyeE5gKSB3aWxsOgotLS8vLyAgICAqICoqemVyby1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlz IHVuc2lnbmVkLCBvcgotLS8vLyAgICAqICoqc2lnbi1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlz IHNpZ25lZCwKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20gYSBmbG9hdCB0byBhbiBpbnRlZ2Vy IHdpbGwgKipyb3VuZCB0aGUgZmxvYXQgdG93YXJkcyB6ZXJvKiosCi0tLy8vCi0tLy8vICogY2Fz dGluZyBmcm9tIGFuIGludGVnZXIgdG8gZmxvYXQgd2lsbCBwcm9kdWNlIHRoZSBmbG9hdGluZyBw b2ludAotLS8vLyByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZWdlciwgKipyb3VuZGluZyB0byBu ZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKiwKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20gYW4gYGYz MmAgdG8gYW4gYGY2NGAgaXMgcGVyZmVjdCBhbmQgbG9zc2xlc3MsCi0tLy8vCi0tLy8vICogY2Fz dGluZyBmcm9tIGFuIGBmNjRgIHRvIGFuIGBmMzJgICoqcm91bmRzIHRvIG5lYXJlc3QsIHRpZXMg dG8gZXZlbioqLgotLS8vLwotLS8vLyBbUkZDMjQ4NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmcvcmZjcy9wdWxsLzI0ODQKLS1wdWIgdHJhaXQgRnJvbUNhc3Q8VD46IGNyYXRlOjptYXJr ZXI6OlNpemVkIHsKLS0gICAgLy8vIE51bWVyaWMgY2FzdCBmcm9tIGBUYCB0byBgU2VsZmAuCi0t ICAgIGZuIGZyb21fY2FzdChfOiBUKSAtPiBTZWxmOwotLX0KLS0KLS0vLy8gTnVtZXJpYyBjYXN0 IGZyb20gYFNlbGZgIHRvIGBUYC4KLS0vLy8KLS0vLy8gPiBOb3RlOiBUaGlzIGlzIGEgdGVtcG9y YXJ5IHdvcmthcm91bmQgdW50aWwgdGhlIGNvbnZlcnNpb24gdHJhaXRzCi0tLy8vIHNwZWNpZmll ZCA+IGluIFtSRkMyNDg0XSBhcmUgaW1wbGVtZW50ZWQuCi0tLy8vCi0tLy8vIE51bWVyaWMgY2Fz dCBiZXR3ZWVuIHZlY3RvcnMgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMsIHN1Y2ggdGhh dDoKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGludGVnZXIgdmVjdG9ycyB3aG9zZSBsYW5lIHR5cGVz IGhhdmUgdGhlIHNhbWUgc2l6ZSAoZS5nLiBgaTMyeE5gCi0tLy8vIC0+IGB1MzJ4TmApIGlzIGEg Kipuby1vcCoqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhIGxhcmdlciBpbnRlZ2VyIHRv IGEgc21hbGxlciBpbnRlZ2VyIChlLmcuIGB1MzJ4TmAgLT4KLS0vLy8gYHU4eE5gKSB3aWxsICoq dHJ1bmNhdGUqKiwKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20gYSBzbWFsbGVyIGludGVnZXIg dG8gYSBsYXJnZXIgaW50ZWdlciAgIChlLmcuIGB1OHhOYCAtPgotLS8vLyAgIGB1MzJ4TmApIHdp bGw6Ci0tLy8vICAgICogKip6ZXJvLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgdW5zaWduZWQs IG9yCi0tLy8vICAgICogKipzaWduLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgc2lnbmVkLAot LS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhIGZsb2F0IHRvIGFuIGludGVnZXIgd2lsbCAqKnJv dW5kIHRoZSBmbG9hdCB0b3dhcmRzIHplcm8qKiwKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20g YW4gaW50ZWdlciB0byBmbG9hdCB3aWxsIHByb2R1Y2UgdGhlIGZsb2F0aW5nIHBvaW50Ci0tLy8v IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlZ2VyLCAqKnJvdW5kaW5nIHRvIG5lYXJlc3QsIHRp ZXMgdG8gZXZlbioqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBgZjMyYCB0byBhbiBg ZjY0YCBpcyBwZXJmZWN0IGFuZCBsb3NzbGVzcywKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20g YW4gYGY2NGAgdG8gYW4gYGYzMmAgKipyb3VuZHMgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiou Ci0tLy8vCi0tLy8vIFtSRkMyNDg0XTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNz L3B1bGwvMjQ4NAotLXB1YiB0cmFpdCBDYXN0PFQ+OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7Ci0t ICAgIC8vLyBOdW1lcmljIGNhc3QgZnJvbSBgc2VsZmAgdG8gYFRgLgotLSAgICBmbiBjYXN0KHNl bGYpIC0+IFQ7Ci0tfQotLQotLS8vLyBgRnJvbUNhc3RgIGltcGxpZXMgYENhc3RgLgotLWltcGw8 VCwgVT4gQ2FzdDxVPiBmb3IgVAotLXdoZXJlCi0tICAgIFU6IEZyb21DYXN0PFQ+LAotLXsKLS0g ICAgI1tpbmxpbmVdCi0tICAgIGZuIGNhc3Qoc2VsZikgLT4gVSB7Ci0tICAgICAgICBVOjpmcm9t X2Nhc3Qoc2VsZikKLS0gICAgfQotLX0KLS0KLS0vLy8gYEZyb21DYXN0YCBhbmQgYENhc3RgIGFy ZSByZWZsZXhpdmUKLS1pbXBsPFQ+IEZyb21DYXN0PFQ+IGZvciBUIHsKLS0gICAgI1tpbmxpbmVd Ci0tICAgIGZuIGZyb21fY2FzdCh0OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgIHQKLS0gICAg fQotLX0KLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgbWFjcm9zOwotLQotLW1vZCB2MTY7Ci0tcHVi IHVzZSBzZWxmOjp2MTY6Oio7Ci0tCi0tbW9kIHYzMjsKLS1wdWIgdXNlIHNlbGY6OnYzMjo6KjsK LS0KLS1tb2QgdjY0OwotLXB1YiB1c2Ugc2VsZjo6djY0OjoqOwotLQotLW1vZCB2MTI4OwotLXB1 YiB1c2Ugc2VsZjo6djEyODo6KjsKLS0KLS1tb2QgdjI1NjsKLS1wdWIgdXNlIHNlbGY6OnYyNTY6 Oio7Ci0tCi0tbW9kIHY1MTI7Ci0tcHViIHVzZSBzZWxmOjp2NTEyOjoqOwotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvZXEucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL2VxLnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL2VxLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvY21wL2VxLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwy NyArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgYEVxYCBmb3IgdmVjdG9yIHR5cGVzLgotLQotLW1h Y3JvX3J1bGVzISBpbXBsX2NtcF9lcSB7Ci0tICAgICgKLS0gICAgICAgIFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0tICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8 Ci0tICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpCi0tICAgICkgPT4gewotLSAgICAg ICAgaW1wbCBjcmF0ZTo6Y21wOjpFcSBmb3IgJGlkIHt9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpj bXA6OkVxIGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPiB7fQotLQotLSAgICAgICAg dGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0 ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX2VxPl0gewotLSAgICAg ICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIGVxKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6 Y21wOjpFcT4oXzogRSkge30KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6 c3BsYXQoJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb28oYSk7Ci0tICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9jbXAvb3JkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2NtcC9vcmQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9jbXAvb3JkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL29yZC5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDMgKzAsMCBAQAotLS8vISBJbXBs ZW1lbnRzIGBPcmRgIGZvciB2ZWN0b3IgdHlwZXMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfY21w X29yZCB7Ci0tICAgICgKLS0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06Ci0tICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8Ci0tICAgICAgICAoJHRydWU6 ZXhwciwgJGZhbHNlOmV4cHIpCi0tICAgICkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAg ICAgICAgICAgIC8vLyBSZXR1cm5zIGEgd3JhcHBlciB0aGF0IGltcGxlbWVudHMgYE9yZGAuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGxleF9vcmQoJnNlbGYp IC0+IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+IHsKLS0gICAgICAgICAgICAgICAgTGV4 aWNvZ3JhcGhpY2FsbHlPcmRlcmVkKCpzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIGltcGwgY3JhdGU6OmNtcDo6T3JkIGZvciBMZXhpY29ncmFwaGljYWxseU9y ZGVyZWQ8JGlkPiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY21w KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGNyYXRlOjpjbXA6Ok9yZGVyaW5nIHsKLS0gICAgICAg ICAgICAgICAgbWF0Y2ggc2VsZi5wYXJ0aWFsX2NtcChvdGhlcikgewotLSAgICAgICAgICAgICAg ICAgICAgU29tZSh4KSA9PiB4LAotLSAgICAgICAgICAgICAgICAgICAgTm9uZSA9PiB1bnNhZmUg eyBjcmF0ZTo6aGludDo6dW5yZWFjaGFibGVfdW5jaGVja2VkKCkgfSwKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewot LSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAg ICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9vcmQ+XSB7Ci0tICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZXEo KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm4gZm9vPEU6IGNyYXRlOjpjbXA6Ok9yZD4o XzogRSkge30KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoJGZh bHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb28oYS5wYXJ0aWFsX2xleF9vcmQoKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9vKGEubGV4X29yZCgpKTsKLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2NtcC9wYXJ0aWFsX2VxLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2NtcC9wYXJ0aWFsX2VxLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxfZXEucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j bXAvcGFydGlhbF9lcS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsNjUgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIGBQYXJ0aWFsRXFgIGZvciB2ZWN0b3IgdHlw ZXMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfY21wX3BhcnRpYWxfZXEgewotLSAgICAoCi0tICAg ICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlk ZW50IHwgJHRlc3RfdHQ6dHQgfAotLSAgICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQot LSAgICApID0+IHsKLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcnVzdC1jbGlwcHkvaXNzdWVzLzI4OTIKLS0gICAgICAgICNbYWxsb3coY2xp cHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCi0tICAgICAgICBpbXBsIGNyYXRlOjpjbXA6OlBhcnRp YWxFcTwkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIGVxKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAk aWQ6OmVxKCpzZWxmLCAqb3RoZXIpLmFsbCgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJv b2wgewotLSAgICAgICAgICAgICAgICAkaWQ6Om5lKCpzZWxmLCAqb3RoZXIpLmFueSgpCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9ydXN0LWNsaXBweS9pc3N1ZXMvMjg5MgotLSAgICAg ICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KLS0gICAgICAgIGltcGwgY3Jh dGU6OmNtcDo6UGFydGlhbEVxPExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+PiBmb3IgTGV4 aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4gewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAg ICAgICAgICBzZWxmLjAgPT0gb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29s IHsKLS0gICAgICAgICAgICAgICAgc2VsZi4wICE9IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6 Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfY21wX1BhcnRpYWxFcT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gcGFydGlhbF9lcSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6 c3BsYXQoJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3Bs YXQoJHRydWUpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSAhPSBiKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSA9PSBiKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0IShhID09IGEpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEoIShhICE9IGEpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6 OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6 OnNwbGF0KCRmYWxzZSkucmVwbGFjZSgwLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydCEoYSAhPSBiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0ISghKGEgPT0gYikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KGEgPT0gYSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhICE9IGEp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAv cGFydGlhbF9vcmQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21w L3BhcnRpYWxfb3JkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvY21wL3BhcnRpYWxfb3JkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxf b3JkLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMzAgKzAs MCBAQAotLS8vISBJbXBsZW1lbnRzIGBQYXJ0aWFsT3JkYCBmb3IgdmVjdG9yIHR5cGVzLgotLS8v IQotLS8vISBUaGlzIGltcGxlbWVudHMgYSBsZXhpY29ncmFwaGljYWwgb3JkZXIuCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfY21wX3BhcnRpYWxfb3JkIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsg JGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAg ICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSB3cmFwcGVyIHRoYXQgaW1w bGVtZW50cyBgUGFydGlhbE9yZGAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgcHViIGZuIHBhcnRpYWxfbGV4X29yZCgmc2VsZikgLT4gTGV4aWNvZ3JhcGhpY2FsbHlPcmRl cmVkPCRpZD4gewotLSAgICAgICAgICAgICAgICBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQoKnNl bGYpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6 Y21wOjpQYXJ0aWFsT3JkPExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+PiBmb3IgTGV4aWNv Z3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4gewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IE9wdGlvbjxjcmF0 ZTo6Y21wOjpPcmRlcmluZz4gewotLSAgICAgICAgICAgICAgICBpZiBQYXJ0aWFsRXE6OmVxKHNl bGYsIG90aGVyKSB7Ci0tICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVy aW5nOjpFcXVhbCkKLS0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIFBhcnRpYWxPcmQ6Omx0KHNl bGYsIG90aGVyKSB7Ci0tICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVy aW5nOjpMZXNzKQotLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgUGFydGlhbE9yZDo6Z3Qoc2Vs Ziwgb3RoZXIpIHsKLS0gICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJp bmc6OkdyZWF0ZXIpCi0tICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAg ICAgICBOb25lCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbHQoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4g Ym9vbCB7Ci0tICAgICAgICAgICAgICAgIGxldCBtX2x0ID0gc2VsZi4wLmx0KG90aGVyLjApOwot LSAgICAgICAgICAgICAgICBsZXQgbV9lcSA9IHNlbGYuMC5lcShvdGhlci4wKTsKLS0gICAgICAg ICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAg IGlmIG1fZXEuZXh0cmFjdChpKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9s dC5leHRyYWN0KGkpOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIGZhbHNl Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZu IGxlKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxm Lmx0KG90aGVyKSB8IFBhcnRpYWxFcTo6ZXEoc2VsZiwgb3RoZXIpCi0tICAgICAgICAgICAgfQot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGdlKCZzZWxmLCBvdGhlcjog JlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLmd0KG90aGVyKSB8IFBhcnRp YWxFcTo6ZXEoc2VsZiwgb3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIGd0KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewot LSAgICAgICAgICAgICAgICBsZXQgbV9ndCA9IHNlbGYuMC5ndChvdGhlci4wKTsKLS0gICAgICAg ICAgICAgICAgbGV0IG1fZXEgPSBzZWxmLjAuZXEob3RoZXIuMCk7Ci0tICAgICAgICAgICAgICAg IGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBtX2Vx LmV4dHJhY3QoaSkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fZ3QuZXh0cmFj dChpKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBmYWxzZQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIHRlc3Rf Y21wX3BhcnRpYWxfb3JkX2ludCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50 OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgdGVzdF9pZiF7 Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0g ICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX1BhcnRpYWxPcmQ+XSB7Ci0tICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gcGFydGlhbF9sZXhfb3JkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6dGVzdGluZzo6dXRpbHM6Ont0ZXN0X2NtcH07Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgLy8gY29uc3RhbnQgdmFsdWVzCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAk aWQ6OnNwbGF0KDApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxh dCgxKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4 X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29y ZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6 T3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChh LnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5w YXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21l KGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHZhcmlhYmxlIHZhbHVlczogYSA9IFswLCAxLCAyLCAzXTsgYiA9IFszLCAyLCAxLCAw XQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQoMCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gJGlkOjpzcGxhdCgwKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksIGkgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKGksICgkaWQ6OmxhbmVzKCkg LSBpKSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9s ZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6 Y21wOjpPcmRlcmluZzo6TGVzcykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21w KGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCks IGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJp bmc6OkVxdWFsKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFs dWVzOiBhID0gWzAsIDEsIDIsIDNdOyBiID0gWzAsIDEsIDIsIDRdCi0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBiID0gYTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5y ZXBsYWNlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmxhbmVzKCkgLSAxLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmV4dHJhY3QoJGlkOjpsYW5lcygpIC0gMSkg KyAxIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4 X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNt cDo6T3JkZXJpbmc6Okxlc3MpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChi LnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBh LnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNv bWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5n OjpFcXVhbCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+ IDIgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2YWx1ZXMgYSA9 IFswLCAxLCAwLCAwXTsgYiA9IFswLCAxLCAyLCAzXQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgYiA9IGE7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9 ICRpZDo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxh Y2UoMSwgMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf Y21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxl c3MpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xl eF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBh cnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6 Ok9yZGVyaW5nOjpFcXVhbCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2 YXJpYWJsZSB2YWx1ZXM6IGEgPSBbMCwgMSwgMiwgM107IGIgPSBbMCwgMSwgMywgMl0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gYTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDIsIGEuZXh0cmFjdCgkaWQ6OmxhbmVzKCkgLSAxKSArIDEgYXMgJGVsZW1fdHkKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmlu Zzo6TGVzcykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRp YWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCks IGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhf b3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6 OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgdGVzdF9jbXBfcGFydGlh bF9vcmRfbWFzayB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAg ICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfY21wX1BhcnRpYWxPcmQ+XSB7Ci0tICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcGFy dGlhbF9sZXhfb3JkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6dGVz dGluZzo6dXRpbHM6Ont0ZXN0X2NtcH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjpjbXA6Ok9yZGVyaW5nOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0 YW50IHZhbHVlcwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdChm YWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KHRydWUp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3Jk KCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU29tZShPcmRlcmluZzo6TGVzcykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf Y21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6R3JlYXRlcikpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlh bF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRl cmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRp YWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOgotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IGEgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGIgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZV0KLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYiA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGIgPSBiLnJlcGxhY2UoJGlkOjpsYW5lcygpIC0gMSwgdHJ1ZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9v cmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpM ZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9v cmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFy dGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShP cmRlcmluZzo6RXF1YWwpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJs ZSB2YWx1ZXM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSA9IFt0cnVlLCB0cnVlLCB0 cnVlLCBmYWxzZV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gYiA9IFt0cnVlLCB0cnVl LCB0cnVlLCB0cnVlXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6 c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0 KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoJGlkOjpsYW5l cygpIC0gMSwgZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFy dGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVzcykpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6R3JlYXRl cikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3Jk KCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMiB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlcwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBhID0gW2ZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBiID0gW2ZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlXQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gJGlkOjpzcGxhdCh0cnVlKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZSgxLCB0cnVlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgwLCBmYWxzZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIu cGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvbWUoT3JkZXJpbmc6Okxlc3MpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6R3JlYXRlcikpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgp LCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19 Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC92 ZXJ0aWNhbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvdmVy dGljYWwucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAv dmVydGljYWwucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvdmVydGljYWwucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDExNCArMCwwIEBACi0tLy8hIFZl cnRpY2FsIChsYW5lLXdpc2UpIHZlY3RvciBjb21wYXJpc29ucyByZXR1cm5pbmcgdmVjdG9yIG1h c2tzLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX2NtcF92ZXJ0aWNhbCB7Ci0tICAgICgKLS0gICAg ICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0tICAgICAgICAkaWQ6aWRl bnQsCi0tICAgICAgICAkbWFza190eTppZGVudCwKLS0gICAgICAgICRpc19tYXNrOmV4cHIsKCR0 cnVlOmV4cHIsICRmYWxzZTpleHByKSB8ICR0ZXN0X3R0OnR0Ci0tICAgICkgPT4gewotLSAgICAg ICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZXF1YWxpdHkgY29tcGFy aXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZXEoc2Vs Ziwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpsbHZtOjpzaW1kX2VxOwotLSAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfZXEo c2VsZi4wLCBvdGhlci4wKSB9KQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8g TGFuZS13aXNlIGluZXF1YWxpdHkgY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgZm4gbmUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsK LS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX25lOwotLSAgICAgICAgICAg ICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfbmUoc2VsZi4wLCBvdGhlci4wKSB9KQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbiBjb21wYXJpc29u LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsdChzZWxmLCBv dGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxs dm06OntzaW1kX2d0LCBzaW1kX2x0fTsKLS0gICAgICAgICAgICAgICAgaWYgJGlzX21hc2sgewot LSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2d0KHNlbGYuMCwgb3RoZXIu MCkgfSkKLS0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgIFNp bWQodW5zYWZlIHsgc2ltZF9sdChzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBsZXNzLXRo YW4tb3ItZXF1YWxzIGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGZuIGxlKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6e3NpbWRfZ2UsIHNpbWRfbGV9OwotLSAgICAgICAg ICAgICAgICBpZiAkaXNfbWFzayB7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7 IHNpbWRfZ2Uoc2VsZi4wLCBvdGhlci4wKSB9KQotLSAgICAgICAgICAgICAgICB9IGVsc2Ugewot LSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2xlKHNlbGYuMCwgb3RoZXIu MCkgfSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAvLy8gTGFuZS13aXNlIGdyZWF0ZXItdGhhbiBjb21wYXJpc29uLgotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBndChzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1h c2tfdHkgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OntzaW1kX2d0LCBzaW1k X2x0fTsKLS0gICAgICAgICAgICAgICAgaWYgJGlzX21hc2sgewotLSAgICAgICAgICAgICAgICAg ICAgU2ltZCh1bnNhZmUgeyBzaW1kX2x0KHNlbGYuMCwgb3RoZXIuMCkgfSkKLS0gICAgICAgICAg ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9n dChzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBncmVhdGVyLXRoYW4tb3ItZXF1YWxzIGNv bXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGdl KHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6bGx2bTo6e3NpbWRfZ2UsIHNpbWRfbGV9OwotLSAgICAgICAgICAgICAgICBpZiAkaXNf bWFzayB7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfbGUoc2VsZi4w LCBvdGhlci4wKSB9KQotLSAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg ICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2dlKHNlbGYuMCwgb3RoZXIuMCkgfSkKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYh ewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0t ICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF92ZXJ0aWNhbD5dIHsKLS0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAg ICBmbiBjbXAoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0 KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KCR0 cnVlKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEubHQoYik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCByID0gYS5sZShiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KHIgPT0gZSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFza190eTo6 c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5ndChiKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHIgPSBhLmdlKGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydCEociA9PSBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEuZXEoYik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9IGE7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBiID0gYjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBlOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCAkZmFsc2UpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZShpLCAkdHJ1ZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlID0gZS5yZXBsYWNlKGksIHRydWUpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYSA9IGEucmVwbGFjZShpLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiID0gYi5yZXBsYWNlKGksICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlID0gZS5yZXBsYWNlKGksIGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgciA9IGEubHQoYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShyID09IGUpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2NtcC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTYgKzAsMCBAQAotLS8vISBJ bXBsZW1lbnQgY21wIHRyYWl0cyBmb3IgdmVjdG9yIHR5cGVzCi0tCi0tI1ttYWNyb191c2VdCi0t bW9kIHBhcnRpYWxfZXE7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGVxOwotLQotLSNbbWFjcm9f dXNlXQotLW1vZCBwYXJ0aWFsX29yZDsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2Qgb3JkOwotLQot LSNbbWFjcm9fdXNlXQotLW1vZCB2ZXJ0aWNhbDsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZGVmYXVsdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9kZWZhdWx0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvZGVmYXVsdC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2RlZmF1bHQu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMwICswLDAgQEAK LS0vLyEgSW1wbGVtZW50cyBgRGVmYXVsdGAgZm9yIHZlY3RvciB0eXBlcy4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9kZWZhdWx0IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6 ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIERlZmF1 bHQgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZGVm YXVsdCgpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBTZWxmOjpzcGxhdCgkZWxlbV90eTo6 ZGVmYXVsdCgpKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3Rf aWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7 Ci0tICAgICAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhp biBtYW50aXNzYV4xIHJhbmdlLgotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Zmxv YXRfY21wKV0KLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZGVmYXVsdD5dIHsKLS0g ICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICBmbiBkZWZhdWx0KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0g JGlkOjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlk OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhLmV4 dHJhY3QoaSksICRlbGVtX3R5OjpkZWZhdWx0KCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9iaW5hcnkucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2JpbmFyeS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9iaW5hcnkucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9mbXQvYmluYXJ5LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSw1NCArMCwwIEBACi0tLy8hIEltcGxlbWVudCBPY3RhbCBmb3JtYXR0aW5nCi0tCi0tbWFjcm9f cnVsZXMhIGltcGxfZm10X2JpbmFyeSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2Nv dW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBj cmF0ZTo6Zm10OjpCaW5hcnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6 Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCi0tICAgICAgICAgICAgZm4gZm10KCZz ZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6OlJl c3VsdCB7Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgkaWQp KT87Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAg ICAgICAgICAgICAgIGlmIGkgPiAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEo ZiwgIiwgIik/OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg c2VsZi5leHRyYWN0KGkpLmZtdChmKT87Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgd3JpdGUhKGYsICIpIikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAg ICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X2JpbmFyeT5dIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gYmluYXJ5KCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7 IDUxMl0+OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0 ZTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGVsZW1fdHk6 OmRlZmF1bHQoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0 cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6 I2J9IiwgdikudW53cmFwKCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBi ZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEo Jm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRdPgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCksICIiKQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgiKSIsICIiKS5zcGxpdCgiLCIpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50 cmltKCkpLnVud3JhcCgpKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29sbGVjdCgp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjpsYW5l cygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRv X2l0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 cml0ZSEoJm11dCBlLCAiezojYn0iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2RlYnVnLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycwkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsNjAgKzAsMCBAQAotLS8vISBJbXBsZW1lbnQgZGVidWcgZm9ybWF0dGluZwotLQot LW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9kZWJ1Z190ZXN0cyB7Ci0tICAgIChbJGVsZW1fdHk6dHk7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAg ICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3Rl OjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9kZWJ1Zz5dIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZGVidWcoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OwotLSAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsg NTEyXT47Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRl OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpkZWZhdWx0KCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6P30iLCB2KS51bndyYXAoKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJlZyA9IFRpbnlTdHJpbmc6Om5l dygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGJlZywgInt9KCIsIHN0 cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC5yZXBsYWNlKCIpIiwgIiIpLnNwbGl0KCIsIikKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0oKSkudW53cmFwKCkpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVzKCkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVudW1lcmF0ZSgp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gVGlueVN0cmluZzo6 bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGUsICJ7Oj99 Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoc3MsIGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZm10X2RlYnVnIHsK LS0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpmbXQ6OkRlYnVnIGZvciAkaWQgewot LSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRl bXMpXQotLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6Zm10OjpGb3Jt YXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewotLSAgICAgICAgICAgICAgICB3cml0 ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OwotLSAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBpID4gMCB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQoZik/OwotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIpCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbF9mbXRfZGVidWdfdGVzdHMhKFskZWxl bV90eTsgJGVsZW1fY291bnRdOiAkaWQgfCAkdGVzdF90dCk7Ci0tICAgIH07Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvbG93ZXJfaGV4 LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9sb3dlcl9oZXgu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvbG93ZXJf aGV4LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2xvd2VyX2hleC5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTQgKzAsMCBAQAotLS8vISBJbXBsZW1l bnQgYExvd2VySGV4YCBmb3JtYXR0aW5nCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZm10X2xvd2Vy X2hleCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRl bnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6Zm10OjpMb3dlckhl eCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVf aW5fcHVibGljX2l0ZW1zKV0KLS0gICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgY3Jh dGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gY3JhdGU6OmZtdDo6UmVzdWx0IHsKLS0gICAgICAg ICAgICAgICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpPzsKLS0gICAgICAgICAg ICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgaWYg aSA+IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiLCAiKT87Ci0tICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhY3QoaSku Zm10KGYpPzsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwg IikiKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0g ICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAg ICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRfbG93ZXJfaGV4Pl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICBmbiBsb3dlcl9oZXgoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OwotLSAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRlOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZWxlbV90eTo6ZGVmYXVsdCgp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3RyaW5nOjpuZXco KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezojeH0iLCB2KS51 bndyYXAoKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJlZyA9IFRpbnlT dHJpbmc6Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGJlZywg Int9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpLnJlcGxhY2UoIikiLCAi IikKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCIsIikKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0oKSkudW53 cmFwKCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVzKCkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVu dW1lcmF0ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gVGlu eVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0 IGUsICJ7OiN4fSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9vY3RhbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9mbXQvb2N0YWwucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9mbXQvb2N0YWwucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQv b2N0YWwucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDU0ICsw LDAgQEAKLS0vLyEgSW1wbGVtZW50IE9jdGFsIGZvcm1hdHRpbmcKLS0KLS1tYWNyb19ydWxlcyEg aW1wbF9mbXRfb2N0YWwgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHBy XTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6OmZt dDo6T2N0YWwgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdf aW5saW5lX2luX3B1YmxpY19pdGVtcyldCi0tICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAm bXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7Ci0t ICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKT87Ci0tICAg ICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAg ICAgIGlmIGkgPiAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/ OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRy YWN0KGkpLmZtdChmKT87Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgd3Jp dGUhKGYsICIpIikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lm ISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK LS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X29jdGFsPl0gewotLSAgICAgICAg ICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICBmbiBvY3RhbF9oZXgoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OwotLSAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRlOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZWxlbV90eTo6ZGVmYXVs dCgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3RyaW5nOjpu ZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezojb30iLCB2 KS51bndyYXAoKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJlZyA9IFRp bnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGJl ZywgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpLnJlcGxhY2UoIiki LCAiIikKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCIsIikKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0oKSku dW53cmFwKCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVzKCkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigp LmVudW1lcmF0ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0g VGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgm bXV0IGUsICJ7OiNvfSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBlKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC91cHBlcl9oZXgucnMKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvZm10L3VwcGVyX2hleC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsNTQgKzAsMCBAQAotLS8vISBJbXBsZW1lbnQgYFVwcGVySGV4YCBm b3JtYXR0aW5nCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZm10X3VwcGVyX2hleCB7Ci0tICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0 dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6Zm10OjpVcHBlckhleCBmb3IgJGlkIHsKLS0g ICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1z KV0KLS0gICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0 dGVyPCdfPikgLT4gY3JhdGU6OmZtdDo6UmVzdWx0IHsKLS0gICAgICAgICAgICAgICAgd3JpdGUh KGYsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpPzsKLS0gICAgICAgICAgICAgICAgZm9yIGkgaW4g MC4uJGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgaWYgaSA+IDAgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiLCAiKT87Ci0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhY3QoaSkuZm10KGYpPzsKLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIikiKQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVz dF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9mbXRfdXBwZXJfaGV4Pl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICBmbiB1cHBlcl9oZXgoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGFycmF5 dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHR5 cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRlOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZWxlbV90eTo6ZGVmYXVsdCgpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezojWH0iLCB2KS51bndyYXAoKTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJlZyA9IFRpbnlTdHJpbmc6Om5ldygpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGJlZywgInt9KCIsIHN0cmluZ2lm eSEoJGlkKSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLnN0 YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEocy5lbmRzX3dpdGgoIikiKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6IEFy cmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g cy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpLnJlcGxhY2UoIikiLCAiIikKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLnNwbGl0KCIsIikKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0oKSkudW53cmFwKCkpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVzKCkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVudW1lcmF0ZSgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gVGlueVN0cmluZzo6bmV3KCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGUsICJ7OiNYfSIsIHYu ZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHNzLCBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9mbXQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv Zm10LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10LnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwxMiArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgZm9ybWF0dGluZyBB UElzCi0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGRlYnVnOwotLSNbbWFjcm9fdXNlXQotLW1vZCBs b3dlcl9oZXg7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHVwcGVyX2hleDsKLS0jW21hY3JvX3VzZV0K LS1tb2Qgb2N0YWw7Ci0tI1ttYWNyb191c2VdCi0tbW9kIGJpbmFyeTsKLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX2FycmF5LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV9hcnJh eS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTI0ICswLDAgQEAKLS0vLyEgSW1wbGVt ZW50cyBgRnJvbTxbVDsgTl0+YCBhbmQgYEludG88W1Q7IE5dPmAgZm9yIHZlY3RvciB0eXBlcy4K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2FycmF5IHsKLS0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0Ci0tICAgICB8ICgk bm9uX2RlZmF1bHRfYXJyYXk6ZXhwciwgJG5vbl9kZWZhdWx0X3ZlYzpleHByKSkgPT4gewotLSAg ICAgICAgaW1wbCBGcm9tPFskZWxlbV90eTsgJGVsZW1fY291bnRdPiBmb3IgJGlkIHsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBmcm9tKGFycmF5OiBbJGVsZW1fdHk7 ICRlbGVtX2NvdW50XSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAg ICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdLAotLSAgICAg ICAgICAgICAgICAgICAgdmVjOiAkaWQsCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgdW5zYWZlIHsgVSB7IGFycmF5IH0udmVjIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tCi0tICAgICAgICBpbXBsIEZyb208JGlkPiBmb3IgWyRlbGVtX3R5OyAkZWxlbV9jb3Vu dF0gewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGZyb20odmVjOiAk aWQpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAg ICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSwKLS0gICAgICAgICAgICAgICAg ICAgIHZlYzogJGlkLAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IFUgeyB2ZWMgfS5hcnJheSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAg ICAgICAgLy8gRklYTUU6IGBJbnRvOjppbnRvYCBpcyBub3QgaW5saW5lLCBidXQgZHVlIHRvCi0t ICAgICAgICAvLyB0aGUgYmxhbmtldCBpbXBsIGluIGBzdGRgLCB3aGljaCBpcyBub3QKLS0gICAg ICAgIC8vIG1hcmtlZCBgZGVmYXVsdGAsIHdlIGNhbm5vdCBvdmVycmlkZSBpdCBoZXJlIHdpdGgK LS0gICAgICAgIC8vIHNwZWNpYWxpemF0aW9uLgotLSAgICAgICAgLyoKLS0gICAgICAgIGltcGwg SW50bzxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gaW50byhzZWxmKSAtPiBbJGVsZW1fdHk7ICRlbGVtX2Nv dW50XSB7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAg YXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdLAotLSAgICAgICAgICAgICAgICAgICAgdmVj OiAkaWQsCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgVSB7 IHZlYzogc2VsZiB9LmFycmF5IH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICBpbXBsIEludG88JGlkPiBmb3IgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGludG8oc2VsZikgLT4gJGlkIHsKLS0g ICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICBhcnJheTogWyRl bGVtX3R5OyAkZWxlbV9jb3VudF0sCi0tICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBVIHsgYXJyYXk6IHNl bGYgfS52ZWMgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgICovCi0tCi0t ICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVn ZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAgICAgICAgICNbYWxs b3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAgICAgICBtb2QgWzwkaWQgX2Zyb20+ XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAg ICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG1pcmksIGlnbm9y ZSldCi0tICAgICAgICAgICAgICAgICAgICBmbiBhcnJheSgpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdmVjOiAkaWQgPSBEZWZhdWx0OjpkZWZhdWx0KCk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yIGFycmF5cyB3aXRoIG1vcmUg dGhhbiAzMgotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzLgotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZSBiZWNh dXNlIHdlIG5ldmVyIHRha2UgYSByZWZlcmVuY2UgdG8gYW55Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdW5pbml0aWFsaXplZCBlbGVtZW50LgotLSAgICAgICAgICAgICAgICAgICAgICAg IHVuaW9uIFcgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheTogWyRlbGVtX3R5 OyAkZWxlbV9jb3VudF0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyOiAoKQot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IGFycmF5ID0gVyB7IG90aGVyOiAoKSB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGRlZmF1bHQ6ICRlbGVtX3R5ID0gRGVmYXVsdDo6ZGVmYXVsdCgpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBub3RlOiBhcnJheS5vdGhlciBpcyB0aGUgYWN0aXZlIG1lbWJlciBh bmQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQgc28gd2UgY2Fu IHRha2UgYSByZWZlcmVuY2UgdG8gaXQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBwID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYXJy YXkub3RoZXIgYXMgKm11dCAoKSBhcyAqbXV0ICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IGRlZmF1 bHQgaXMgYSB2YWxpZCBiaXQtcGF0dGVybiBmb3IKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gJGVsZW1fdHk6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjp3cml0ZShwLndyYXBw aW5nX2FkZChpKSwgZGVmYXVsdCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90 ZTogdGhlIGFycmF5IHZhcmlhbnQgb2YgdGhlIHVuaW9uIGlzIHByb3Blcmx5Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBhcnJheSA9IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy cmF5LmFycmF5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBhcnJheVswXSA9ICRub25fZGVmYXVsdF9hcnJheTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdmVjID0gdmVjLnJlcGxhY2UoMCwgJG5vbl9kZWZhdWx0X3ZlYyk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlY19mcm9tX2FycmF5ID0gJGlkOjpmcm9t KGFycmF5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHZlY19mcm9tX2Fy cmF5LCB2ZWMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcnJheV9mcm9tX3ZlYwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT46 OmZyb20odmVjKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV29ya2Fyb3Vu ZCBmb3IgYXJyYXlzIHdpdGggbW9yZSB0aGFuIDMyCi0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gZWxlbWVudHMuCi0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1f Y291bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFycmF5X2Zy b21fdmVjW2ldLCBhcnJheVtpXSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWNfZnJvbV9pbnRvX2FycmF5OiAkaWQgPSBhcnJh eS5pbnRvKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2ZWNfZnJvbV9p bnRvX2FycmF5LCB2ZWMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcnJheV9mcm9t X2ludG9fdmVjOiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IHZlYy5pbnRvKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6 IFdvcmthcm91bmQgZm9yIGFycmF5cyB3aXRoIG1vcmUgdGhhbiAzMgotLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGVsZW1lbnRzLgotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShhcnJheV9mcm9tX2ludG9fdmVjW2ldLCBhcnJheVtpXSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX3ZlY3Rvci5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX3ZlY3Rvci5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY3ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50 cyBgRnJvbWAgYW5kIGBJbnRvYCBmb3IgdmVjdG9yIHR5cGVzLgotLQotLW1hY3JvX3J1bGVzISBp bXBsX2Zyb21fdmVjdG9yIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0Ci0tICAgICB8ICRzb3VyY2U6aWRlbnQpID0+IHsK LS0gICAgICAgIGltcGwgRnJvbTwkc291cmNlPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBmcm9tKHNvdXJjZTogJHNvdXJjZSkgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIGZuIHN0YXRpY19hc3NlcnRfc2FtZV9udW1iZXJfb2ZfbGFuZXM8VCwg VT4oKQotLSAgICAgICAgICAgICAgICB3aGVyZQotLSAgICAgICAgICAgICAgICAgICAgVDogY3Jh dGU6OnNlYWxlZDo6U2ltZCwKLS0gICAgICAgICAgICAgICAgICAgIFU6IGNyYXRlOjpzZWFsZWQ6 OlNpbWQ8TGFuZXNUeXBlID0gVDo6TGFuZXNUeXBlPiwKLS0gICAgICAgICAgICAgICAgewotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9j YXN0OwotLSAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0X3NhbWVfbnVtYmVyX29mX2xhbmVz Ojo8JGlkLCAkc291cmNlPigpOwotLSAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRf Y2FzdChzb3VyY2UuMCkgfSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAg ICAvLyBGSVhNRTogYEludG86OmludG9gIGlzIG5vdCBpbmxpbmUsIGJ1dCBkdWUgdG8gdGhlIGJs YW5rZXQgaW1wbCBpbgotLSAgICAgICAgLy8gYHN0ZGAsIHdoaWNoIGlzIG5vdCBtYXJrZWQgYGRl ZmF1bHRgLCB3ZSBjYW5ub3Qgb3ZlcnJpZGUgaXQgaGVyZQotLSAgICAgICAgLy8gd2l0aCBzcGVj aWFsaXphdGlvbi4KLS0KLS0gICAgICAgIC8qCi0tICAgICAgICAgICBpbXBsIEludG88JGlkPiBm b3IgJHNvdXJjZSB7Ci0tICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAg Zm4gaW50byhzZWxmKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBzaW1k X2Nhc3Qoc2VsZikgfQotLSAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgIH0KLS0gICAgICAg ICovCi0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf ZnJvbV8gJHNvdXJjZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZnJv bSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRpZDo6bGFuZXMoKSwg JHNvdXJjZTo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNvdXJjZTog JHNvdXJjZSA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdmVjOiAkaWQgPSBEZWZhdWx0OjpkZWZhdWx0KCk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGUgPSAkaWQ6OmZyb20oc291cmNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGUsIHZlYyk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGU6 ICRpZCA9IHNvdXJjZS5pbnRvKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShlLCB2ZWMpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEg aW1wbF9mcm9tX3ZlY3RvcnMgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQKLS0gICAgIHwgJCgkc291cmNlOmlkZW50KSwq KSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGxfZnJvbV92ZWN0b3IhKAotLSAg ICAgICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XTogJGlkIHwgJHRlc3RfdHQgfCAk c291cmNlCi0tICAgICAgICAgICAgKTsKLS0gICAgICAgICkqCi0tICAgIH0KLS19Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20ucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20ucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9mcm9tLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3ICsw LDAgQEAKLS0vLyEgSW1wbGVtZW50YXRpb25zIG9mIHRoZSBgRnJvbWAgYW5kIGBJbnRvYCB0cmFp dHMKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgZnJvbV9hcnJheTsKLS0KLS0jW21hY3JvX3VzZV0K LS1tb2QgZnJvbV92ZWN0b3I7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2hhc2gucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvaGFzaC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2hh c2gucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9oYXNoLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSw0OSArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgYEhhc2hg IGZvciB2ZWN0b3IgdHlwZXMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfaGFzaCB7Ci0tICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0 dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6aGFzaDo6SGFzaCBmb3IgJGlkIHsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBoYXNoPEg6IGNyYXRlOjpoYXNoOjpI YXNoZXI+KCZzZWxmLCBzdGF0ZTogJm11dCBIKSB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7 Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBkYXRhOiBbJGVsZW1fdHk7ICRpZDo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAg ICAgdmVjOiAkaWQsCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICBBIHsgdmVjOiAqc2VsZiB9LmRhdGEuaGFzaChzdGF0ZSkKLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAg ICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9oYXNoPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGhhc2goKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpoYXNoOjp7SGFzaCwgSGFzaGVyfTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGRlcHJlY2F0ZWQpXQotLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aGFzaDo6e1NpcEhhc2hlcjEzfTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB0eXBlIEEgPSBbJGVsZW1fdHk7ICRpZDo6bGFuZXMoKV07Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGE6IEEgPSBbNDIgYXMgJGVsZW1fdHk7ICRpZDo6bGFu ZXMoKV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PEE+KCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjwkaWQ+KCkKLS0gICAgICAg ICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coZGVw cmVjYXRlZCldCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhX2hhc2ggPSBTaXBI YXNoZXIxMzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2X2hhc2gg PSBhX2hhc2guY2xvbmUoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhLmhhc2goJm11dCBh X2hhc2gpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludGVnZXIgd2l0aGluIG1h bnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6 OmZsb2F0X2NtcCldCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0 KDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2Lmhhc2goJm11dCB2 X2hhc2gpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYV9oYXNoLmZpbmlz aCgpLCB2X2hhc2guZmluaXNoKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL2Fy Y2hfc3BlY2lmaWMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50 b19iaXRzL2FyY2hfc3BlY2lmaWMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9pbnRvX2JpdHMvYXJjaF9zcGVjaWZpYy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2ludG9fYml0cy9hcmNoX3NwZWNpZmljLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwzNDUgKzAsMCBAQAotLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0Jp dHNgIGJldHdlZW4gcG9ydGFibGUgdmVjdG9yIHR5cGVzIGFuZCB0aGUKLS0vLyEgYXJjaGl0ZWN0 dXJlLXNwZWNpZmljIHZlY3RvciB0eXBlcy4KLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tLy8gRklY TUU6IE1JUFMgRnJvbUJpdHMvSW50b0JpdHMKLS0KLS0jW2FsbG93KHVudXNlZCldCi0tdXNlIGNy YXRlOjoqOwotLQotLS8vLyBUaGlzIG1hY3JvIGltcGxlbWVudHMgRnJvbUJpdHMgZm9yIHRoZSBw b3J0YWJsZSBhbmQgdGhlIGFyY2hpdGVjdHVyZQotLS8vLyBzcGVjaWZpYyB2ZWN0b3IgdHlwZXMu Ci0tLy8vCi0tLy8vIFRoZSAibGVhZiIgY2FzZSBpcyBhdCB0aGUgYm90dG9tLCBhbmQgdGhlIG1v c3QgZ2VuZXJpYyBjYXNlIGlzIGF0IHRoZSB0b3AuCi0tLy8vIFRoZSBnZW5lcmljIGNhc2UgaXMg c3BsaXQgaW50byBzbWFsbGVyIGNhc2VzIHJlY3Vyc2l2ZWx5LgotLW1hY3JvX3J1bGVzISBpbXBs X2FyY2ggewotLSAgICAoWyRhcmNoX2hlYWRfaTppZGVudFskYXJjaF9oZWFkX3R0OnR0XTogJCgk YXJjaF9oZWFkX3R5OmlkZW50KSwqXSwKLS0gICAgICQoWyRhcmNoX3RhaWxfaTppZGVudFskYXJj aF90YWlsX3R0OnR0XTogJCgkYXJjaF90YWlsX3R5OmlkZW50KSwqXSksKiB8Ci0tICAgICBmcm9t OiAkKCRmcm9tX3R5OmlkZW50KSwqIHwgaW50bzogJCgkaW50b190eTppZGVudCksKiB8Ci0tICAg ICB0ZXN0OiAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbF9hcmNoISgKLS0gICAgICAg ICAgICBbJGFyY2hfaGVhZF9pWyRhcmNoX2hlYWRfdHRdOiAkKCRhcmNoX2hlYWRfdHkpLCpdIHwK LS0gICAgICAgICAgICBmcm9tOiAkKCRmcm9tX3R5KSwqIHwKLS0gICAgICAgICAgICBpbnRvOiAk KCRpbnRvX3R5KSwqIHwKLS0gICAgICAgICAgICB0ZXN0OiAkdGVzdF90dAotLSAgICAgICAgKTsK LS0gICAgICAgIGltcGxfYXJjaCEoCi0tICAgICAgICAgICAgJChbJGFyY2hfdGFpbF9pWyRhcmNo X3RhaWxfdHRdOiAkKCRhcmNoX3RhaWxfdHkpLCpdKSwqIHwKLS0gICAgICAgICAgICBmcm9tOiAk KCRmcm9tX3R5KSwqIHwKLS0gICAgICAgICAgICBpbnRvOiAkKCRpbnRvX3R5KSwqIHwKLS0gICAg ICAgICAgICB0ZXN0OiAkdGVzdF90dAotLSAgICAgICAgKTsKLS0gICAgfTsKLS0gICAgKFskYXJj aDppZGVudFskYXJjaF90dDp0dF06ICQoJGFyY2hfdHk6aWRlbnQpLCpdIHwKLS0gICAgIGZyb206 ICQoJGZyb21fdHk6aWRlbnQpLCogfCBpbnRvOiAkKCRpbnRvX3R5OmlkZW50KSwqIHwKLS0gICAg IHRlc3Q6ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICAvLyBub3RlOiBpZiB0YXJnZXQgaXMg ImFybSIsICIrdjcsK25lb24iIG11c3QgYmUgZW5hYmxlZAotLSAgICAgICAgLy8gYW5kIHRoZSBz dGQgbGlicmFyeSBtdXN0IGJlIHJlY29tcGlsZWQgd2l0aCB0aGVtCi0tICAgICAgICAjW2NmZyhh bnkoCi0tICAgICAgICAgICAgbm90KHRhcmdldF9hcmNoID0gImFybSIpLAotLSAgICAgICAgICAg IGFsbCh0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAotLSAg ICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24pKSkK LS0gICAgICAgICldCi0tICAgICAgICAvLyBub3RlOiBpZiB0YXJnZXQgaXMgInBvd2VycGMiLCAi YWx0aXZlYyIgbXVzdCBiZSBlbmFibGVkCi0tICAgICAgICAvLyBhbmQgdGhlIHN0ZCBsaWJyYXJ5 IG11c3QgYmUgcmVjb21waWxlZCB3aXRoIGl0Ci0tICAgICAgICAjW2NmZyhhbnkoCi0tICAgICAg ICAgICAgbm90KHRhcmdldF9hcmNoID0gInBvd2VycGMiKSwKLS0gICAgICAgICAgICBhbGwodGFy Z2V0X2ZlYXR1cmUgPSAiYWx0aXZlYyIsIGZlYXR1cmUgPSAiY29yZV9hcmNoIiksCi0tICAgICAg ICApKV0KLS0gICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gJGFyY2hfdHQpXQotLSAgICAgICAg dXNlIGNyYXRlOjphcmNoOjokYXJjaDo6ewotLSAgICAgICAgICAgICQoJGFyY2hfdHkpLCoKLS0g ICAgICAgIH07Ci0tCi0tICAgICAgICAjW2NmZyhhbnkoCi0tICAgICAgICAgICAgbm90KHRhcmdl dF9hcmNoID0gImFybSIpLAotLSAgICAgICAgICAgIGFsbCh0YXJnZXRfZmVhdHVyZSA9ICJ2NyIs IHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAotLSAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9 ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24pKSkKLS0gICAgICAgICldCi0tICAgICAgICAjW2Nm ZyhhbnkoCi0tICAgICAgICAgICAgbm90KHRhcmdldF9hcmNoID0gInBvd2VycGMiKSwKLS0gICAg ICAgICAgICBhbGwodGFyZ2V0X2ZlYXR1cmUgPSAiYWx0aXZlYyIsIGZlYXR1cmUgPSAiY29yZV9h cmNoIiksCi0tICAgICAgICApKV0KLS0gICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gJGFyY2hf dHQpXQotLSAgICAgICAgaW1wbF9hcmNoISgkKCRhcmNoX3R5KSwqIHwgJCgkZnJvbV90eSksKiB8 ICQoJGludG9fdHkpLCogfAotLSAgICAgICAgICAgICAgICAgICB0ZXN0OiAkdGVzdF90dCk7Ci0t ICAgIH07Ci0tICAgICgkYXJjaF9oZWFkOmlkZW50LCAkKCRhcmNoX3RhaWw6aWRlbnQpLCogfCAk KCRmcm9tX3R5OmlkZW50KSwqCi0tICAgICB8ICQoJGludG9fdHk6aWRlbnQpLCogfCB0ZXN0OiAk dGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbF9hcmNoISgkYXJjaF9oZWFkIHwgJCgkZnJv bV90eSksKiB8ICQoJGludG9fdHkpLCogfAotLSAgICAgICAgICAgICAgICAgICB0ZXN0OiAkdGVz dF90dCk7Ci0tICAgICAgICBpbXBsX2FyY2ghKCQoJGFyY2hfdGFpbCksKiB8ICQoJGZyb21fdHkp LCogfCAkKCRpbnRvX3R5KSwqIHwKLS0gICAgICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQp OwotLSAgICB9OwotLSAgICAoJGFyY2hfaGVhZDppZGVudCB8ICQoJGZyb21fdHk6aWRlbnQpLCog fCAkKCRpbnRvX3R5OmlkZW50KSwqIHwKLS0gICAgIHRlc3Q6ICR0ZXN0X3R0OnR0KSA9PiB7Ci0t ICAgICAgICBpbXBsX2Zyb21fYml0cyEoJGFyY2hfaGVhZFskdGVzdF90dF06ICQoJGZyb21fdHkp LCopOwotLSAgICAgICAgaW1wbF9pbnRvX2JpdHMhKCRhcmNoX2hlYWRbJHRlc3RfdHRdOiAkKCRp bnRvX3R5KSwqKTsKLS0gICAgfTsKLS19Ci0tCi0tLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS0v LyBJbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSA2NC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXM6Ci0tCi0t Ly8gRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB0eXBlcwotLS8vIEZJWE1FOiBhcm0vYWFy Y2ggZmxvYXQxNng0X3QgbWlzc2luZwotLWltcGxfYXJjaCEoCi0tICAgIFsKLS0gICAgICAgIGFy bVsiYXJtIl06IGludDh4OF90LAotLSAgICAgICAgdWludDh4OF90LAotLSAgICAgICAgcG9seTh4 OF90LAotLSAgICAgICAgaW50MTZ4NF90LAotLSAgICAgICAgdWludDE2eDRfdCwKLS0gICAgICAg IHBvbHkxNng0X3QsCi0tICAgICAgICBpbnQzMngyX3QsCi0tICAgICAgICB1aW50MzJ4Ml90LAot LSAgICAgICAgZmxvYXQzMngyX3QsCi0tICAgICAgICBpbnQ2NHgxX3QsCi0tICAgICAgICB1aW50 NjR4MV90Ci0tICAgIF0sCi0tICAgIFsKLS0gICAgICAgIGFhcmNoNjRbImFhcmNoNjQiXTogaW50 OHg4X3QsCi0tICAgICAgICB1aW50OHg4X3QsCi0tICAgICAgICBwb2x5OHg4X3QsCi0tICAgICAg ICBpbnQxNng0X3QsCi0tICAgICAgICB1aW50MTZ4NF90LAotLSAgICAgICAgcG9seTE2eDRfdCwK LS0gICAgICAgIGludDMyeDJfdCwKLS0gICAgICAgIHVpbnQzMngyX3QsCi0tICAgICAgICBmbG9h dDMyeDJfdCwKLS0gICAgICAgIGludDY0eDFfdCwKLS0gICAgICAgIHVpbnQ2NHgxX3QsCi0tICAg ICAgICBmbG9hdDY0eDFfdAotLSAgICBdIHwgZnJvbTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAg bTh4OCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDIs Ci0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIgfCBpbnRvOiBpOHg4LAotLSAg ICB1OHg4LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4 MiwKLS0gICAgZjMyeDIgfCB0ZXN0OiB0ZXN0X3Y2NAotLSk7Ci0tCi0tLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8KLS0vLyBJbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSAxMjgtYml0IHdpZGUgdmVjdG9y IHR5cGVzOgotLQotLS8vIEZJWE1FOiBhcm0vYWFyY2ggZmxvYXQxNng4X3QgbWlzc2luZwotLS8v IEZJWE1FOiBwcGMgdmVjdG9yX3BpeGVsIG1pc3NpbmcKLS0vLyBGSVhNRTogcHBjNjQgdmVjdG9y X0Zsb2F0MTYgbWlzc2luZwotLS8vIEZJWE1FOiBwcGM2NCB2ZWN0b3Jfc2lnbmVkX2xvbmdfbG9u ZyBtaXNzaW5nCi0tLy8gRklYTUU6IHBwYzY0IHZlY3Rvcl91bnNpZ25lZF9sb25nX2xvbmcgbWlz c2luZwotLS8vIEZJWE1FOiBwcGM2NCB2ZWN0b3JfYm9vbF9sb25nX2xvbmcgbWlzc2luZwotLS8v IEZJWE1FOiBwcGM2NCB2ZWN0b3Jfc2lnbmVkX19faW50MTI4IG1pc3NpbmcKLS0vLyBGSVhNRTog cHBjNjQgdmVjdG9yX3Vuc2lnbmVkX19faW50MTI4IG1pc3NpbmcKLS1pbXBsX2FyY2ghKAotLSAg ICBbeDg2WyJ4ODYiXTogX19tMTI4LCBfX20xMjhpLCBfX20xMjhkXSwKLS0gICAgW3g4Nl82NFsi eDg2XzY0Il06IF9fbTEyOCwgX19tMTI4aSwgX19tMTI4ZF0sCi0tICAgIFsKLS0gICAgICAgIGFy bVsiYXJtIl06IGludDh4MTZfdCwKLS0gICAgICAgIHVpbnQ4eDE2X3QsCi0tICAgICAgICBwb2x5 OHgxNl90LAotLSAgICAgICAgaW50MTZ4OF90LAotLSAgICAgICAgdWludDE2eDhfdCwKLS0gICAg ICAgIHBvbHkxNng4X3QsCi0tICAgICAgICBpbnQzMng0X3QsCi0tICAgICAgICB1aW50MzJ4NF90 LAotLSAgICAgICAgZmxvYXQzMng0X3QsCi0tICAgICAgICBpbnQ2NHgyX3QsCi0tICAgICAgICB1 aW50NjR4Ml90Ci0tICAgIF0sCi0tICAgIFsKLS0gICAgICAgIGFhcmNoNjRbImFhcmNoNjQiXTog aW50OHgxNl90LAotLSAgICAgICAgdWludDh4MTZfdCwKLS0gICAgICAgIHBvbHk4eDE2X3QsCi0t ICAgICAgICBpbnQxNng4X3QsCi0tICAgICAgICB1aW50MTZ4OF90LAotLSAgICAgICAgcG9seTE2 eDhfdCwKLS0gICAgICAgIGludDMyeDRfdCwKLS0gICAgICAgIHVpbnQzMng0X3QsCi0tICAgICAg ICBmbG9hdDMyeDRfdCwKLS0gICAgICAgIGludDY0eDJfdCwKLS0gICAgICAgIHVpbnQ2NHgyX3Qs Ci0tICAgICAgICBmbG9hdDY0eDJfdAotLSAgICBdLAotLSAgICBbCi0tICAgICAgICBwb3dlcnBj WyJwb3dlcnBjIl06IHZlY3Rvcl9zaWduZWRfY2hhciwKLS0gICAgICAgIHZlY3Rvcl91bnNpZ25l ZF9jaGFyLAotLSAgICAgICAgdmVjdG9yX3NpZ25lZF9zaG9ydCwKLS0gICAgICAgIHZlY3Rvcl91 bnNpZ25lZF9zaG9ydCwKLS0gICAgICAgIHZlY3Rvcl9zaWduZWRfaW50LAotLSAgICAgICAgdmVj dG9yX3Vuc2lnbmVkX2ludCwKLS0gICAgICAgIHZlY3Rvcl9mbG9hdAotLSAgICBdLAotLSAgICBb Ci0tICAgICAgICBwb3dlcnBjNjRbInBvd2VycGM2NCJdOiB2ZWN0b3Jfc2lnbmVkX2NoYXIsCi0t ICAgICAgICB2ZWN0b3JfdW5zaWduZWRfY2hhciwKLS0gICAgICAgIHZlY3Rvcl9zaWduZWRfc2hv cnQsCi0tICAgICAgICB2ZWN0b3JfdW5zaWduZWRfc2hvcnQsCi0tICAgICAgICB2ZWN0b3Jfc2ln bmVkX2ludCwKLS0gICAgICAgIHZlY3Rvcl91bnNpZ25lZF9pbnQsCi0tICAgICAgICB2ZWN0b3Jf ZmxvYXQsCi0tICAgICAgICB2ZWN0b3Jfc2lnbmVkX2xvbmcsCi0tICAgICAgICB2ZWN0b3JfdW5z aWduZWRfbG9uZywKLS0gICAgICAgIHZlY3Rvcl9kb3VibGUKLS0gICAgXSB8IGZyb206IGk4eDE2 LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0g ICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0z Mng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwK LS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIG0xMjh4MSB8IGludG86IGk4eDE2LAot LSAgICB1OHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBpMzJ4NCwKLS0gICAg dTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgy LAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSB8IHRlc3Q6IHRlc3RfdjEyOAotLSk7Ci0tCi0t aW1wbF9hcmNoISgKLS0gICAgW3Bvd2VycGNbInBvd2VycGMiXTogdmVjdG9yX2Jvb2xfY2hhcl0s Ci0tICAgIFtwb3dlcnBjNjRbInBvd2VycGM2NCJdOiB2ZWN0b3JfYm9vbF9jaGFyXSB8IGZyb206 IG04eDE2LAotLSAgICBtMTZ4OCwKLS0gICAgbTMyeDQsCi0tICAgIG02NHgyLAotLSAgICBtMTI4 eDEgfCBpbnRvOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwK LS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAg IHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIC8v IE1hc2tzOgotLSAgICBtOHgxNiB8IHRlc3Q6IHRlc3RfdjEyOAotLSk7Ci0tCi0taW1wbF9hcmNo ISgKLS0gICAgW3Bvd2VycGNbInBvd2VycGMiXTogdmVjdG9yX2Jvb2xfc2hvcnRdLAotLSAgICBb cG93ZXJwYzY0WyJwb3dlcnBjNjQiXTogdmVjdG9yX2Jvb2xfc2hvcnRdIHwgZnJvbTogbTE2eDgs Ci0tICAgIG0zMng0LAotLSAgICBtNjR4MiwKLS0gICAgbTEyOHgxIHwgaW50bzogaTh4MTYsCi0t ICAgIHU4eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1 MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIs Ci0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICAvLyBNYXNrczoKLS0gICAgbTh4MTYs Ci0tICAgIG0xNng4IHwgdGVzdDogdGVzdF92MTI4Ci0tKTsKLS0KLS1pbXBsX2FyY2ghKAotLSAg ICBbcG93ZXJwY1sicG93ZXJwYyJdOiB2ZWN0b3JfYm9vbF9pbnRdLAotLSAgICBbcG93ZXJwYzY0 WyJwb3dlcnBjNjQiXTogdmVjdG9yX2Jvb2xfaW50XSB8IGZyb206IG0zMng0LAotLSAgICBtNjR4 MiwKLS0gICAgbTEyOHgxIHwgaW50bzogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBpMTZ4OCwK LS0gICAgdTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAg IGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEy OHgxLAotLSAgICAvLyBNYXNrczoKLS0gICAgbTh4MTYsCi0tICAgIG0xNng4LAotLSAgICBtMzJ4 NCB8IHRlc3Q6IHRlc3RfdjEyOAotLSk7Ci0tCi0taW1wbF9hcmNoISgKLS0gICAgW3Bvd2VycGM2 NFsicG93ZXJwYzY0Il06IHZlY3Rvcl9ib29sX2xvbmddIHwgZnJvbTogbTY0eDIsCi0tICAgIG0x Mjh4MSB8IGludG86IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4 LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBpNjR4MiwKLS0g ICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAg Ly8gTWFza3M6Ci0tICAgIG04eDE2LAotLSAgICBtMTZ4OCwKLS0gICAgbTMyeDQsCi0tICAgIG02 NHgyIHwgdGVzdDogdGVzdF92MTI4Ci0tKTsKLS0KLS0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot LS8vIEltcGxlbWVudGF0aW9ucyBmb3IgdGhlIDI1Ni1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0K LS1pbXBsX2FyY2ghKAotLSAgICBbeDg2WyJ4ODYiXTogX19tMjU2LCBfX20yNTZpLCBfX20yNTZk XSwKLS0gICAgW3g4Nl82NFsieDg2XzY0Il06IF9fbTI1NiwgX19tMjU2aSwgX19tMjU2ZF0gfCBm cm9tOiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAgICBpMTZ4MTYsCi0tICAg IHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYz Mng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwK LS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIgfCBp bnRvOiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAotLSAg ICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0 eDQsCi0tICAgIGY2NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiB8IHRlc3Q6IHRlc3Rf djI1NgotLSk7Ci0tCi0tLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS0vLyBGSVhNRTogSW1wbGVt ZW50YXRpb25zIGZvciB0aGUgNTEyLWJpdCB3aWRlIHZlY3RvciB0eXBlcwotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9tYWNyb3Mu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMv bWFjcm9zLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzQgKzAsMCBAQAotLS8vISBN YWNyb3MgaW1wbGVtZW50aW5nIGBGcm9tQml0c2AKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mcm9t X2JpdHNfIHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICRmcm9tX3R5OmlkZW50KSA9 PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjphcGk6OmludG9fYml0czo6RnJvbUJpdHM8JGZyb21f dHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGZy b21fYml0cyh4OiAkZnJvbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7 IGNyYXRlOjptZW06OnRyYW5zbXV0ZSh4KSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21f Yml0c18gJGZyb21fdHk+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHRl c3QoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjp7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHB0cjo6e3JlYWRfdW5hbGlnbmVkfSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWVtOjp7c2l6ZV9vZiwgemVyb2VkfQotLSAgICAgICAgICAgICAgICAg ICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpJbnRvQml0czsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNpemVfb2Y6OjwkaWQ+KCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX29mOjo8JGZyb21fdHk+KCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHdlIG5l dmVyIGNyZWF0ZSBhIHJlZmVyZW5jZSB0bwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVu aW5pdGlhbGl6ZWQgbWVtb3J5OgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhOiAkZnJv bV90eSA9IHVuc2FmZSB7IHplcm9lZCgpIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGJfMDogJGlkID0gY3JhdGU6OkZyb21CaXRzOjpmcm9tX2JpdHMoYSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGJfMTogJGlkID0gYS5pbnRvX2JpdHMoKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZXNlIGFyZSBieXRlLXdpc2UgZXF1YWws IHRoYXQgaXMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCB0aGUgYml0IHBhdHRl cm5zIGFyZSBpZGVudGljYWw6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u c2l6ZV9vZjo6PCRpZD4oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMg aXMgc2FmZSBiZWNhdXNlIHdlIG9ubHkgcmVhZCBpbml0aWFsaXplZAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBtZW1vcnkgaW4gYm91bmRzLiBBbHNvLCB0YWtpbmcgYSByZWZlcmVu Y2UgdG8KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGJfaWAgaXMgb2sgYmVjYXVz ZSB0aGUgZmllbGRzIGFyZSBpbml0aWFsaXplZC4KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiXzBfdjog dTggPSByZWFkX3VuYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoJmJfMCBhcyAqY29uc3QgJGlkIGFzICpjb25zdCB1OCkKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLndyYXBwaW5nX2FkZChpKQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBi XzFfdjogdTggPSByZWFkX3VuYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoJmJfMSBhcyAqY29uc3QgJGlkIGFzICpjb25zdCB1OCkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLndyYXBwaW5nX2FkZChpKQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoYl8wX3YsIGJfMV92KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19 Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9iaXRzIHsKLS0gICAgKCRpZDppZGVudFskdGVz dF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCopID0+IHsKLS0gICAgICAgICQoCi0tICAgICAg ICAgICAgaW1wbF9mcm9tX2JpdHNfISgkaWRbJHRlc3RfdHRdOiAkZnJvbV90eSk7Ci0tICAgICAg ICApKgotLSAgICB9Ci0tfQotLQotLSNbYWxsb3codW51c2VkKV0KLS1tYWNyb19ydWxlcyEgaW1w bF9pbnRvX2JpdHMgewotLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJCgkZnJvbV90eTpp ZGVudCksKikgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAgICBpbXBsX2Zyb21fYml0c18h KCRmcm9tX3R5WyR0ZXN0X3R0XTogJGlkKTsKLS0gICAgICAgICkqCi0tICAgIH0KLS19Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92 MTI4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92 MTI4LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19i aXRzL3YxMjgucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjMyICswLDAgQEAKLS0vLyEg YEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDEy OC1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLSNbYWxsb3codW51c2Vk KV0gIC8vIHdhc21fYmluZGdlbl90ZXN0Ci0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxfZnJvbV9i aXRzISgKLS0gICAgaTh4MTZbdGVzdF92MTI4XTogdTh4MTYsCi0tICAgIG04eDE2LAotLSAgICBp MTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQs Ci0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAg ICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICBt MTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTh4MTZbdGVzdF92MTI4XTogaTh4 MTYsCi0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAot LSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAg aTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4 MSwKLS0gICAgdTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzIShtOHgx Nlt0ZXN0X3YxMjhdOiBtMTZ4OCwgbTMyeDQsIG02NHgyLCBtMTI4eDEpOwotLQotLWltcGxfZnJv bV9iaXRzISgKLS0gICAgaTE2eDhbdGVzdF92MTI4XTogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAg ICBtOHgxNiwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMy eDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAot LSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAg ICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTE2eDhbdGVzdF92MTI4XTog aTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIG0xNng4 LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0g ICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkx Mjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzISht MTZ4OFt0ZXN0X3YxMjhdOiBtMzJ4NCwgbTY0eDIsIG0xMjh4MSk7Ci0tCi0taW1wbF9mcm9tX2Jp dHMhKAotLSAgICBpMzJ4NFt0ZXN0X3YxMjhdOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIG04 eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICB1MzJ4NCwK LS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAg IGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIG0x Mjh4MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1MzJ4NFt0ZXN0X3YxMjhdOiBpOHgx NiwKLS0gICAgdTh4MTYsCi0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0t ICAgIG0xNng4LAotLSAgICBpMzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBp NjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgx LAotLSAgICB1MTI4eDEsCi0tICAgIG0xMjh4MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAg ICBmMzJ4NFt0ZXN0X3YxMjhdOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIG04eDE2LAotLSAg ICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMy eDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAot LSAgICBtNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIG0xMjh4MQotLSk7 Ci0taW1wbF9mcm9tX2JpdHMhKG0zMng0W3Rlc3RfdjEyOF06IG02NHgyLCBtMTI4eDEpOwotLQot LWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTY0eDJbdGVzdF92MTI4XTogaTh4MTYsCi0tICAgIHU4 eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwK LS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAg IHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEy OHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTY0eDJbdGVz dF92MTI4XTogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0t ICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBm MzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIs Ci0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxfZnJv bV9iaXRzISgKLS0gICAgZjY0eDJbdGVzdF92MTI4XTogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAg ICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMy eDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAot LSAgICB1NjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAg ICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzIShtNjR4Mlt0ZXN0X3YxMjhdOiBtMTI4eDEp OwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTEyOHgxW3Rlc3RfdjEyOF06IGk4eDE2LAot LSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAg bTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0 LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0g ICAgdTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTEy OHgxW3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkx Nng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwK LS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAg IGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLS8v IG5vdGU6IG0xMjh4MSBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwgdGhlIG90aGVyIG1h c2tzIGJpdCBwYXR0ZXJucyBpbgotLS8vIGhlcmUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxNi5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjE2LnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxNi5ycwkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2ludG9fYml0cy92MTYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDkgKzAsMCBAQAotLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGlt cGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMTYtYml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZt dDo6c2tpcF0KLS0KLS0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAotLXVz ZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fYml0cyEoaTh4Mlt0ZXN0X3YxNl06IHU4eDIsIG04 eDIpOwotLWltcGxfZnJvbV9iaXRzISh1OHgyW3Rlc3RfdjE2XTogaTh4MiwgbTh4Mik7Ci0tLy8g bm90ZTogbTh4MiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwgaTh4MiBvciB1OHgyIGJp dCBwYXR0ZXJucwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9pbnRvX2JpdHMvdjI1Ni5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9pbnRvX2JpdHMvdjI1Ni5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2ludG9fYml0cy92MjU2LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19i aXRzL3YyNTYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIz MiArMCwwIEBACi0tLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25z IGZvciBwb3J0YWJsZSAyNTYtYml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0K LS0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAotLXVzZSBjcmF0ZTo6KjsK LS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGk4eDMyW3Rlc3RfdjI1Nl06IHU4eDMyLAotLSAg ICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0gICAg aTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg0 LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDIsCi0t ICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU4 eDMyW3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1 MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4 OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0t ICAgIG02NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsK LS1pbXBsX2Zyb21fYml0cyEobTh4MzJbdGVzdF92MjU2XTogbTE2eDE2LCBtMzJ4OCwgbTY0eDQs IG0xMjh4Mik7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBpMTZ4MTZbdGVzdF92MjU2XTog aTh4MzIsCi0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4 MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAot LSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAg aTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMh KAotLSAgICB1MTZ4MTZbdGVzdF92MjU2XTogaTh4MzIsCi0tICAgIHU4eDMyLAotLSAgICBtOHgz MiwKLS0gICAgaTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwK LS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAg IGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0x Mjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKG0xNngxNlt0ZXN0X3YyNTZdOiBtMzJ4OCwgbTY0 eDQsIG0xMjh4Mik7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBpMzJ4OFt0ZXN0X3YyNTZd OiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUx NngxNiwKLS0gICAgbTE2eDE2LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4 LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0g ICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MgotLSk7Ci0taW1wbF9mcm9tX2Jp dHMhKAotLSAgICB1MzJ4OFt0ZXN0X3YyNTZdOiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04 eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4 OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0t ICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAg IG0xMjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBmMzJ4OFt0ZXN0X3YyNTZdOiBp OHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngx NiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIG0zMng4LAot LSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAg aTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMh KG0zMng4W3Rlc3RfdjI1Nl06IG02NHg0LCBtMTI4eDIpOwotLQotLWltcGxfZnJvbV9iaXRzISgK LS0gICAgaTY0eDRbdGVzdF92MjU2XTogaTh4MzIsCi0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwK LS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0t ICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIHU2NHg0LAotLSAgICBm NjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4 eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTY0eDRbdGVzdF92MjU2XTogaTh4MzIs Ci0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0t ICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAg bTMyeDgsCi0tICAgIGk2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4 MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0g ICAgZjY0eDRbdGVzdF92MjU2XTogaTh4MzIsCi0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0g ICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAg IHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4 NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIK LS0pOwotLWltcGxfZnJvbV9iaXRzIShtNjR4NFt0ZXN0X3YyNTZdOiBtMTI4eDIpOwotLQotLWlt cGxfZnJvbV9iaXRzISgKLS0gICAgaTEyOHgyW3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICB1OHgz MiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYs Ci0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAg ICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgdTEy OHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTEyOHgyW3Rl c3RfdjI1Nl06IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwK LS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0g ICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2 NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLS8vIG5v dGU6IG0xMjh4MiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwgdGhlIG90aGVyIG1hc2tz IGJpdCBwYXR0ZXJucyBpbgotLS8vIGhlcmUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YzMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjMyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YzMi5ycwkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2ludG9fYml0cy92MzIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDEzICswLDAgQEAKLS0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBs ZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDMyLWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6 OnNraXBdCi0tCi0tI1thbGxvdyh1bnVzZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKLS11c2Ug Y3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKGk4eDRbdGVzdF92MzJdOiB1OHg0LCBtOHg0 LCBpMTZ4MiwgdTE2eDIsIG0xNngyKTsKLS1pbXBsX2Zyb21fYml0cyEodTh4NFt0ZXN0X3YzMl06 IGk4eDQsIG04eDQsIGkxNngyLCB1MTZ4MiwgbTE2eDIpOwotLWltcGxfZnJvbV9iaXRzIShtOHg0 W3Rlc3RfdjMyXTogbTE2eDIpOwotLQotLWltcGxfZnJvbV9iaXRzIShpMTZ4Mlt0ZXN0X3YzMl06 IGk4eDQsIHU4eDQsIG04eDQsIHUxNngyLCBtMTZ4Mik7Ci0taW1wbF9mcm9tX2JpdHMhKHUxNngy W3Rlc3RfdjMyXTogaTh4NCwgdTh4NCwgbTh4NCwgaTE2eDIsIG0xNngyKTsKLS0vLyBub3RlOiBt MTZ4MiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwgbTh4NCBiaXQgcGF0dGVybnMKLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRz L3Y1MTIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRz L3Y1MTIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRv X2JpdHMvdjUxMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NTEyLnJzCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMzIgKzAsMCBAQAotLS8v ISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUg NTEyLWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tI1thbGxvdyh1bnVz ZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9t X2JpdHMhKAotLSAgICBpOHg2NFt0ZXN0X3Y1MTJdOiB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAg IGkxNngzMiwKLS0gICAgdTE2eDMyLAotLSAgICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAg dTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAgIG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2 NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0 LAotLSAgICBtMTI4eDQKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTh4NjRbdGVzdF92 NTEyXTogaTh4NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngzMiwKLS0g ICAgbTE2eDMyLAotLSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0gICAgZjMyeDE2LAotLSAg ICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02 NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBs X2Zyb21fYml0cyEobTh4NjRbdGVzdF92NTEyXTogbTE2eDMyLCBtMzJ4MTYsIG02NHg4LCBtMTI4 eDQpOwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTE2eDMyW3Rlc3RfdjUxMl06IGk4eDY0 LAotLSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAot LSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0t ICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBp MTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEo Ci0tICAgIHUxNngzMlt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQsCi0tICAgIG04eDY0 LAotLSAgICBpMTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMyeDE2LAotLSAgICB1MzJ4MTYs Ci0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0t ICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAg IG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKG0xNngzMlt0ZXN0X3Y1MTJdOiBtMzJ4MTYs IG02NHg4LCBtMTI4eDQpOwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTMyeDE2W3Rlc3Rf djUxMl06IGk4eDY0LAotLSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0g ICAgdTE2eDMyLAotLSAgICBtMTZ4MzIsCi0tICAgIHUzMngxNiwKLS0gICAgZjMyeDE2LAotLSAg ICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02 NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBs X2Zyb21fYml0cyEoCi0tICAgIHUzMngxNlt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQs Ci0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAot LSAgICBpMzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4OCwKLS0g ICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0LAotLSAgICB1 MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBmMzJ4MTZb dGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAgaTE2eDMy LAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMyeDE2LAotLSAgICB1MzJ4MTYs Ci0tICAgIG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0g ICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwot LWltcGxfZnJvbV9iaXRzIShtMzJ4MTZbdGVzdF92NTEyXTogbTY0eDgsIG0xMjh4NCk7Ci0tCi0t aW1wbF9mcm9tX2JpdHMhKAotLSAgICBpNjR4OFt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4 NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMy LAotLSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYs Ci0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0g ICAgdTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTY0 eDhbdGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAgaTE2 eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMyeDE2LAotLSAgICB1MzJ4 MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4OCwKLS0gICAgZjY0eDgs Ci0tICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0t KTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGY2NHg4W3Rlc3RfdjUxMl06IGk4eDY0LAotLSAg ICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAgdTE2eDMyLAotLSAgICBt MTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAgIG0z MngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0 LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKG02NHg4 W3Rlc3RfdjUxMl06IG0xMjh4NCk7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBpMTI4eDRb dGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAgaTE2eDMy LAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMyeDE2LAotLSAgICB1MzJ4MTYs Ci0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0t ICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwot LWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTEyOHg0W3Rlc3RfdjUxMl06IGk4eDY0LAotLSAgICB1 OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAgdTE2eDMyLAotLSAgICBtMTZ4 MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAgIG0zMngx NiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0t ICAgIGkxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS0vLyBub3RlOiBtMTI4eDQgY2Fubm90IGJl IGNvbnN0cnVjdGVkIGZyb20gYWxsIHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0dGVybnMgaW4KLS0v LyBoZXJlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ludG9fYml0cy92NjQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv aW50b19iaXRzL3Y2NC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2ludG9fYml0cy92NjQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjY0 LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxOCArMCwwIEBA Ci0tLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0 YWJsZSA2NC1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLSNbYWxsb3co dW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0Ci0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxf ZnJvbV9iaXRzIShpOHg4W3Rlc3RfdjY0XTogdTh4OCwgbTh4OCwgaTE2eDQsIHUxNng0LCBtMTZ4 NCwgaTMyeDIsIHUzMngyLCBmMzJ4MiwgbTMyeDIpOwotLWltcGxfZnJvbV9iaXRzISh1OHg4W3Rl c3RfdjY0XTogaTh4OCwgbTh4OCwgaTE2eDQsIHUxNng0LCBtMTZ4NCwgaTMyeDIsIHUzMngyLCBm MzJ4MiwgbTMyeDIpOwotLWltcGxfZnJvbV9iaXRzIShtOHg4W3Rlc3RfdjY0XTogbTE2eDQsIG0z MngyKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoaTE2eDRbdGVzdF92NjRdOiBpOHg4LCB1OHg4LCBt OHg4LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKLS1pbXBsX2Zy b21fYml0cyEodTE2eDRbdGVzdF92NjRdOiBpOHg4LCB1OHg4LCBtOHg4LCBpMTZ4NCwgbTE2eDQs IGkzMngyLCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKLS1pbXBsX2Zyb21fYml0cyEobTE2eDRbdGVz dF92NjRdOiBtMzJ4Mik7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKGkzMngyW3Rlc3RfdjY0XTogaTh4 OCwgdTh4OCwgbTh4OCwgaTE2eDQsIHUxNng0LCBtMTZ4NCwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7 Ci0taW1wbF9mcm9tX2JpdHMhKHUzMngyW3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwgbTh4OCwgaTE2 eDQsIHUxNng0LCBtMTZ4NCwgaTMyeDIsIGYzMngyLCBtMzJ4Mik7Ci0taW1wbF9mcm9tX2JpdHMh KGYzMngyW3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwgbTh4OCwgaTE2eDQsIHUxNng0LCBtMTZ4NCwg aTMyeDIsIHUzMngyLCBtMzJ4Mik7Ci0tLy8gbm90ZTogbTMyeDIgY2Fubm90IGJlIGNvbnN0cnVj dGVkIGZyb20gYWxsIG0xNng0IG9yIG04eDggYml0IHBhdHRlcm5zCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMucnMKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9pbnRvX2JpdHMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDU5ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50YXRpb24gb2YgYEZyb21CaXRzYCBhbmQg YEludG9CaXRzYC4KLS0KLS0vLy8gU2FmZSBsb3NzbGVzcyBiaXR3aXNlIGNvbnZlcnNpb24gZnJv bSBgVGAgdG8gYFNlbGZgLgotLSNbY2ZnX2F0dHIoZG9jX2NmZywgZG9jKGNmZyhmZWF0dXJlID0g ImludG9fYml0cyIpKSldCi0tcHViIHRyYWl0IEZyb21CaXRzPFQ+OiBjcmF0ZTo6bWFya2VyOjpT aXplZCB7Ci0tICAgIC8vLyBTYWZlIGxvc3NsZXNzIGJpdHdpc2UgdHJhbnNtdXRlIGZyb20gYFRg IHRvIGBTZWxmYC4KLS0gICAgZm4gZnJvbV9iaXRzKHQ6IFQpIC0+IFNlbGY7Ci0tfQotLQotLS8v LyBTYWZlIGxvc3NsZXNzIGJpdHdpc2UgY29udmVyc2lvbiBmcm9tIGBTZWxmYCB0byBgVGAuCi0t I1tjZmdfYXR0cihkb2NfY2ZnLCBkb2MoY2ZnKGZlYXR1cmUgPSAiaW50b19iaXRzIikpKV0KLS1w dWIgdHJhaXQgSW50b0JpdHM8VD46IGNyYXRlOjptYXJrZXI6OlNpemVkIHsKLS0gICAgLy8vIFNh ZmUgbG9zc2xlc3MgYml0d2lzZSB0cmFuc211dGUgZnJvbSBgc2VsZmAgdG8gYFRgLgotLSAgICBm biBpbnRvX2JpdHMoc2VsZikgLT4gVDsKLS19Ci0tCi0tLy8vIGBGcm9tQml0c2AgaW1wbGllcyBg SW50b0JpdHNgLgotLWltcGw8VCwgVT4gSW50b0JpdHM8VT4gZm9yIFQKLS13aGVyZQotLSAgICBV OiBGcm9tQml0czxUPiwKLS17Ci0tICAgICNbaW5saW5lXQotLSAgICBmbiBpbnRvX2JpdHMoc2Vs ZikgLT4gVSB7Ci0tICAgICAgICBkZWJ1Z19hc3NlcnQhKGNyYXRlOjptZW06OnNpemVfb2Y6OjxT ZWxmPigpID09IGNyYXRlOjptZW06OnNpemVfb2Y6OjxVPigpKTsKLS0gICAgICAgIFU6OmZyb21f Yml0cyhzZWxmKQotLSAgICB9Ci0tfQotLQotLS8vLyBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNg IGFyZSByZWZsZXhpdmUKLS1pbXBsPFQ+IEZyb21CaXRzPFQ+IGZvciBUIHsKLS0gICAgI1tpbmxp bmVdCi0tICAgIGZuIGZyb21fYml0cyh0OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgIHQKLS0g ICAgfQotLX0KLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgbWFjcm9zOwotLQotLW1vZCB2MTY7Ci0t cHViIHVzZSBzZWxmOjp2MTY6Oio7Ci0tCi0tbW9kIHYzMjsKLS1wdWIgdXNlIHNlbGY6OnYzMjo6 KjsKLS0KLS1tb2QgdjY0OwotLXB1YiB1c2Ugc2VsZjo6djY0OjoqOwotLQotLW1vZCB2MTI4Owot LXB1YiB1c2Ugc2VsZjo6djEyODo6KjsKLS0KLS1tb2QgdjI1NjsKLS1wdWIgdXNlIHNlbGY6OnYy NTY6Oio7Ci0tCi0tbW9kIHY1MTI7Ci0tcHViIHVzZSBzZWxmOjp2NTEyOjoqOwotLQotLW1vZCBh cmNoX3NwZWNpZmljOwotLXB1YiB1c2Ugc2VsZjo6YXJjaF9zcGVjaWZpYzo6KjsKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0 L2Ficy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzMSArMCwwIEBACi0tLy8hIEltcGxl bWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYGFic2AuCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9hYnMgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAg IGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gQWJzb2x1dGUgdmFsdWUuCi0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGFicyhzZWxmKSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6YWJzOjpBYnM7 Ci0tICAgICAgICAgICAgICAgIEFiczo6YWJzKHNlbGYpCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf bWF0aF9hYnM+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgZm4gYWJzKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG8sIG8uYWJzKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtbyA9ICRpZDo6c3BsYXQoLTEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEobywgbW8uYWJzKCkpOwotLSAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9 OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWF0aC9mbG9hdC9jb25zdHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9jb25zdHMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2NvbnN0cy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21h dGgvZmxvYXQvY29uc3RzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSw3NCArMCwwIEBACi0tbWFjcm9fcnVsZXMhIGltcGxfZmxvYXRfY29uc3RzIHsKLS0gICAg KFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCkgPT4gewotLSAg ICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBNYWNoaW5lIGVwc2lsb24gdmFsdWUu Ci0tICAgICAgICAgICAgcHViIGNvbnN0IEVQU0lMT046ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6 JGVsZW1fdHk6OkVQU0lMT04pOwotLQotLSAgICAgICAgICAgIC8vLyBTbWFsbGVzdCBmaW5pdGUg dmFsdWUuCi0tICAgICAgICAgICAgcHViIGNvbnN0IE1JTjogJGlkID0gJGlkOjpzcGxhdChjb3Jl OjokZWxlbV90eTo6TUlOKTsKLS0KLS0gICAgICAgICAgICAvLy8gU21hbGxlc3QgcG9zaXRpdmUg bm9ybWFsIHZhbHVlLgotLSAgICAgICAgICAgIHB1YiBjb25zdCBNSU5fUE9TSVRJVkU6ICRpZCA9 ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6Ok1JTl9QT1NJVElWRSk7Ci0tCi0tICAgICAgICAg ICAgLy8vIExhcmdlc3QgZmluaXRlIHZhbHVlLgotLSAgICAgICAgICAgIHB1YiBjb25zdCBNQVg6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6Ok1BWCk7Ci0tCi0tICAgICAgICAgICAg Ly8vIE5vdCBhIE51bWJlciAoTmFOKS4KLS0gICAgICAgICAgICBwdWIgY29uc3QgTkFOOiAkaWQg PSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5OjpOQU4pOwotLQotLSAgICAgICAgICAgIC8vLyBJ bmZpbml0eSAo4oieKS4KLS0gICAgICAgICAgICBwdWIgY29uc3QgSU5GSU5JVFk6ICRpZCA9ICRp ZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OklORklOSVRZKTsKLS0KLS0gICAgICAgICAgICAvLy8g TmVnYXRpdmUgaW5maW5pdHkgKC3iiJ4pLgotLSAgICAgICAgICAgIHB1YiBjb25zdCBORUdfSU5G SU5JVFk6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6Ok5FR19JTkZJTklUWSk7Ci0t Ci0tICAgICAgICAgICAgLy8vIEFyY2hpbWVkZXMnIGNvbnN0YW50ICjPgCkKLS0gICAgICAgICAg ICBwdWIgY29uc3QgUEk6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6 UEkpOwotLQotLSAgICAgICAgICAgIC8vLyDPgC8yCi0tICAgICAgICAgICAgcHViIGNvbnN0IEZS QUNfUElfMjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJ XzIpOwotLQotLSAgICAgICAgICAgIC8vLyDPgC8zCi0tICAgICAgICAgICAgcHViIGNvbnN0IEZS QUNfUElfMzogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJ XzMpOwotLQotLSAgICAgICAgICAgIC8vLyDPgC80Ci0tICAgICAgICAgICAgcHViIGNvbnN0IEZS QUNfUElfNDogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJ XzQpOwotLQotLSAgICAgICAgICAgIC8vLyDPgC82Ci0tICAgICAgICAgICAgcHViIGNvbnN0IEZS QUNfUElfNjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJ XzYpOwotLQotLSAgICAgICAgICAgIC8vLyDPgC84Ci0tICAgICAgICAgICAgcHViIGNvbnN0IEZS QUNfUElfODogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJ XzgpOwotLQotLSAgICAgICAgICAgIC8vLyAxL8+ACi0tICAgICAgICAgICAgcHViIGNvbnN0IEZS QUNfMV9QSTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDXzFf UEkpOwotLQotLSAgICAgICAgICAgIC8vLyAyL8+ACi0tICAgICAgICAgICAgcHViIGNvbnN0IEZS QUNfMl9QSTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDXzJf UEkpOwotLQotLSAgICAgICAgICAgIC8vLyAyL3NxcnQoz4ApCi0tICAgICAgICAgICAgcHViIGNv bnN0IEZSQUNfMl9TUVJUX1BJOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25z dHM6OkZSQUNfMl9TUVJUX1BJKTsKLS0KLS0gICAgICAgICAgICAvLy8gc3FydCgyKQotLSAgICAg ICAgICAgIHB1YiBjb25zdCBTUVJUXzI6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6 OmNvbnN0czo6U1FSVF8yKTsKLS0KLS0gICAgICAgICAgICAvLy8gMS9zcXJ0KDIpCi0tICAgICAg ICAgICAgcHViIGNvbnN0IEZSQUNfMV9TUVJUXzI6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVs ZW1fdHk6OmNvbnN0czo6RlJBQ18xX1NRUlRfMik7Ci0tCi0tICAgICAgICAgICAgLy8vIEV1bGVy J3MgbnVtYmVyIChlKQotLSAgICAgICAgICAgIHB1YiBjb25zdCBFOiAkaWQgPSAkaWQ6OnNwbGF0 KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkUpOwotLQotLSAgICAgICAgICAgIC8vLyBsb2c8c3Vi PjI8L3N1Yj4oZSkKLS0gICAgICAgICAgICBwdWIgY29uc3QgTE9HMl9FOiAkaWQgPSAkaWQ6OnNw bGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkxPRzJfRSk7Ci0tCi0tICAgICAgICAgICAgLy8v IGxvZzxzdWI+MTA8L3N1Yj4oZSkKLS0gICAgICAgICAgICBwdWIgY29uc3QgTE9HMTBfRTogJGlk ID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpMT0cxMF9FKTsKLS0KLS0gICAg ICAgICAgICAvLy8gbG4oMikKLS0gICAgICAgICAgICBwdWIgY29uc3QgTE5fMjogJGlkID0gJGlk OjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpMTl8yKTsKLS0KLS0gICAgICAgICAgICAv Ly8gbG4oMTApCi0tICAgICAgICAgICAgcHViIGNvbnN0IExOXzEwOiAkaWQgPSAkaWQ6OnNwbGF0 KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkxOXzEwKTsKLS0gICAgICAgIH0KLS0gICAgfTsKLS19 Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgv ZmxvYXQvY29zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgv ZmxvYXQvY29zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWF0aC9mbG9hdC9jb3MucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Nvcy5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDQgKzAsMCBAQAot LS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBjb3Ng LgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfY29zIHsKLS0gICAgKFskZWxlbV90 eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7 Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIENvc2luZS4KLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gY29zKHNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0Ojpjb3M6OkNv czsKLS0gICAgICAgICAgICAgICAgQ29zOjpjb3Moc2VsZikKLS0gICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgLy8vIENvc2luZSBvZiBgc2VsZiAqIFBJYC4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gY29zX3BpKHNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0Ojpjb3NfcGk6OkNvc1Bp OwotLSAgICAgICAgICAgICAgICBDb3NQaTo6Y29zX3BpKHNlbGYpCi0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6 Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfbWF0aF9jb3M+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gY29zKCkgewotLSAgICAgICAgICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6UEk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgcCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwaCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1f dHkgLyAyLik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHpfciA9ICRpZDo6c3BsYXQo KFBJIGFzICRlbGVtX3R5IC8gMi4pLmNvcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgb19yID0gJGlkOjpzcGxhdCgoUEkgYXMgJGVsZW1fdHkpLmNvcygpKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHouY29zKCkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoel9yLCBwaC5jb3MoKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvX3IsIHAuY29zKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9Owot LX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9leHAucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9leHAucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9tYXRoL2Zsb2F0L2V4cC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvZXhw LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzMyArMCwwIEBA Ci0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYGV4 cGAuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9leHAgewotLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+ IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgZXhw b25lbnRpYWwgZnVuY3Rpb24gb2YgYHNlbGZgOiBgZV4oc2VsZilgLgotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBleHAoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OmV4cDo6RXhwOwotLSAg ICAgICAgICAgICAgICBFeHA6OmV4cChzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhf ZXhwPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgIGZuIGV4cCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobywgei5leHAoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGUgPSAkaWQ6OnNwbGF0KGNyYXRlOjpmNjQ6OmNvbnN0czo6RSBhcyAkZWxlbV90eSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40ZS00IGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKChlIC0gby5leHAo KSkuYWJzKCkubGUodG9sKS5hbGwoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0 L2xuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv bG4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zs b2F0L2xuLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9sbi5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzMgKzAsMCBAQAotLS8vISBJbXBs ZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBsbmAuCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9sbiB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAg aW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRo bSBvZiBgc2VsZmAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZu IGxuKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46 Om1hdGg6OmZsb2F0Ojpsbjo6TG47Ci0tICAgICAgICAgICAgICAgIExuOjpsbihzZWxmKQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAg ICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfbG4+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gbG4oKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIG8ubG4oKSk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkaWQ6OnNwbGF0KGNyYXRlOjpmNjQ6OmNv bnN0czo6RSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9 ICRpZDo6c3BsYXQoMi40ZS00IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKChvIC0gZS5sbigpKS5hYnMoKS5sZSh0b2wpLmFsbCgpKTsKLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDQ0ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAo bGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgbXVsX2FkZGAuCi0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfbWF0aF9mbG9hdF9tdWxfYWRkIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRp ZCB7Ci0tICAgICAgICAgICAgLy8vIEZ1c2VkIG11bHRpcGx5IGFkZDogYHNlbGYgKiB5ICsgemAK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbXVsX2FkZChzZWxm LCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRl Ojpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6bXVsX2FkZDo6TXVsQWRkOwotLSAgICAgICAgICAgICAg ICBNdWxBZGQ6Om11bF9hZGQoc2VsZiwgeSwgeikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRo X211bF9hZGQ+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgZm4gbXVsX2FkZCgpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdDMgPSAkaWQ6OnNwbGF0KDMgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5 KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIHoubXVsX2FkZCh6 LCB6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLm11bF9hZGQo bywgeikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxfYWRk KHosIG8pKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHoubXVsX2Fk ZChvLCBvKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCBvLm11 bF9hZGQobywgbykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgby5t dWxfYWRkKHQsIHopKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIHQu bXVsX2FkZChvLCB6KSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShm LCB0Lm11bF9hZGQodCwgeikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ZiwgdC5tdWxfYWRkKG8sIHQpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQzLCB0Lm11bF9hZGQobywgbykpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9t dWxfYWRkZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zs b2F0L211bF9hZGRlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9tdWxfYWRkZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxv YXQvbXVsX2FkZGUucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDQ4ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGlu Zy1wb2ludCBgbXVsX2FkZGVgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfbXVs X2FkZGUgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlk ZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAg ICAvLy8gRnVzZWQgbXVsdGlwbHkgYWRkIGVzdGltYXRlOiB+PSBgc2VsZiAqIHkgKyB6YAotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBXaGlsZSBmdXNlZCBtdWx0aXBseS1hZGQg KGBmbWFgKSBoYXMgaW5maW5pdGUgcHJlY2lzaW9uLAotLSAgICAgICAgICAgIC8vLyBgbXVsX2Fk ZGVgIGhhcyBfYXQgd29yc3RfIHRoZSBzYW1lIHByZWNpc2lvbiBvZiBhIG11bHRpcGx5IGZvbGxv d2VkIGJ5IGFuIGFkZC4KLS0gICAgICAgICAgICAvLy8gVGhpcyBtaWdodCBiZSBtb3JlIGVmZmlj aWVudCBvbiBhcmNoaXRlY3R1cmVzIHRoYXQgZG8gbm90IGhhdmUgYW4gYGZtYWAgaW5zdHJ1Y3Rp b24uCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIG11bF9hZGRl KHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjptdWxfYWRkZTo6TXVsQWRkRTsKLS0gICAgICAg ICAgICAgICAgTXVsQWRkRTo6bXVsX2FkZGUoc2VsZiwgeSwgeikKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoK LS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9tYXRoX211bF9hZGRlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG11bF9hZGRlKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1f dHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0MyA9ICRpZDo6c3BsYXQoMyBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQg YXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwg ei5tdWxfYWRkZSh6LCB6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv LCBvLm11bF9hZGRlKG8sIHopKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8sIG8ubXVsX2FkZGUoeiwgbykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEobywgei5tdWxfYWRkZShvLCBvKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0LCBvLm11bF9hZGRlKG8sIG8pKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQsIG8ubXVsX2FkZGUodCwgeikpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCwgdC5tdWxfYWRkZShvLCB6KSk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmLCB0Lm11bF9hZGRlKHQsIHopKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGYsIHQubXVsX2FkZGUobywgdCkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodDMsIHQubXVsX2FkZGUobywgbykpOwotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvbWF0aC9mbG9hdC9wb3dmLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQvcG93Zi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcG93Zi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21hdGgvZmxvYXQvcG93Zi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMzYgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZs b2F0aW5nLXBvaW50IGBwb3dmYC4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3Bv d2YgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50 IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAv Ly8gUmFpc2VzIGBzZWxmYCBudW1iZXIgdG8gdGhlIGZsb2F0aW5nIHBvaW50IHBvd2VyIG9mIGB4 YC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gcG93ZihzZWxm LCB4OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2Vu OjptYXRoOjpmbG9hdDo6cG93Zjo6UG93ZjsKLS0gICAgICAgICAgICAgICAgUG93Zjo6cG93Zihz ZWxmLCB4KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYh ewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0t ICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfcG93Zj5dIHsKLS0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBm biBwb3dmKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgw IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3Bs YXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6 OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEobywgby5wb3dmKHopKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8s IHQucG93Zih6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLnBv d2YobykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgdC5wb3dmKG8p KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLCB0LnBvd2Yo dCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JlY3ByZS5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNiArMCwwIEBACi0tLy8hIEltcGxlbWVu dHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYHJlY3ByZWAuCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9yZWNwcmUgewotLSAgICAoWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAg ICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gUmVjaXByb2NhbCBlc3RpbWF0ZTogYH49 IDEuIC8gc2VsZmAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIEZJWE1FOiBU aGUgcHJlY2lzaW9uIG9mIHRoZSBlc3RpbWF0ZSBpcyBjdXJyZW50bHkgdW5zcGVjaWZpZWQuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHJlY3ByZShzZWxmKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgxLikgLyBzZWxmCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAg JHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfbWF0aF9yZWNwcmU+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcmVjcHJlKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChvIC0g by5yZWNwcmUoKSkuYWJzKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJv ci5sZSh0b2wpLmFsbCgpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRp ZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUg PSAwLjU7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKGUgLSB0LnJlY3By ZSgpKS5hYnMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRv bCkuYWxsKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Jz cXJ0ZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0MCArMCwwIEBACi0tLy8hIElt cGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYHJzcXJ0ZWAuCi0t Ci0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9yc3FydGUgewotLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsK LS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gUmVjaXByb2NhbCBzcXVhcmUt cm9vdCBlc3RpbWF0ZTogYH49IDEuIC8gc2VsZi5zcXJ0KClgLgotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyBGSVhNRTogVGhlIHByZWNpc2lvbiBvZiB0aGUgZXN0aW1hdGUgaXMg Y3VycmVudGx5IHVuc3BlY2lmaWVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIHB1YiBmbiByc3FydGUoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2Fm ZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZnNxcnQ7Ci0t ICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KDEuKSAvIFNpbWQoc2ltZF9mc3FydChzZWxm LjApKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9yc3Fy dGU+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgZm4gcnNxcnRlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6U1FSVF8yOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChvIC0gby5yc3FydGUoKSkuYWJzKCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxl bV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAxLiAvIFNRUlRfMjsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAoZSAtIHQucnNxcnRlKCkpLmFicygp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwoKSk7 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc2luLnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zaW4ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDUwICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFu ZS13aXNlKSBmbG9hdGluZy1wb2ludCBgc2luYC4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXRo X2Zsb2F0X3NpbiB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAg ICAgICAgIC8vLyBTaW5lLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiBmbiBzaW4oc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29k ZWdlbjo6bWF0aDo6ZmxvYXQ6OnNpbjo6U2luOwotLSAgICAgICAgICAgICAgICBTaW46OnNpbihz ZWxmKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gU2luZSBvZiBgc2VsZiAq IFBJYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gc2luX3Bp KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1h dGg6OmZsb2F0OjpzaW5fcGk6OlNpblBpOwotLSAgICAgICAgICAgICAgICBTaW5QaTo6c2luX3Bp KHNlbGYpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBTaW5lIGFuZCBjb3Np bmUgb2YgYHNlbGYgKiBQSWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gKFNlbGYsIFNlbGYpIHsKLS0gICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6c2luX2Nvc19waTo6U2luQ29zUGk7 Ci0tICAgICAgICAgICAgICAgIFNpbkNvc1BpOjpzaW5fY29zX3BpKHNlbGYpCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRl c3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfbWF0aF9zaW4+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2luKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6UEk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBwID0gJGlkOjpzcGxhdChQSSBhcyAkZWxlbV90eSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBoID0gJGlkOjpzcGxhdChQSSBhcyAkZWxl bV90eSAvIDIuKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb19yID0gJGlkOjpzcGxh dCgoUEkgYXMgJGVsZW1fdHkgLyAyLikuc2luKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB6X3IgPSAkaWQ6OnNwbGF0KChQSSBhcyAkZWxlbV90eSkuc2luKCkpOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwgei5zaW4oKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvX3IsIHBoLnNpbigpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHpfciwgcC5zaW4oKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07 Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t YXRoL2Zsb2F0L3NxcnQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWF0aC9mbG9hdC9zcXJ0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC9mbG9hdC9zcXJ0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9h dC9zcXJ0LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNSAr MCwwIEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9p bnQgYHNxcnRgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfc3FydCB7Ci0tICAg IChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90 dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIHB1YiBmbiBzcXJ0KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpzcXJ0OjpTcXJ0OwotLSAgICAgICAg ICAgICAgICBTcXJ0OjpzcXJ0KHNlbGYpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9zcXJ0 Pl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIHNxcnQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpTUVJUXzI7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHosIHouc3FydCgpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8sIG8uc3FydCgpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGUgPSAkaWQ6OnNwbGF0KFNRUlRfMik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShlLCB0LnNxcnQoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo L2Zsb2F0L3NxcnRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21h dGgvZmxvYXQvc3FydGUucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9tYXRoL2Zsb2F0L3NxcnRlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9h dC9zcXJ0ZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDQg KzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBv aW50IGBzcXJ0ZWAuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9zcXJ0ZSB7Ci0t ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBTcXVh cmUtcm9vdCBlc3RpbWF0ZS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gRklY TUU6IFRoZSBwcmVjaXNpb24gb2YgdGhlIGVzdGltYXRlIGlzIGN1cnJlbnRseSB1bnNwZWNpZmll ZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gc3FydGUoc2Vs ZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6 ZmxvYXQ6OnNxcnRlOjpTcXJ0ZTsKLS0gICAgICAgICAgICAgICAgU3FydGU6OnNxcnRlKHNlbGYp Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAg ICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9zcXJ0ZT5dIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBzcXJ0 ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OiRlbGVtX3R5Ojpjb25z dHM6OlNRUlRfMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlkOjpzcGxh dCgyLjRlLTQgYXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6 ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZXJyb3IgPSAoeiAtIHouc3FydGUoKSkuYWJzKCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGVycm9yID0gKG8gLSBvLnNxcnRlKCkpLmFicygpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwoKSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpzcGxhdChTUVJUXzIgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChlIC0gdC5zcXJ0ZSgpKS5h YnMoKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCku YWxsKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0LnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC5ycwkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21hdGgvZmxvYXQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDYxICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCBmbG9hdGluZy1wb2lu dCBtYXRoIG9wZXJhdGlvbnMuCi0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGFiczsKLS0KLS0jW21h Y3JvX3VzZV0KLS1tb2QgY29uc3RzOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBjb3M7Ci0tCi0t I1ttYWNyb191c2VdCi0tbW9kIGV4cDsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgcG93ZjsKLS0K LS0jW21hY3JvX3VzZV0KLS1tb2QgbG47Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIG11bF9hZGQ7 Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIG11bF9hZGRlOwotLQotLSNbbWFjcm9fdXNlXQotLW1v ZCByZWNwcmU7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHJzcXJ0ZTsKLS0KLS0jW21hY3JvX3Vz ZV0KLS1tb2Qgc2luOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBzcXJ0OwotLQotLSNbbWFjcm9f dXNlXQotLW1vZCBzcXJ0ZTsKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mbG9hdF9jYXRlZ29yeSB7 Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQsICRt YXNrX3R5OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGlzX25hbihzZWxmKSAtPiAkbWFza190eSB7Ci0t ICAgICAgICAgICAgICAgIHNlbGYubmUoc2VsZikKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGlzX2luZmluaXRlKHNlbGYpIC0+ ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgc2VsZi5lcShTZWxmOjpJTkZJTklUWSkgfCBz ZWxmLmVxKFNlbGY6Ok5FR19JTkZJTklUWSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGlzX2Zpbml0ZShzZWxmKSAtPiAkbWFz a190eSB7Ci0tICAgICAgICAgICAgICAgICEoc2VsZi5pc19uYW4oKSB8IHNlbGYuaXNfaW5maW5p dGUoKSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWF0aC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNCArMCww IEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgbWF0aCBvcGVyYXRpb25zCi0tCi0tI1ttYWNy b191c2VdCi0tbW9kIGZsb2F0OwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9taW5pbWFsL2l1Zi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9taW5pbWFsL2l1Zi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL21pbmltYWwvaXVmLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1h bC9pdWYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE2OSAr MCwwIEBACi0tLy8hIE1pbmltYWwgQVBJIG9mIHNpZ25lZCBpbnRlZ2VyLCB1bnNpZ25lZCBpbnRl Z2VyLCBhbmQgZmxvYXRpbmctcG9pbnQKLS0vLyEgdmVjdG9ycy4KLS0KLS1tYWNyb19ydWxlcyEg aW1wbF9taW5pbWFsX2l1ZiB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4 cHJdOiAkaWQ6aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQgfAotLSAgICAgJHRlc3RfdHQ6dHQgfCAk KCRlbGVtX25hbWU6aWRlbnQpLCsgfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tCi0tICAgICAg ICAkKCNbJGRvY10pKgotLSAgICAgICAgcHViIHR5cGUgJGlkID0gU2ltZDxbJGVsZW1fdHk7ICRl bGVtX2NvdW50XT47Ci0tCi0tICAgICAgICBpbXBsIHNlYWxlZDo6U2ltZCBmb3IgJGlkIHsKLS0g ICAgICAgICAgICB0eXBlIEVsZW1lbnQgPSAkZWxlbV90eTsKLS0gICAgICAgICAgICBjb25zdCBM QU5FUzogdXNpemUgPSAkZWxlbV9jb3VudDsKLS0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9 IFt1MzI7ICRlbGVtX2NvdW50XTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgJGlkIHsK LS0gICAgICAgICAgICAvLy8gQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggdmVjdG9y IGVsZW1lbnRzIGluaXRpYWxpemVkCi0tICAgICAgICAgICAgLy8vIHdpdGggdGhlIHByb3ZpZGVk IHZhbHVlcy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW2FsbG93KGNs aXBweTo6dG9vX21hbnlfYXJndW1lbnRzKV0KLS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbmV3 KCQoJGVsZW1fbmFtZTogJGVsZW1fdHkpLCopIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBT aW1kKGNvZGVnZW46OiRpZCgkKCRlbGVtX25hbWUgYXMgJGllbGVtX3R5KSwqKSkKLS0gICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB2ZWN0b3Ig bGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGNvbnN0IGZu IGxhbmVzKCkgLT4gdXNpemUgewotLSAgICAgICAgICAgICAgICAkZWxlbV9jb3VudAotLSAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSB3 aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwotLSAgICAgICAgICAgIC8vLyBgdmFsdWVg LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBzcGxh dCh2YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBTaW1kKGNvZGVn ZW46OiRpZCgkKHsKLS0gICAgICAgICAgICAgICAgICAgICNbYWxsb3cobm9uX2NhbWVsX2Nhc2Vf dHlwZXMsIGRlYWRfY29kZSldCi0tICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgJGVsZW1fbmFt ZTsKLS0gICAgICAgICAgICAgICAgICAgIHZhbHVlIGFzICRpZWxlbV90eQotLSAgICAgICAgICAg ICAgICB9KSwqKSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIEV4dHJhY3Rz IHRoZSB2YWx1ZSBhdCBgaW5kZXhgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXgg Pj0gU2VsZjo6bGFuZXMoKWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIGZuIGV4dHJhY3Qoc2VsZiwgaW5kZXg6IHVzaXplKSAtPiAkZWxlbV90eSB7Ci0tICAgICAg ICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAg IHVuc2FmZSB7IHNlbGYuZXh0cmFjdF91bmNoZWNrZWQoaW5kZXgpIH0KLS0gICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBgaW5kZXhgLgotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8v LwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2 aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBw dWIgdW5zYWZlIGZuIGV4dHJhY3RfdW5jaGVja2VkKHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gJGVs ZW1fdHkgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZXh0cmFjdDsK LS0gICAgICAgICAgICAgICAgbGV0IGU6ICRpZWxlbV90eSA9IHNpbWRfZXh0cmFjdChzZWxmLjAs IGluZGV4IGFzIHUzMik7Ci0tICAgICAgICAgICAgICAgIGUgYXMgJGVsZW1fdHkKLS0gICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJlIHRo ZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgLgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAuCi0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlIGRvZXMgbm90IG1v ZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBp dCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIFwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgZCIKLS0gICAgICAg ICAgICBdCi0tICAgICAgICAgICAgcHViIGZuIHJlcGxhY2Uoc2VsZiwgaW5kZXg6IHVzaXplLCBu ZXdfdmFsdWU6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgYXNzZXJ0IShp bmRleCA8ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgc2VsZi5yZXBs YWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9Ci0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFsdWUgYXQgYGlu ZGV4YCBpcyByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g SWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNl X3VuY2hlY2tlZCBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFs dWUgYXQgYGluZGV4YCBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBieSBg bmV3X3ZhbHVlYGQiCi0tICAgICAgICAgICAgXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4g cmVwbGFjZV91bmNoZWNrZWQoCi0tICAgICAgICAgICAgICAgIHNlbGYsCi0tICAgICAgICAgICAg ICAgIGluZGV4OiB1c2l6ZSwKLS0gICAgICAgICAgICAgICAgbmV3X3ZhbHVlOiAkZWxlbV90eSwK LS0gICAgICAgICAgICApIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxs dm06OnNpbWRfaW5zZXJ0OwotLSAgICAgICAgICAgICAgICBTaW1kKHNpbWRfaW5zZXJ0KHNlbGYu MCwgaW5kZXggYXMgdTMyLCBuZXdfdmFsdWUgYXMgJGllbGVtX3R5KSkKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAvLyBDb21w YXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KLS0gICAg ICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCi0tICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX21pbmltYWw+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIG1pbmltYWwoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZXM6Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwgJGlkOjpsYW5l cygpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGxhdCBhbmQgZXh0cmFjdCAv IGV4dHJhY3RfdW5jaGVja2VkOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZBTDog JGVsZW1fdHkgPSA3IGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IFZFQzogJGlkID0gJGlkOjpzcGxhdChWQUwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoVkFMLCBWRUMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWQUwsIHVu c2FmZSB7IFZFQy5leHRyYWN0X3VuY2hlY2tlZChpKSB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHJlcGxhY2UgLyByZXBsYWNlX3VuY2hlY2tlZAotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBuZXdfdmVjID0gVkVDLnJlcGxhY2UoMCwgNDIgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKDQyIGFzICRlbGVtX3R5LCBuZXdfdmVjLmV4dHJhY3Qo aSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUwsIG5ld192ZWMuZXh0cmFjdChpKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSB1bnNhZmUgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWRUMucmVwbGFjZV91bmNoZWNrZWQoMCwgNDIgYXMg JGVsZW1fdHkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBpID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISg0MiBhcyAkZWxlbV90eSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoVkFMLCBuZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdl bi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAg ICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0g ICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxk X3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZXh0cmFjdF9wYW5pY19vb2IoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVkFMOiAkZWxlbV90eSA9IDcgYXMgJGVsZW1f dHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVkVDOiAkaWQgPSAkaWQ6OnNwbGF0 KFZBTCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF8gPSBWRUMuZXh0cmFjdCgkaWQ6 OmxhbmVzKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg Ly8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFu aWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAg ICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcmVw bGFjZV9wYW5pY19vb2IoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVkFMOiAk ZWxlbV90eSA9IDcgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg VkVDOiAkaWQgPSAkaWQ6OnNwbGF0KFZBTCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IF8gPSBWRUMucmVwbGFjZSgkaWQ6OmxhbmVzKCksIDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvbWluaW1hbC9tYXNrLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21pbmltYWwvbWFzay5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL21pbmltYWwvbWFzay5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmlt YWwvbWFzay5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTc2 ICswLDAgQEAKLS0vLyEgTWluaW1hbCBBUEkgb2YgbWFzayB2ZWN0b3JzLgotLQotLW1hY3JvX3J1 bGVzISBpbXBsX21pbmltYWxfbWFzayB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2Nv dW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQKLS0gICAgfCAkdGVzdF90dDp0 dCB8ICQoJGVsZW1fbmFtZTppZGVudCksKyB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKLS0gICAg ICAgICQoI1skZG9jXSkqCi0tICAgICAgICBwdWIgdHlwZSAkaWQgPSBTaW1kPFskZWxlbV90eTsg JGVsZW1fY291bnRdPjsKLS0KLS0gICAgICAgIGltcGwgc2VhbGVkOjpTaW1kIGZvciAkaWQgewot LSAgICAgICAgICAgIHR5cGUgRWxlbWVudCA9ICRlbGVtX3R5OwotLSAgICAgICAgICAgIGNvbnN0 IExBTkVTOiB1c2l6ZSA9ICRlbGVtX2NvdW50OwotLSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBl ID0gW3UzMjsgJGVsZW1fY291bnRdOwotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCAkaWQg ewotLSAgICAgICAgICAgIC8vLyBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCB2ZWN0 b3IgZWxlbWVudHMgaW5pdGlhbGl6ZWQKLS0gICAgICAgICAgICAvLy8gd2l0aCB0aGUgcHJvdmlk ZWQgdmFsdWVzLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbYWxsb3co Y2xpcHB5Ojp0b29fbWFueV9hcmd1bWVudHMpXQotLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBu ZXcoJCgkZWxlbV9uYW1lOiBib29sKSwqKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2lt ZChjb2RlZ2VuOjokaWQoJChTZWxmOjpib29sX3RvX2ludGVybmFsKCRlbGVtX25hbWUpKSwqKSkK LS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENvbnZlcnRzIGEgYm9vbGVhbiB0 eXBlIGludG8gdGhlIHR5cGUgb2YgdGhlIHZlY3RvciBsYW5lcy4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6aW5kZXhpbmdfc2xpY2luZyldCi0t ICAgICAgICAgICAgY29uc3QgZm4gYm9vbF90b19pbnRlcm5hbCh4OiBib29sKSAtPiAkaWVsZW1f dHkgewotLSAgICAgICAgICAgICAgICBbMCBhcyAkaWVsZW1fdHksICEoMCBhcyAkaWVsZW1fdHkp XVt4IGFzIHVzaXplXQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJu cyB0aGUgbnVtYmVyIG9mIHZlY3RvciBsYW5lcy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBwdWIgY29uc3QgZm4gbGFuZXMoKSAtPiB1c2l6ZSB7Ci0tICAgICAgICAgICAg ICAgICRlbGVtX2NvdW50Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDb25z dHJ1Y3RzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCBlbGVtZW50IGluaXRpYWxpemVkIHRvCi0t ICAgICAgICAgICAgLy8vIGB2YWx1ZWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGNvbnN0IGZuIHNwbGF0KHZhbHVlOiBib29sKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCh7Ci0tICAgICAgICAgICAgICAgICAgICAjW2Fs bG93KG5vbl9jYW1lbF9jYXNlX3R5cGVzLCBkZWFkX2NvZGUpXQotLSAgICAgICAgICAgICAgICAg ICAgc3RydWN0ICRlbGVtX25hbWU7Ci0tICAgICAgICAgICAgICAgICAgICBTZWxmOjpib29sX3Rv X2ludGVybmFsKHZhbHVlKQotLSAgICAgICAgICAgICAgICB9KSwqKSkKLS0gICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBgaW5kZXhgLgotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAgIC8v LwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAuCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGV4dHJhY3Qoc2VsZiwgaW5kZXg6 IHVzaXplKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVt X2NvdW50KTsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgc2VsZi5leHRyYWN0X3VuY2hlY2tl ZChpbmRleCkgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gRXh0cmFjdHMg dGhlIHZhbHVlIGF0IGBpbmRleGAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8v ICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+ PSBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gZXh0cmFjdF91bmNoZWNrZWQo c2VsZiwgaW5kZXg6IHVzaXplKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpsbHZtOjpzaW1kX2V4dHJhY3Q7Ci0tICAgICAgICAgICAgICAgIGxldCB4OiAkaWVsZW1fdHkg PSBzaW1kX2V4dHJhY3Qoc2VsZi4wLCBpbmRleCBhcyB1MzIpOwotLSAgICAgICAgICAgICAgICB4 ICE9IDAKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcg dmVjdG9yIHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5Ci0tICAgICAg ICAgICAgLy8vIGBuZXdfdmFsdWVgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXgg Pj0gU2VsZjo6bGFuZXMoKWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg I1ttdXN0X3VzZSA9ICJyZXBsYWNlIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUg LSBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3 aXRoIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHJl cGxhY2VkIGJ5IGBuZXdfdmFsdWVgZCIKLS0gICAgICAgICAgICBdCi0tICAgICAgICAgICAgcHVi IGZuIHJlcGxhY2Uoc2VsZiwgaW5kZXg6IHVzaXplLCBuZXdfdmFsdWU6IGJvb2wpIC0+IFNlbGYg ewotLSAgICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOwotLSAgICAg ICAgICAgICAgICB1bnNhZmUgeyBzZWxmLnJlcGxhY2VfdW5jaGVja2VkKGluZGV4LCBuZXdfdmFs dWUpIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcg dmVjdG9yIHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5Ci0tICAgICAg ICAgICAgLy8vIGBuZXdfdmFsdWVgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXgg Pj0gU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW211c3RfdXNlID0gInJlcGxhY2VfdW5jaGVja2Vk IGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBgaW5k ZXhgIFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVg ZCIKLS0gICAgICAgICAgICBdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiByZXBsYWNlX3Vu Y2hlY2tlZCgKLS0gICAgICAgICAgICAgICAgc2VsZiwKLS0gICAgICAgICAgICAgICAgaW5kZXg6 IHVzaXplLAotLSAgICAgICAgICAgICAgICBuZXdfdmFsdWU6IGJvb2wsCi0tICAgICAgICAgICAg KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2luc2Vy dDsKLS0gICAgICAgICAgICAgICAgU2ltZChzaW1kX2luc2VydChzZWxmLjAsIGluZGV4IGFzIHUz MiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxmOjpib29sX3RvX2ludGVy bmFsKG5ld192YWx1ZSkpKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21pbmltYWw+XSB7Ci0tICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG1pbmltYWwoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gVE9ETzogdGVzdCBuZXcKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBsYW5lczoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRlbGVtX2Nv dW50LCAkaWQ6OmxhbmVzKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwbGF0 IGFuZCBleHRyYWN0IC8gZXh0cmFjdF91bmNoZWNrZWQ6Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh0cnVlLCB2ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodHJ1ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNhZmUgeyB2ZWMuZXh0cmFjdF91bmNoZWNrZWQoaSkgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIC8gcmVwbGFjZV91bmNoZWNrZWQKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IHZlYy5yZXBsYWNlKDAsIGZhbHNlKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmYWxzZSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodHJ1ZSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZlYy5yZXBsYWNlX3VuY2hlY2tlZCgwLCBmYWxzZSkKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0g MCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZhbHNlLCBu ZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0cnVlLCBuZXdf dmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQg I1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0t ICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3Vs ZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIGV4dHJhY3RfcGFuaWNfb29iKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IHZlYy5leHRyYWN0KCRpZDo6bGFuZXMoKSk7 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog d2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAg ICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tj Zmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNb dGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAg ICAgICAgICAgZm4gcmVwbGFjZV9wYW5pY19vb2IoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBfID0gdmVjLnJlcGxhY2UoJGlkOjpsYW5lcygpLCB0cnVlKTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWluaW1hbC9wdHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWluaW1hbC9wdHIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9taW5pbWFsL3B0ci5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvcHRyLnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMzczICswLDAgQEAK LS0vLyEgTWluaW1hbCBBUEkgb2YgcG9pbnRlciB2ZWN0b3JzLgotLQotLW1hY3JvX3J1bGVzISBp bXBsX21pbmltYWxfcCB7Ci0tICAgIChbJGVsZW1fdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50LAotLSAgICAgJHVzaXplX3R5OmlkZW50LCAkaXNpemVf dHk6aWRlbnQgfCAkcmVmOmlkZW50IHwgJHRlc3RfdHQ6dHQKLS0gICAgIHwgJCgkZWxlbV9uYW1l OmlkZW50KSwrIHwgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKSB8Ci0tICAgICAkKCNbJGRvYzpt ZXRhXSkqKSA9PiB7Ci0tCi0tICAgICAgICAkKCNbJGRvY10pKgotLSAgICAgICAgcHViIHR5cGUg JGlkPFQ+ID0gU2ltZDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT47Ci0tCi0tICAgICAgICBpbXBs PFQ+IHNlYWxlZDo6U2ltZCBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICB0eXBlIEVsZW1lbnQg PSAkZWxlbV90eTsKLS0gICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUgPSAkZWxlbV9jb3Vu dDsKLS0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50XTsKLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAvLy8g Q3JlYXRlcyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggdmVjdG9yIGVsZW1lbnRzIGluaXRpYWxp emVkCi0tICAgICAgICAgICAgLy8vIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlcy4KLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dG9vX21hbnlfYXJn dW1lbnRzKV0KLS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbmV3KCQoJGVsZW1fbmFtZTogJGVs ZW1fdHkpLCopIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBTaW1kKGNvZGVnZW46OiRpZCgk KCRlbGVtX25hbWUpLCopKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0 dXJucyB0aGUgbnVtYmVyIG9mIHZlY3RvciBsYW5lcy4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbGFuZXMoKSAtPiB1c2l6ZSB7Ci0tICAgICAgICAg ICAgICAgICRlbGVtX2NvdW50Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBD b25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCBlbGVtZW50IGluaXRpYWxpemVkIHRv Ci0tICAgICAgICAgICAgLy8vIGB2YWx1ZWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgcHViIGNvbnN0IGZuIHNwbGF0KHZhbHVlOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlkKCQoewotLSAgICAgICAgICAgICAgICAg ICAgI1thbGxvdyhub25fY2FtZWxfY2FzZV90eXBlcywgZGVhZF9jb2RlKV0KLS0gICAgICAgICAg ICAgICAgICAgIHN0cnVjdCAkZWxlbV9uYW1lOwotLSAgICAgICAgICAgICAgICAgICAgdmFsdWUK LS0gICAgICAgICAgICAgICAgfSksKikpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg IC8vLyBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCBlbGVtZW50IGluaXRpYWxp emVkIHRvCi0tICAgICAgICAgICAgLy8vIGBudWxsYC4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbnVsbCgpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICBTZWxmOjpzcGxhdChjcmF0ZTo6cHRyOjpudWxsX211dCgpIGFzICRlbGVtX3R5KQotLSAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG1hc2sgdGhhdCBzZWxl Y3RzIHRob3NlIGxhbmVzIHRoYXQgY29udGFpbiBgbnVsbGAKLS0gICAgICAgICAgICAvLy8gcG9p bnRlcnMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGlzX251 bGwoc2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICBzZWxmLmVxKFNlbGY6Om51 bGwoKSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2 YWx1ZSBhdCBgaW5kZXhgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBh bmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2Vs Zjo6bGFuZXMoKWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZu IGV4dHJhY3Qoc2VsZiwgaW5kZXg6IHVzaXplKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAg ICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IHNlbGYuZXh0cmFjdF91bmNoZWNrZWQoaW5kZXgpIH0KLS0gICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBgaW5kZXhgLgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlz IHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5z YWZlIGZuIGV4dHJhY3RfdW5jaGVja2VkKHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gJGVsZW1fdHkg ewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZXh0cmFjdDsKLS0gICAg ICAgICAgICAgICAgc2ltZF9leHRyYWN0KHNlbGYuMCwgaW5kZXggYXMgdTMyKQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Igd2hlcmUgdGhl IHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkKLS0gICAgICAgICAgICAvLy8gYG5ld192 YWx1ZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygp YC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW211c3RfdXNlID0gInJl cGxhY2UgZG9lcyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0 IGBpbmRleGAgXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192 YWx1ZWBkIgotLSAgICAgICAgICAgIF0KLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6bm90 X3Vuc2FmZV9wdHJfYXJnX2RlcmVmKV0KLS0gICAgICAgICAgICBwdWIgZm4gcmVwbGFjZShzZWxm LCBpbmRleDogdXNpemUsIG5ld192YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAg ICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICB1 bnNhZmUgeyBzZWxmLnJlcGxhY2VfdW5jaGVja2VkKGluZGV4LCBuZXdfdmFsdWUpIH0KLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJl IHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9y IGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW211 c3RfdXNlID0gInJlcGxhY2VfdW5jaGVja2VkIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwg dmFsdWUgLSBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZl Y3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIFwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgZCIKLS0gICAgICAgICAgICBdCi0tICAgICAgICAg ICAgcHViIHVuc2FmZSBmbiByZXBsYWNlX3VuY2hlY2tlZCgKLS0gICAgICAgICAgICAgICAgc2Vs ZiwKLS0gICAgICAgICAgICAgICAgaW5kZXg6IHVzaXplLAotLSAgICAgICAgICAgICAgICBuZXdf dmFsdWU6ICRlbGVtX3R5LAotLSAgICAgICAgICAgICkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9pbnNlcnQ7Ci0tICAgICAgICAgICAgICAgIFNpbWQo c2ltZF9pbnNlcnQoc2VsZi4wLCBpbmRleCBhcyB1MzIsIG5ld192YWx1ZSkpCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAg JHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfbWluaW1hbD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gbWluaW1hbCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBsYW5lczoKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRlbGVtX2NvdW50LCAkaWQ6OjxpMzI+ OjpsYW5lcygpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGxhdCBhbmQgZXh0 cmFjdCAvIGV4dHJhY3RfdW5jaGVja2VkOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBW QUw3OiA8JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9ICRyZWYhKDcpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBW QUw0MjogPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAkcmVmISg0Mik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IFZFQzogJGlkPGkzMj4gPSAkaWQ6OnNwbGF0KFZBTDcpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDcsIFZFQy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZBTDcsIHVuc2FmZSB7IFZFQy5leHRyYWN0X3VuY2hlY2tlZChpKSB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgLyByZXBsYWNlX3VuY2hlY2tlZAot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfdmVjID0gVkVDLnJlcGxhY2UoMCwgVkFM NDIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46Omxh bmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUw0MiwgbmV3X3ZlYy5leHRy YWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMNywgbmV3X3ZlYy5leHRyYWN0 KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IHVuc2FmZSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFQy5yZXBsYWNlX3VuY2hlY2tlZCgwLCBW QUw0MikKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBpID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShWQUw0MiwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoVkFMNywgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IG4gPSAkaWQ6OjxpMzI+OjpudWxsKCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbiwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6c3BsYXQodW5zYWZlIHsg Y3JhdGU6Om1lbTo6emVyb2VkKCkgfSkKLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEobi5pc19udWxsKCkuYWxsKCkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIG4gPSBuLnJlcGxhY2UoCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDAsIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgxX2lzaXplKSB9Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KCFuLmlzX251bGwoKS5hbGwoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjo8 aTMyPjo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KG4uaXNfbnVsbCgpLmFueSgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFuLmlzX251bGwoKS5hbnkoKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90 IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAg ICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIGV4dHJhY3RfcGFuaWNf b29iKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWQUw6IDwkaWQ8aTMyPiBhcyBz ZWFsZWQ6OlNpbWQ+OjpFbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJHJl ZiEoNyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZFQzogJGlkPGkzMj4gPSAkaWQ6 OnNwbGF0KFZBTCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF8gPSBWRUMuZXh0cmFj dCgkaWQ6OjxpMzI+OjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBw b3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Ly8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikp XQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tz aG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiByZXBsYWNlX3BhbmljX29vYigp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMOiA8JGlkPGkzMj4gYXMgc2VhbGVk OjpTaW1kPjo6RWxlbWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRyZWYhKDcp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWQUw0MjogPCRpZDxpMzI+IGFzIHNlYWxl ZDo6U2ltZD46OkVsZW1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkcmVmISg0 Mik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZFQzogJGlkPGkzMj4gPSAkaWQ6OnNw bGF0KFZBTCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF8gPSBWRUMucmVwbGFjZSgk aWQ6OjxpMzI+OjpsYW5lcygpLCBWQUw0Mik7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBp bXBsPFQ+IGNyYXRlOjpmbXQ6OkRlYnVnIGZvciAkaWQ8VD4gewotLSAgICAgICAgICAgICNbYWxs b3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQotLSAgICAgICAgICAg IGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KQotLSAgICAg ICAgICAgICAgICAgICAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewotLSAgICAgICAgICAgICAgICB3 cml0ZSEoCi0tICAgICAgICAgICAgICAgICAgICBmLAotLSAgICAgICAgICAgICAgICAgICAgInt9 PHt9PigiLAotLSAgICAgICAgICAgICAgICAgICAgc3RyaW5naWZ5ISgkaWQpLAotLSAgICAgICAg ICAgICAgICAgICAgY3JhdGU6OmludHJpbnNpY3M6OnR5cGVfbmFtZTo6PFQ+KCkKLS0gICAgICAg ICAgICAgICAgKT87Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsK LS0gICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB3cml0ZSEoZiwgIiwgIik/OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAg ICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10 X2RlYnVnPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBkZWJ1ZygpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJh eVZlY307Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlT dHJpbmc8W3U4OyA1MTJdPjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmZtdDo6V3JpdGU7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OjxpMzI+ OjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0 cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6 P30iLCB2KS51bndyYXAoKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJl ZyA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgm bXV0IGJlZywgInt9PGkzMj4oIiwgc3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz LnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJzID0ge30gKHNob3VsZCBzdGFydCB3aXRoID0ge30pIiwgcywgYmVnCi0tICAgICAgICAgICAg ICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193 aXRoKCIpIikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlu eVN0cmluZzsgNjRdPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShi ZWcuYXNfc3RyKCksICIiKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgi KSIsICIiKS5zcGxpdCgiLCIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8 IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAuY29sbGVjdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEocy5sZW4oKSwgJGlkOjo8aTMyPjo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6P30iLCB2LmV4dHJh Y3QoaW5kZXgpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShzcywgZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgIH0K LS0KLS0gICAgICAgIGltcGw8VD4gRGVmYXVsdCBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiBwdHJzIGRvIG5vdCBpbXBsZW1lbnQgZGVmYXVsdAotLSAgICAgICAg ICAgICAgICBTZWxmOjpudWxsKCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9kZWZhdWx0Pl0gewot LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBkZWZhdWx0KCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6ZGVmYXVsdCgpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYS5leHRyYWN0KGkpLCB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp6ZXJvZWQoKSB9 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4gewotLSAgICAg ICAgICAgIC8vLyBMYW5lLXdpc2UgZXF1YWxpdHkgY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZXEoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRt YXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9lcTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAk dXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAg ICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKLS0g ICAgICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9lcShhLjAsIGIuMCkpCi0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBpbmVx dWFsaXR5IGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIGZuIG5lKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAg ICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRf bmU7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9 IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1k KHNpbWRfbmUoYS4wLCBiLjApKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgbGVzcy10aGFuIGNvbXBhcmlzb24uCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGx0KHNlbGYsIG90aGVyOiBT ZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfbHQ7Ci0tICAgICAgICAgICAgICAgICAg ICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAg ICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShv dGhlcik7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1kKHNpbWRfbHQoYS4wLCBiLjApKQotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBMYW5l LXdpc2UgbGVzcy10aGFuLW9yLWVxdWFscyBjb21wYXJpc29uLgotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tf dHkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpsbHZtOjpzaW1kX2xlOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6 ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAg IGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOwotLSAgICAg ICAgICAgICAgICAgICAgU2ltZChzaW1kX2xlKGEuMCwgYi4wKSkKLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGdyZWF0ZXIt dGhhbiBjb21wYXJpc29uLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiBmbiBndChzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2d0 OwotLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRy YW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBj cmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOwotLSAgICAgICAgICAgICAgICAgICAgU2ltZChz aW1kX2d0KGEuMCwgYi4wKSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGdyZWF0ZXItdGhhbi1vci1lcXVhbHMgY29tcGFy aXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZ2Uoc2Vs Ziwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9nZTsKLS0gICAgICAg ICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs Zik7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKG90aGVyKTsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9nZShhLjAs IGIuMCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAg ICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfdmVy dGljYWw+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGNtcCgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46Om51bGwoKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6PGkzMj46OnNwbGF0KHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgxX2lzaXpl KQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCByID0gYS5sdChiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9ICRt YXNrX3R5OjpzcGxhdCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIg PT0gZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmxlKGIpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgZSA9ICRtYXNrX3R5OjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHIgPSBhLmd0KGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEociA9PSBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEuZ2UoYik7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCByID0gYS5lcShiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKHIgPT0gZSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gYTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSBiOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgZSA9IGU7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEu cmVwbGFjZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5z bXV0ZSgwX2lzaXplKSB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgxX2lzaXplKSB9Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZSA9IGUucmVwbGFjZShpLCB0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJl cGxhY2UoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoMV9pc2l6ZSkgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMF9pc2l6ZSkgfQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGUgPSBlLnJlcGxhY2UoaSwgZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCByID0gYS5sdChiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIg PT0gZSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICAjW2FsbG93KGNsaXBweTo6cGFydGlh bGVxX25lX2ltcGwpXQotLSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6Y21wOjpQYXJ0aWFsRXE8JGlk PFQ+PiBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBm biBlcSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgJGlk Ojo8VD46OmVxKCpzZWxmLCAqb3RoZXIpLmFsbCgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICAkaWQ6OjxUPjo6bmUoKnNlbGYsICpvdGhlcikuYW55 KCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICAvLyBGSVhNRTogaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3J1c3QtY2xpcHB5L2lzc3Vlcy8yODky Ci0tICAgICAgICAjW2FsbG93KGNsaXBweTo6cGFydGlhbGVxX25lX2ltcGwpXQotLSAgICAgICAg aW1wbDxUPiBjcmF0ZTo6Y21wOjpQYXJ0aWFsRXE8TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRp ZDxUPj4+Ci0tICAgICAgICAgICAgZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ8VD4+ Ci0tICAgICAgICB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZXEo JnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHNlbGYuMCA9 PSBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAg ICAgICBzZWxmLjAgIT0gb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBh c3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9QYXJ0aWFs RXE+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRpYWxfZXEoKSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OjxpMzI+OjpzcGxhdCh1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9p c2l6ZSkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKGEgIT0gYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 ISghKGEgPT0gYikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSA9PSBhKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSAhPSBhKSk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgaWYgJGlkOjo8aTMyPjo6bGFuZXMoKSA+IDEgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46Om51bGwoKS5yZXBsYWNlKDAs IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoMV9pc2l6ZSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjo8aTMyPjo6c3BsYXQodW5zYWZl IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0 ZSgxX2lzaXplKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhICE9IGIpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKCEoYSA9PSBiKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoYSA9PSBhKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 ISghKGEgIT0gYSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6RXEgZm9yICRpZDxUPiB7fQotLSAgICAg ICAgaW1wbDxUPiBjcmF0ZTo6Y21wOjpFcSBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRp ZDxUPj4ge30KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX2NtcF9lcT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZXEoKSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm4gZm9vPEU6IGNyYXRlOjpjbXA6OkVxPihfOiBF KSB7fQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6bnVsbCgp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvbyhhKTsKLS0gICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIGltcGw8VD4gRnJvbTxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT4gZm9yICRpZDxUPiB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZnJvbShhcnJheTogWyRl bGVtX3R5OyAkZWxlbV9jb3VudF0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHVubmVjZXNzYXJ5IHplcm9pbmc7IGJl dHRlciB0aGFuIFVCLgotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1OiBTZWxmID0gY3Jh dGU6Om1lbTo6emVyb2VkKCk7Ci0tICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5 X25vbm92ZXJsYXBwaW5nKAotLSAgICAgICAgICAgICAgICAgICAgICAgICZhcnJheSBhcyAqY29u c3QgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gYXMgKmNvbnN0IHU4LAotLSAgICAgICAgICAgICAg ICAgICAgICAgICZtdXQgdSBhcyAqbXV0IFNlbGYgYXMgKm11dCB1OCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKQotLSAgICAgICAgICAgICAg ICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgIHUKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGw8VD4gSW50bzxbJGVsZW1fdHk7 ICRlbGVtX2NvdW50XT4gZm9yICRpZDxUPiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gaW50byhzZWxmKSAtPiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7Ci0tICAg ICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogdW5u ZWNlc3NhcnkgemVyb2luZzsgYmV0dGVyIHRoYW4gVUIuCi0tICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHU6IFskZWxlbV90eTsgJGVsZW1fY291bnRdID0gY3JhdGU6Om1lbTo6emVyb2VkKCk7 Ci0tICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKAot LSAgICAgICAgICAgICAgICAgICAgICAgICZzZWxmIGFzICpjb25zdCAkaWQ8VD4gYXMgKmNvbnN0 IHU4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgdSBhcyAqbXV0IFskZWxlbV90eTsg JGVsZW1fY291bnRdIGFzICptdXQgdTgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6 Om1lbTo6c2l6ZV9vZjo6PFNlbGY+KCkKLS0gICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAg ICAgICAgICAgICAgICB1Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9mcm9tPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBhcnJheSgpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWVzID0gWzFfaTMyOyAkZWxlbV9jb3Vu dF07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ZWM6ICRpZDxpMzI+ID0g RGVmYXVsdDo6ZGVmYXVsdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYXJy YXkgPSBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46Om51bGwoKS5l eHRyYWN0KDApOyAkZWxlbV9jb3VudAotLSAgICAgICAgICAgICAgICAgICAgICAgIF07Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gJnZhbHVlc1tpXSBhcyAqY29uc3QgaTMy IGFzICptdXQgaTMyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMgPSB2ZWMucmVw bGFjZShpLCBwdHIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHB0 cjsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgLy8gRklYTUU6IHRoZXJlIGlzIG5vIGltcGwgb2YgRnJvbTwkaWQ8VD4+IGZvciBbJGVsZW1f dHk7IE5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGV0IGEwID0gRnJvbTo6ZnJvbSh2 ZWMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydF9lcSEoYTAsIGFycmF5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVudXNlZF9hc3NpZ25tZW50cyldCi0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhMSA9IGFycmF5OwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGExID0gdmVjLmludG8oKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGExLCBhcnJheSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYw OiAkaWQ8aTMyPiA9IEZyb206OmZyb20oYXJyYXkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodjAsIHZlYyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYxOiAk aWQ8aTMyPiA9IGFycmF5LmludG8oKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYxLCB2ZWMpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4g ewotLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZh bHVlcyBvZiB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g IyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxl bigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90IGFsaWduZWQKLS0gICAg ICAgICAgICAvLy8gdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRhcnkuCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGZyb21fc2xpY2VfYWxpZ25lZChz bGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewot LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7 Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX3B0cigpOwot LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IDAKLS0gICAgICAgICAgICAgICAgICAgICk7 Ci0tICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNlX2FsaWduZWRfdW5jaGVja2Vk KHNsaWNlKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0aGUg YHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6 bGFuZXMoKWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGZy b21fc2xpY2VfdW5hbGlnbmVkKHNsaWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxl bigpID49ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgICAgIFNlbGY6OmZyb21fc2xp Y2VfdW5hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3 aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAg ICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElm IGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5vdCBhbGln bmVkCi0tICAgICAgICAgICAgLy8vIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5 LCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiB1bnNhZmUgZm4gZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGlj ZTogJlskZWxlbV90eV0pCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBw eTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KLS0gICAgICAgICAgICAgICAgKihzbGljZS5hc19wdHIo KS5jYXN0KCkpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0 ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2 aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBw dWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tlZCgKLS0gICAgICAgICAg ICAgICAgc2xpY2U6ICZbJGVsZW1fdHldLAotLSAgICAgICAgICAgICkgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjpzaXplX29mOwotLSAgICAgICAgICAgICAgICBs ZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX3B0cigpLmNhc3QoKTsKLS0gICAgICAgICAgICAgICAg bGV0IG11dCB4ID0gU2VsZjo6c3BsYXQoY3JhdGU6OnB0cjo6bnVsbF9tdXQoKSBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgIGxldCBzZWxmX3B0ciA9ICZtdXQgeCBhcyAqbXV0IFNlbGYg YXMgKm11dCB1ODsKLS0gICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFw cGluZygKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9wdHIsCi0tICAgICAgICAgICAgICAg ICAgICBzZWxmX3B0ciwKLS0gICAgICAgICAgICAgICAgICAgIHNpemVfb2Y6OjxTZWxmPigpLAot LSAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6 Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfc2xpY2VfZnJvbV9zbGljZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aXRlcjo6SXRlcmF0b3I7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IGZyb21fc2xpY2VfdW5hbGlnbmVkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAo bnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbm9uX251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkgKyAxCi0tICAgICAgICAgICAgICAg ICAgICAgICAgXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bmFsaWduZWRbMF0gPSBudWxs OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+Ojpmcm9tX3Ns aWNlX3VuYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVuYWxpZ25lZFsx Li5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBmb3IgKGluZGV4LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4ID09IDAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBudWxsKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoYiwgbm9uX251bGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRleCAtIDEpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4t dGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAg ICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAg ICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiBm cm9tX3NsaWNlX3VuYWxpZ25lZF9mYWlsKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCAoX251bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHVuYWxpZ25lZCA9IFtub25fbnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMo KSArIDFdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGljZSBpcyBub3QgbGFy Z2UgZW5vdWdoID0+IHBhbmljCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMgPSAk aWQ6OjxpMzI+Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnVuYWxpZ25lZFsyLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIEEgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFs8JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6 RWxlbWVudDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqICRpZDo6PGkzMj46 OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgIF92ZWM6ICRpZDxpMzI+LAotLSAg ICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWQoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4p OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6PGkzMj46OmxhbmVz KCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6bGFu ZXMoKS4uKDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbmVk LmRhdGFbaV0gPSBub25fbnVsbDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg dmVjID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6 ZnJvbV9zbGljZV9hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFs aWduZWQuZGF0YVskaWQ6OjxpMzI+OjpsYW5lcygpLi5dCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciAoaW5kZXgsICZiKSBpbiB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhbGlnbmVkLmRhdGEuaXRlcigpLmVudW1lcmF0ZSgpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgfSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4IDwgJGlk Ojo8aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGIsIG51bGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBub25fbnVsbCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIsIHZlYy5leHRyYWN0KGluZGV4IC0gJGlkOjo8 aTMyPjo6bGFuZXMoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog d2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAg ICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tj Zmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNb dGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAg ICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkX2ZhaWxfbGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IChfbnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+ KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbm9uX251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5l cygpXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRoZSBzbGljZSBpcyBub3QgbGFyZ2UgZW5vdWdoID0+IHBhbmljCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IF92ZWMgPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkaWQ6OjxpMzI+Ojpmcm9tX3NsaWNlX2FsaWduZWQoCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmYWxpZ25lZC5kYXRhWzIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpLi5d Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAgICAgICAgICAg ICB9OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8g RklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNd Ci0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAg ICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAg ICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZF9mYWlsX2FsaWduKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCAobnVsbCwgX25vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBvZiBkYXRhCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSBhbGlnbmVkLmRhdGEuYXNfcHRyKCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBwb2ludGVyIGJ5IG9uZSBlbGVtZW50 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSBwdHIud3JhcHBpbmdfYWRk KDEpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwdHIuYWxpZ25fb2Zmc2V0 KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6YWxpZ25fb2Y6 OjwkaWQ8aTMyPj4oKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApID09IDAgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHBvaW50ZXIgaXMgcHJvcGVybHkg YWxpZ25lZCwgc28KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyb21fc2xp Y2VfYWxpZ25lZCB3b24ndCBmYWlsIGhlcmUgKGUuZy4gdGhpcwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gY2FuIGhhcHBlbiBmb3IgaTEyOHgxKS4gU28gd2UgcGFuaWMgdG8g bWFrZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlICJzaG91bGRfZmFp bCIgdGVzdCBwYXNzOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuaWMhKCJv ayIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHNsaWNlIC0gdGhpcyBpcyBzYWZlLCBiZWNhdXNlIHRo ZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cyBvZiB0aGUgc2xpY2Ug ZXhpc3QsIGFyZSBwcm9wZXJseQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbml0 aWFsaXplZCwgYW5kIHByb3Blcmx5IGFsaWduZWQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBzID0gc2xpY2U6OmZyb21fcmF3X3BhcnRzKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHRyLCAkaWQ6OjxpMzI+OjpsYW5lcygpCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxk IGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRoZSBzbGljZQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBhbGlnbm1lbnQgZG9lcyBub3QgbWF0Y2ggdGhlIGFsaWdubWVudAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVudHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMgPSAkaWQ6OjxpMzI+Ojpmcm9t X3NsaWNlX2FsaWduZWQocyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4gewotLSAgICAgICAgICAgIC8vLyBXcml0 ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBd YCBpcyBub3QKLS0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBgYWxpZ25fb2Y6OjxTZWxm PigpYCBib3VuZGFyeS4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIg Zm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0 YXJnZXRfcHRyID0gc2xpY2UuYXNfbXV0X3B0cigpOwotLSAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcHRyLmFsaWduX29mZnNldChj cmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgID09IDAKLS0gICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICBz ZWxmLndyaXRlX3RvX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKHNsaWNlKTsKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2 YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAuCi0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZChzZWxmLCBz bGljZTogJm11dCBbJGVsZW1fdHldKSB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKLS0g ICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tl ZChzbGljZSk7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAu Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClg IG9yIGAmc2xpY2VbMF1gIGlzIG5vdAotLSAgICAgICAgICAgIC8vLyBhbGlnbmVkIHRvIGFuIGBh bGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LCB0aGUgYmVoYXZpb3IgaXMKLS0gICAgICAgICAg ICAvLy8gdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiB1bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoCi0tICAgICAgICAg ICAgICAgIHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0sCi0tICAgICAgICAgICAgKSB7Ci0t ICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQotLSAg ICAgICAgICAgICAgICAqKHNsaWNlLmFzX211dF9wdHIoKS5jYXN0KCkpID0gc2VsZjsKLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2 ZWN0b3IgdG8gdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8v ICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBzbGljZS5s ZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZV90b19zbGlj ZV91bmFsaWduZWRfdW5jaGVja2VkKAotLSAgICAgICAgICAgICAgICBzZWxmLCBzbGljZTogJm11 dCBbJGVsZW1fdHldLAotLSAgICAgICAgICAgICkgewotLSAgICAgICAgICAgICAgICBsZXQgdGFy Z2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKS5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgIGxl dCBzZWxmX3B0ciA9ICZzZWxmIGFzICpjb25zdCBTZWxmIGFzICpjb25zdCB1ODsKLS0gICAgICAg ICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygKLS0gICAgICAgICAgICAg ICAgICAgIHNlbGZfcHRyLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3B0ciwKLS0gICAg ICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjxTZWxmPigpLAotLSAgICAgICAg ICAgICAgICApOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3Rf aWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7 Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NsaWNlX3dyaXRlX3RvX3NsaWNlPl0g ewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjppdGVyOjpJdGVyYXRvcjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVk KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRy X3ZhbHMhKCRpZDxpMzI+KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxp Z25lZCA9IFtudWxsOyAkaWQ6OjxpMzI+OjpsYW5lcygpICsgMV07Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNwbGF0KG5vbl9udWxsKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgdW5hbGln bmVkWzEuLl0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsICZiKSBpbiB1 bmFsaWduZWQuaXRlcigpLmVudW1lcmF0ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaW5kZXggPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGIsIG51bGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBub25fbnVsbCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIHZlYy5leHRy YWN0KGluZGV4IC0gMSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQg I1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0t ICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3Vs ZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25l ZF9mYWlsKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwp ID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHVuYWxpZ25lZCA9IFtudWxsOyAkaWQ6OjxpMzI+OjpsYW5lcygpICsgMV07Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNwbGF0KG5vbl9udWxsKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMgbm90IGxhcmdlIGVub3VnaCA9 PiBwYW5pYwotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV91bmFs aWduZWQoJm11dCB1bmFsaWduZWRbMi4uXSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBk YXRhOiBbPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQ7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICBfdmVjOiAkaWQ8aTMyPiwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4g d3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg KG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGE6IFtudWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8 aTMyPjo6c3BsYXQobm9uX251bGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVk KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGlnbmVkLmRhdGFbJGlk Ojo8aTMyPjo6bGFuZXMoKS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAg ICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGlu ZGV4LCAmYikgaW4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgYWxpZ25l ZC5kYXRhLml0ZXIoKS5lbnVtZXJhdGUoKSB9IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaW5kZXggPCAkaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGIsIG5vbl9udWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiwgdmVjLmV4dHJh Y3QoaW5kZXggLSAkaWQ6OjxpMzI+OjpsYW5lcygpKQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hv dWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAg ICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFu aWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX2ZhaWxf bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBub25fbnVsbCkg PSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg YWxpZ25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsg MiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNwbGF0KG5vbl9u dWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMgbm90IGxhcmdl IGVub3VnaCA9PiBwYW5pYwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVkKAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGlnbmVkLmRhdGFbMiAqICRpZDo6 PGkzMj46OmxhbmVzKCkuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAg ICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9y dCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8v ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0K LS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hv dWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25l ZF9mYWlsX2FsaWduKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwgbm9u X251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBB IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFtudWxsOyAyICogJGlk Ojo8aTMyPjo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBhIHBvaW50ZXIgdG8gdGhlIGZyb250 IG9mIGRhdGEKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9IGFsaWduZWQu ZGF0YS5hc19tdXRfcHRyKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNl dCBwb2ludGVyIGJ5IG9uZSBlbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBwdHIgPSBwdHIud3JhcHBpbmdfYWRkKDEpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBwdHIuYWxpZ25fb2Zmc2V0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjwkaWQ8aTMyPj4oKQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICApID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g dGhlIHBvaW50ZXIgaXMgcHJvcGVybHkgYWxpZ25lZCwgc28KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHdyaXRlX3RvX3NsaWNlX2FsaWduZWQgd29uJ3QgZmFpbCBoZXJlIChl LmcuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGNhbiBoYXBwZW4g Zm9yIGkxMjh4MSkuIFNvIHdlIHBhbmljIHRvCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBtYWtlIHRoZSAic2hvdWxkX2ZhaWwiIHRlc3QgcGFzczoKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhbmljISgib2siKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBzbGlj ZSAtIHRoaXMgaXMgc2FmZSwgYmVjYXVzZSB0aGUKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZWxlbWVudHMgb2YgdGhlIHNsaWNlIGV4aXN0LCBhcmUgcHJvcGVybHkKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQsIGFuZCBwcm9wZXJseSBhbGlnbmVk OgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IHNsaWNlOjpmcm9tX3Jhd19w YXJ0c19tdXQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIsICRpZDo6PGkz Mj46OmxhbmVzKCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgYWx3YXlzIHBhbmljIGJlY2F1c2UgdGhl IHNsaWNlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWdubWVudCBkb2VzIG5v dCBtYXRjaCB0aGUgYWxpZ25tZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJl cXVpcmVtZW50cyBmb3IgdGhlIHZlY3RvciB0eXBlOgotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6c3BsYXQobm9uX251bGwpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZChzKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPFQ+IGNy YXRlOjpoYXNoOjpIYXNoIGZvciAkaWQ8VD4gewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuIGhhc2g8SDogY3JhdGU6Omhhc2g6Okhhc2hlcj4oJnNlbGYsIHN0YXRlOiAm bXV0IEgpIHsKLS0gICAgICAgICAgICAgICAgbGV0IHM6ICR1c2l6ZV90eSA9IHVuc2FmZSB7IGNy YXRlOjptZW06OnRyYW5zbXV0ZSgqc2VsZikgfTsKLS0gICAgICAgICAgICAgICAgcy5oYXNoKHN0 YXRlKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsK LS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAg ICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9oYXNoPl0gewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBoYXNoKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6aGFzaDo6e0hhc2gsIEhhc2hlcn07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1th bGxvdyhkZXByZWNhdGVkKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omhh c2g6OntTaXBIYXNoZXIxM307Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVl cyA9IFsxX2kzMjsgJGVsZW1fY291bnRdOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgdmVjOiAkaWQ8aTMyPiA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IGFycmF5ID0gWwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkaWQ6OjxpMzI+OjpudWxsKCkuZXh0cmFjdCgwKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGVsZW1fY291bnQKLS0gICAgICAgICAgICAgICAgICAgICAgICBdOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9ICZ2YWx1ZXNbaV0gYXMgKmNvbnN0IGkzMiBhcyAq bXV0IGkzMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjID0gdmVjLnJlcGxhY2Uo aSwgcHRyKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBwdHI7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICNb YWxsb3coZGVwcmVjYXRlZCldCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhX2hh c2ggPSBTaXBIYXNoZXIxMzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCB2X2hhc2ggPSBhX2hhc2guY2xvbmUoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhcnJh eS5oYXNoKCZtdXQgYV9oYXNoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWMuaGFzaCgm bXV0IHZfaGFzaCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhX2hhc2gu ZmluaXNoKCksIHZfaGFzaC5maW5pc2goKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBp bXBsPFQ+ICRpZDxUPiB7Ci0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBm cm9tIGEgcG9pbnRlci4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gYGNvdW50 YCBpcyBpbiB1bml0cyBvZiBgVGA7IGUuZy4gYSBjb3VudCBvZiBgM2AgcmVwcmVzZW50cyBhCi0t ICAgICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5 dGVzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25k aXRpb25zIGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcwotLSAgICAgICAgICAgIC8vLyBVbmRl ZmluZWQgQmVoYXZpb3I6Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogQm90 aCB0aGUgc3RhcnRpbmcgYW5kIHJlc3VsdGluZyBwb2ludGVyIG11c3QgYmUgZWl0aGVyIGluCi0t ICAgICAgICAgICAgLy8vIGJvdW5kcyBvciBvbmUgYnl0ZSBwYXN0IHRoZSBlbmQgb2YgYW4gYWxs b2NhdGVkIG9iamVjdC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBUaGUg Y29tcHV0ZWQgb2Zmc2V0LCBpbiBieXRlcywgY2Fubm90IG92ZXJmbG93IGFuIGBpc2l6ZWAuCi0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogVGhlIG9mZnNldCBiZWluZyBpbiBi b3VuZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIKLS0gICAgICAgICAgICAvLy8g dGhlIGFkZHJlc3Mgc3BhY2UuIFRoYXQgaXMsIHRoZSBpbmZpbml0ZS1wcmVjaXNpb24gc3VtLCBp biBieXRlcwotLSAgICAgICAgICAgIC8vLyBtdXN0IGZpdCBpbiBhIGB1c2l6ZWAuCi0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSBjb21waWxlciBhbmQgc3RhbmRhcmQgbGli cmFyeSBnZW5lcmFsbHkgdHJpZXMgdG8gZW5zdXJlCi0tICAgICAgICAgICAgLy8vIGFsbG9jYXRp b25zIG5ldmVyIHJlYWNoIGEgc2l6ZSB3aGVyZSBhbiBvZmZzZXQgaXMgYSBjb25jZXJuLiBGb3IK LS0gICAgICAgICAgICAvLy8gaW5zdGFuY2UsIGBWZWNgIGFuZCBgQm94YCBlbnN1cmUgdGhleSBu ZXZlciBhbGxvY2F0ZSBtb3JlIHRoYW4KLS0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhgIGJ5 dGVzLCBzbyBgdmVjLmFzX3B0cigpLm9mZnNldCh2ZWMubGVuKCkgYXMgaXNpemUpYAotLSAgICAg ICAgICAgIC8vLyBpcyBhbHdheXMgc2FmZS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAg ICAvLy8gTW9zdCBwbGF0Zm9ybXMgZnVuZGFtZW50YWxseSBjYW4ndCBldmVuIGNvbnN0cnVjdCBz dWNoIGFuCi0tICAgICAgICAgICAgLy8vIGFsbG9jYXRpb24uIEZvciBpbnN0YW5jZSwgbm8ga25v d24gNjQtYml0IHBsYXRmb3JtIGNhbiBldmVyCi0tICAgICAgICAgICAgLy8vIHNlcnZlIGEgcmVx dWVzdCBmb3IgMjYzIGJ5dGVzIGR1ZSB0byBwYWdlLXRhYmxlIGxpbWl0YXRpb25zIG9yCi0tICAg ICAgICAgICAgLy8vIHNwbGl0dGluZyB0aGUgYWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAz Mi1iaXQgYW5kIDE2LWJpdAotLSAgICAgICAgICAgIC8vLyBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3Nm dWxseSBzZXJ2ZSBhIHJlcXVlc3QgZm9yIG1vcmUgdGhhbgotLSAgICAgICAgICAgIC8vLyBgaXNp emU6Ok1BWGAgYnl0ZXMgd2l0aCB0aGluZ3MgbGlrZSBQaHlzaWNhbCBBZGRyZXNzIEV4dGVuc2lv bi4KLS0gICAgICAgICAgICAvLy8gQXMgc3VjaCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZy b20gYWxsb2NhdG9ycyBvciBtZW1vcnkKLS0gICAgICAgICAgICAvLy8gbWFwcGVkIGZpbGVzIG1h eSBiZSB0b28gbGFyZ2UgdG8gaGFuZGxlIHdpdGggdGhpcyBmdW5jdGlvbi4KLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gQ29uc2lkZXIgdXNpbmcgYHdyYXBwaW5nX29mZnNldGAg aW5zdGVhZCBpZiB0aGVzZSBjb25zdHJhaW50cwotLSAgICAgICAgICAgIC8vLyBhcmUgZGlmZmlj dWx0IHRvIHNhdGlzZnkuIFRoZSBvbmx5IGFkdmFudGFnZSBvZiB0aGlzIG1ldGhvZCBpcwotLSAg ICAgICAgICAgIC8vLyB0aGF0IGl0IGVuYWJsZXMgbW9yZSBhZ2dyZXNzaXZlIGNvbXBpbGVyIG9w dGltaXphdGlvbnMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVu c2FmZSBmbiBvZmZzZXQoc2VsZiwgY291bnQ6ICRpc2l6ZV90eSkgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIExMVk0ncyBgYWRkIG5zdyBudXdgCi0tICAg ICAgICAgICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0KGNvdW50KQotLSAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVy IHVzaW5nIHdyYXBwaW5nIGFyaXRobWV0aWMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgYFRgOyBlLmcuIGEgY291bnQgb2YgYDNgIHJl cHJlc2VudHMgYQotLSAgICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNpemVf b2Y6OjxUPigpYCBieXRlcy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBT YWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIHJlc3VsdGluZyBw b2ludGVyIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYm91bmRzLCBidXQgaXQgaXMKLS0gICAgICAg ICAgICAvLy8gcG90ZW50aWFsbHkgaGF6YXJkb3VzIHRvIGRlcmVmZXJlbmNlICh3aGljaCByZXF1 aXJlcyB1bnNhZmUpLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBBbHdheXMg dXNlIGAub2Zmc2V0KGNvdW50KWAgaW5zdGVhZCB3aGVuIHBvc3NpYmxlLCBiZWNhdXNlCi0tICAg ICAgICAgICAgLy8vIG9mZnNldCBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvIG9wdGltaXplIGJldHRl ci4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3JhcHBpbmdf b2Zmc2V0KHNlbGYsIGNvdW50OiAkaXNpemVfdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgbGV0IHg6ICRpc2l6ZV90eSA9IGNyYXRl OjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IHsr LCp9IGN1cnJlbnRseSBwZXJmb3JtcyBhIGB3cmFwcGluZ197YWRkLCBtdWx9YAotLSAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKAotLSAgICAgICAgICAgICAgICAgICAg ICAgIHggKyAoY291bnQgKiBjcmF0ZTo6bWVtOjpzaXplX29mOjo8VD4oKSBhcyBpc2l6ZSkKLS0g ICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0d28g cG9pbnRlcnMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSByZXR1cm5l ZCB2YWx1ZSBpcyBpbiB1bml0cyBvZiBgVGA6IHRoZSBkaXN0YW5jZSBpbiBieXRlcyBpcwotLSAg ICAgICAgICAgIC8vLyBkaXZpZGVkIGJ5IGBtZW06OnNpemVfb2Y6OjxUPigpYC4KLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhpcyBmdW5jdGlvbiBpcyB0aGUgaW52ZXJzZSBv ZiBvZmZzZXQuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGFueSBvZiB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnMgYXJlIHZpb2xhdGVkLCB0aGUgcmVzdWx0IGlzCi0tICAgICAgICAgICAgLy8v IFVuZGVmaW5lZCBCZWhhdmlvcjoKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g KiBCb3RoIHRoZSBzdGFydGluZyBhbmQgb3RoZXIgcG9pbnRlciBtdXN0IGJlIGVpdGhlciBpbiBi b3VuZHMKLS0gICAgICAgICAgICAvLy8gb3Igb25lIGJ5dGUgcGFzdCB0aGUgZW5kIG9mIHRoZSBz YW1lIGFsbG9jYXRlZCBvYmplY3QuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8v ICogVGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIHBvaW50ZXJzLCBpbiBieXRlcywgY2Fubm90IG92 ZXJmbG93Ci0tICAgICAgICAgICAgLy8vIGFuIGBpc2l6ZWAuCi0tICAgICAgICAgICAgLy8vCi0t ICAgICAgICAgICAgLy8vICogVGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIHBvaW50ZXJzLCBpbiBi eXRlcywgbXVzdCBiZSBhbiBleGFjdAotLSAgICAgICAgICAgIC8vLyBtdWx0aXBsZSBvZiB0aGUg c2l6ZSBvZiBgVGAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogVGhlIGRp c3RhbmNlIGJlaW5nIGluIGJvdW5kcyBjYW5ub3QgcmVseSBvbiAid3JhcHBpbmcgYXJvdW5kIgot LSAgICAgICAgICAgIC8vLyB0aGUgYWRkcmVzcyBzcGFjZS4KLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gVGhlIGNvbXBpbGVyIGFuZCBzdGFuZGFyZCBsaWJyYXJ5IGdlbmVyYWxs eSB0cnkgdG8gZW5zdXJlCi0tICAgICAgICAgICAgLy8vIGFsbG9jYXRpb25zIG5ldmVyIHJlYWNo IGEgc2l6ZSB3aGVyZSBhbiBvZmZzZXQgaXMgYSBjb25jZXJuLiBGb3IKLS0gICAgICAgICAgICAv Ly8gaW5zdGFuY2UsIGBWZWNgIGFuZCBgQm94YCBlbnN1cmUgdGhleSBuZXZlciBhbGxvY2F0ZSBt b3JlIHRoYW4KLS0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhgIGJ5dGVzLCBzbyBgcHRyX2lu dG9fdmVjLm9mZnNldF9mcm9tKHZlYy5hc19wdHIoKSlgCi0tICAgICAgICAgICAgLy8vIGlzIGFs d2F5cyBzYWZlLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBNb3N0IHBsYXRm b3JtcyBmdW5kYW1lbnRhbGx5IGNhbid0IGV2ZW4gY29uc3RydWN0IHN1Y2ggYW4KLS0gICAgICAg ICAgICAvLy8gYWxsb2NhdGlvbi4gRm9yIGluc3RhbmNlLCBubyBrbm93biA2NC1iaXQgcGxhdGZv cm0gY2FuIGV2ZXIKLS0gICAgICAgICAgICAvLy8gc2VydmUgYSByZXF1ZXN0IGZvciAyNjMgYnl0 ZXMgZHVlIHRvIHBhZ2UtdGFibGUgbGltaXRhdGlvbnMgb3IKLS0gICAgICAgICAgICAvLy8gc3Bs aXR0aW5nIHRoZSBhZGRyZXNzIHNwYWNlLiBIb3dldmVyLCBzb21lIDMyLWJpdCBhbmQgMTYtYml0 Ci0tICAgICAgICAgICAgLy8vIHBsYXRmb3JtcyBtYXkgc3VjY2Vzc2Z1bGx5IHNlcnZlIGEgcmVx dWVzdCBmb3IgbW9yZSB0aGFuCi0tICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcyB3 aXRoIHRoaW5ncyBsaWtlIFBoeXNpY2FsIEFkZHJlc3MgRXh0ZW5zaW9uLgotLSAgICAgICAgICAg IC8vLyBBcyBzdWNoLCBtZW1vcnkgYWNxdWlyZWQgZGlyZWN0bHkgZnJvbSBhbGxvY2F0b3JzIG9y IG1lbW9yeQotLSAgICAgICAgICAgIC8vLyBtYXBwZWQgZmlsZXMgbWF5IGJlIHRvbyBsYXJnZSB0 byBoYW5kbGUgd2l0aCB0aGlzIGZ1bmN0aW9uLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAg ICAgIC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0X2Zyb21gIGluc3RlYWQgaWYg dGhlc2UgY29uc3RyYWludHMKLS0gICAgICAgICAgICAvLy8gYXJlIGRpZmZpY3VsdCB0byBzYXRp c2Z5LiBUaGUgb25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXMKLS0gICAgICAgICAgICAv Ly8gdGhhdCBpdCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBjb21waWxlciBvcHRpbWl6YXRpb25z LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gb2Zm c2V0X2Zyb20oc2VsZiwgb3JpZ2luOiBTZWxmKSAtPiAkaXNpemVfdHkgewotLSAgICAgICAgICAg ICAgICAvLyBGSVhNRTogc2hvdWxkIHVzZSBMTFZNJ3MgYHN1YiBuc3cgbnV3YC4KLS0gICAgICAg ICAgICAgICAgc2VsZi53cmFwcGluZ19vZmZzZXRfZnJvbShvcmlnaW4pCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHR3 byBwb2ludGVycy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIHJldHVy bmVkIHZhbHVlIGlzIGluIHVuaXRzIG9mIGBUYDogdGhlIGRpc3RhbmNlIGluIGJ5dGVzIGlzCi0t ICAgICAgICAgICAgLy8vIGRpdmlkZWQgYnkgYG1lbTo6c2l6ZV9vZjo6PFQ+KClgLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiB0aGUgYWRkcmVzcyBkaWZmZXJlbnQgYmV0 d2VlbiB0aGUgdHdvIHBvaW50ZXJzIGlzIG5vdCBhCi0tICAgICAgICAgICAgLy8vIG11bHRpcGxl IG9mIGBtZW06OnNpemVfb2Y6OjxUPigpYCB0aGVuIHRoZSByZXN1bHQgb2YgdGhlCi0tICAgICAg ICAgICAgLy8vIGRpdmlzaW9uIGlzIHJvdW5kZWQgdG93YXJkcyB6ZXJvLgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyBUaG91Z2ggdGhpcyBtZXRob2QgaXMgc2FmZSBmb3IgYW55 IHR3byBwb2ludGVycywgbm90ZSB0aGF0IGl0cwotLSAgICAgICAgICAgIC8vLyByZXN1bHQgd2ls bCBiZSBtb3N0bHkgdXNlbGVzcyBpZiB0aGUgdHdvIHBvaW50ZXJzIGFyZW4ndCBpbnRvCi0tICAg ICAgICAgICAgLy8vIHRoZSBzYW1lIGFsbG9jYXRlZCBvYmplY3QsIGZvciBleGFtcGxlIGlmIHRo ZXkgcG9pbnQgdG8gdHdvCi0tICAgICAgICAgICAgLy8vIGRpZmZlcmVudCBsb2NhbCB2YXJpYWJs ZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5n X29mZnNldF9mcm9tKHNlbGYsIG9yaWdpbjogU2VsZikgLT4gJGlzaXplX3R5IHsKLS0gICAgICAg ICAgICAgICAgbGV0IHg6ICRpc2l6ZV90eSA9IHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0 ZShzZWxmKSB9OwotLSAgICAgICAgICAgICAgICBsZXQgeTogJGlzaXplX3R5ID0gdW5zYWZlIHsg Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKG9yaWdpbikgfTsKLS0gICAgICAgICAgICAgICAgLy8gbm90 ZTogey0sL30gY3VycmVudGx5IHBlcmZvcm0gd3JhcHBpbmdfe3N1YiwgZGl2fQotLSAgICAgICAg ICAgICAgICAoeSAtIHgpIC8gKGNyYXRlOjptZW06OnNpemVfb2Y6OjxUPigpIGFzIGlzaXplKQot LSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgb2Zmc2V0 IGZyb20gYSBwb2ludGVyIChjb252ZW5pZW5jZSBmb3IKLS0gICAgICAgICAgICAvLy8gYC5vZmZz ZXQoY291bnQgYXMgaXNpemUpYCkuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8v IGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgYFRgOyBlLmcuIGEgY291bnQgb2YgMyByZXByZXNlbnRz IGEKLS0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4o KWAgYnl0ZXMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGFueSBvZiB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnMgYXJlIHZpb2xhdGVkLCB0aGUgcmVzdWx0IGlzCi0tICAgICAgICAgICAgLy8v IFVuZGVmaW5lZCBCZWhhdmlvcjoKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g KiBCb3RoIHRoZSBzdGFydGluZyBhbmQgcmVzdWx0aW5nIHBvaW50ZXIgbXVzdCBiZSBlaXRoZXIg aW4KLS0gICAgICAgICAgICAvLy8gYm91bmRzIG9yIG9uZSBieXRlIHBhc3QgdGhlIGVuZCBvZiBh biBhbGxvY2F0ZWQgb2JqZWN0LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAq IFRoZSBjb21wdXRlZCBvZmZzZXQsIGluIGJ5dGVzLCBjYW5ub3Qgb3ZlcmZsb3cgYW4gYGlzaXpl YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBUaGUgb2Zmc2V0IGJlaW5n IGluIGJvdW5kcyBjYW5ub3QgcmVseSBvbiAid3JhcHBpbmcgYXJvdW5kIgotLSAgICAgICAgICAg IC8vLyB0aGUgYWRkcmVzcyBzcGFjZS4gVGhhdCBpcywgdGhlIGluZmluaXRlLXByZWNpc2lvbiBz dW0gbXVzdCBmaXQKLS0gICAgICAgICAgICAvLy8gaW4gYSBgdXNpemVgLgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0YW5kYXJkIGxpYnJhcnkg Z2VuZXJhbGx5IHRyaWVzIHRvIGVuc3VyZQotLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBu ZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4gRm9yCi0tICAg ICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIg YWxsb2NhdGUgbW9yZSB0aGFuCi0tICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywg c28gYHZlYy5hc19wdHIoKS5hZGQodmVjLmxlbigpKWAgaXMgYWx3YXlzCi0tICAgICAgICAgICAg Ly8vIHNhZmUuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE1vc3QgcGxhdGZv cm1zIGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qgc3VjaCBhbgotLSAgICAgICAg ICAgIC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtub3duIDY0LWJpdCBwbGF0Zm9y bSBjYW4gZXZlcgotLSAgICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJlcXVlc3QgZm9yIDI2MyBieXRl cyBkdWUgdG8gcGFnZS10YWJsZSBsaW1pdGF0aW9ucyBvcgotLSAgICAgICAgICAgIC8vLyBzcGxp dHRpbmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUgMzItYml0IGFuZCAxNi1iaXQK LS0gICAgICAgICAgICAvLy8gcGxhdGZvcm1zIG1heSBzdWNjZXNzZnVsbHkgc2VydmUgYSByZXF1 ZXN0IGZvciBtb3JlIHRoYW4KLS0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhgIGJ5dGVzIHdp dGggdGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcyBFeHRlbnNpb24uCi0tICAgICAgICAgICAg Ly8vIEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBmcm9tIGFsbG9jYXRvcnMgb3Ig bWVtb3J5Ci0tICAgICAgICAgICAgLy8vIG1hcHBlZCBmaWxlcyBtYXkgYmUgdG9vIGxhcmdlIHRv IGhhbmRsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGluZ19vZmZzZXRgIGluc3RlYWQgaWYgdGhlc2Ug Y29uc3RyYWludHMKLS0gICAgICAgICAgICAvLy8gYXJlIGRpZmZpY3VsdCB0byBzYXRpc2Z5LiBU aGUgb25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXMKLS0gICAgICAgICAgICAvLy8gdGhh dCBpdCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBjb21waWxlciBvcHRpbWl6YXRpb25zLgotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpzaG91bGRf aW1wbGVtZW50X3RyYWl0KV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGFkZChzZWxmLCBj b3VudDogJHVzaXplX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZi5vZmZzZXQo Y291bnQuY2FzdCgpKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ2FsY3Vs YXRlcyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVyIChjb252ZW5pZW5jZSBmb3IKLS0gICAgICAg ICAgICAvLy8gYC5vZmZzZXQoKGNvdW50IGFzIGlzaXplKS53cmFwcGluZ19uZWcoKSlgKS4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBU OyBlLmcuIGEgYGNvdW50YCBvZiAzIHJlcHJlc2VudHMgYQotLSAgICAgICAgICAgIC8vLyBwb2lu dGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRlcy4KLS0gICAgICAgICAgICAv Ly8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdmlvbGF0ZWQs IHRoZSByZXN1bHQgaXMKLS0gICAgICAgICAgICAvLy8gVW5kZWZpbmVkIEJlaGF2aW9yOgotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIEJvdGggdGhlIHN0YXJ0aW5nIGFuZCBy ZXN1bHRpbmcgcG9pbnRlciBtdXN0IGJlIGVpdGhlciBpbgotLSAgICAgICAgICAgIC8vLyBib3Vu ZHMgb3Igb25lIGJ5dGUgcGFzdCB0aGUgZW5kIG9mIGFuIGFsbG9jYXRlZCBvYmplY3QuCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogVGhlIGNvbXB1dGVkIG9mZnNldCBjYW5u b3QgZXhjZWVkIGBpc2l6ZTo6TUFYYCAqKmJ5dGVzKiouCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vICogVGhlIG9mZnNldCBiZWluZyBpbiBib3VuZHMgY2Fubm90IHJlbHkgb24g IndyYXBwaW5nIGFyb3VuZCIKLS0gICAgICAgICAgICAvLy8gdGhlIGFkZHJlc3Mgc3BhY2UuIFRo YXQgaXMsIHRoZSBpbmZpbml0ZS1wcmVjaXNpb24gc3VtIG11c3QgZml0Ci0tICAgICAgICAgICAg Ly8vIGluIGEgdXNpemUuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSBj b21waWxlciBhbmQgc3RhbmRhcmQgbGlicmFyeSBnZW5lcmFsbHkgdHJpZXMgdG8gZW5zdXJlCi0t ICAgICAgICAgICAgLy8vIGFsbG9jYXRpb25zIG5ldmVyIHJlYWNoIGEgc2l6ZSB3aGVyZSBhbiBv ZmZzZXQgaXMgYSBjb25jZXJuLiBGb3IKLS0gICAgICAgICAgICAvLy8gaW5zdGFuY2UsIGBWZWNg IGFuZCBgQm94YCBlbnN1cmUgdGhleSBuZXZlciBhbGxvY2F0ZSBtb3JlIHRoYW4KLS0gICAgICAg ICAgICAvLy8gYGlzaXplOjpNQVhgIGJ5dGVzLCBzbwotLSAgICAgICAgICAgIC8vLyBgdmVjLmFz X3B0cigpLmFkZCh2ZWMubGVuKCkpLnN1Yih2ZWMubGVuKCkpYCBpcyBhbHdheXMgc2FmZS4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTW9zdCBwbGF0Zm9ybXMgZnVuZGFtZW50 YWxseSBjYW4ndCBldmVuIGNvbnN0cnVjdCBzdWNoIGFuCi0tICAgICAgICAgICAgLy8vIGFsbG9j YXRpb24uIEZvciBpbnN0YW5jZSwgbm8ga25vd24gNjQtYml0IHBsYXRmb3JtIGNhbiBldmVyCi0t ICAgICAgICAgICAgLy8vIHNlcnZlIGEgcmVxdWVzdCBmb3IgMjxzdXA+NjM8L3N1cD4gYnl0ZXMg ZHVlIHRvIHBhZ2UtdGFibGUKLS0gICAgICAgICAgICAvLy8gbGltaXRhdGlvbnMgb3Igc3BsaXR0 aW5nIHRoZSBhZGRyZXNzIHNwYWNlLiBIb3dldmVyLCBzb21lIDMyLWJpdAotLSAgICAgICAgICAg IC8vLyBhbmQgMTYtYml0IHBsYXRmb3JtcyBtYXkgc3VjY2Vzc2Z1bGx5IHNlcnZlIGEgcmVxdWVz dCBmb3IgbW9yZQotLSAgICAgICAgICAgIC8vLyB0aGFuIGBpc2l6ZTo6TUFYYCBieXRlcyB3aXRo IHRoaW5ncyBsaWtlIFBoeXNpY2FsIEFkZHJlc3MKLS0gICAgICAgICAgICAvLy8gRXh0ZW5zaW9u LiBBcyBzdWNoLCBtZW1vcnkgYWNxdWlyZWQgZGlyZWN0bHkgZnJvbSBhbGxvY2F0b3JzIG9yCi0t ICAgICAgICAgICAgLy8vIG1lbW9yeSBtYXBwZWQgZmlsZXMgKm1heSogYmUgdG9vIGxhcmdlIHRv IGhhbmRsZSB3aXRoIHRoaXMKLS0gICAgICAgICAgICAvLy8gZnVuY3Rpb24uCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGluZ19vZmZzZXRg IGluc3RlYWQgaWYgdGhlc2UgY29uc3RyYWludHMKLS0gICAgICAgICAgICAvLy8gYXJlIGRpZmZp Y3VsdCB0byBzYXRpc2Z5LiBUaGUgb25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXMKLS0g ICAgICAgICAgICAvLy8gdGhhdCBpdCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBjb21waWxlciBv cHRpbWl6YXRpb25zLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbYWxs b3coY2xpcHB5OjpzaG91bGRfaW1wbGVtZW50X3RyYWl0KV0KLS0gICAgICAgICAgICBwdWIgdW5z YWZlIGZuIHN1YihzZWxmLCBjb3VudDogJHVzaXplX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgbGV0IHg6ICRpc2l6ZV90eSA9IGNvdW50LmNhc3QoKTsKLS0gICAgICAgICAgICAgICAg Ly8gbm90ZTogLSBpcyBjdXJyZW50bHkgd3JhcHBpbmdfbmVnCi0tICAgICAgICAgICAgICAgIHNl bGYub2Zmc2V0KC14KQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ2FsY3Vs YXRlcyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVyIHVzaW5nIHdyYXBwaW5nIGFyaXRobWV0aWMu Ci0tICAgICAgICAgICAgLy8vIChjb252ZW5pZW5jZSBmb3IgYC53cmFwcGluZ19vZmZzZXQoY291 bnQgYXMgaXNpemUpYCkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gYGNvdW50 YCBpcyBpbiB1bml0cyBvZiBUOyBlLmcuIGEgYGNvdW50YCBvZiAzIHJlcHJlc2VudHMgYQotLSAg ICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRl cy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIHJlc3VsdGluZyBwb2ludGVyIGRvZXMgbm90 IG5lZWQgdG8gYmUgaW4gYm91bmRzLCBidXQgaXQgaXMKLS0gICAgICAgICAgICAvLy8gcG90ZW50 aWFsbHkgaGF6YXJkb3VzIHRvIGRlcmVmZXJlbmNlICh3aGljaCByZXF1aXJlcyBgdW5zYWZlYCku Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIEFsd2F5cyB1c2UgYC5hZGQoY291 bnQpYCBpbnN0ZWFkIHdoZW4gcG9zc2libGUsIGJlY2F1c2UgYGFkZGAKLS0gICAgICAgICAgICAv Ly8gYWxsb3dzIHRoZSBjb21waWxlciB0byBvcHRpbWl6ZSBiZXR0ZXIuCi0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5nX2FkZChzZWxmLCBjb3VudDog JHVzaXplX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZi53cmFwcGluZ19vZmZz ZXQoY291bnQuY2FzdCgpKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ2Fs Y3VsYXRlcyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVyIHVzaW5nIHdyYXBwaW5nIGFyaXRobWV0 aWMuCi0tICAgICAgICAgICAgLy8vIChjb252ZW5pZW5jZSBmb3IgYC53cmFwcGluZ19vZmZzZXQo KGNvdW50IGFzCi0tICAgICAgICAgICAgLy8vIGlzaXplKS53cmFwcGluZ19zdWIoKSlgKQotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBgY291bnRgIGlzIGluIHVuaXRzIG9mIFQ7 IGUuZy4gYSBgY291bnRgIG9mIDMgcmVwcmVzZW50cyBhCi0tICAgICAgICAgICAgLy8vIHBvaW50 ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5dGVzLgotLSAgICAgICAgICAgIC8v LwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAg ICAgIC8vLyBUaGUgcmVzdWx0aW5nIHBvaW50ZXIgZG9lcyBub3QgbmVlZCB0byBiZSBpbiBib3Vu ZHMsIGJ1dCBpdCBpcwotLSAgICAgICAgICAgIC8vLyBwb3RlbnRpYWxseSBoYXphcmRvdXMgdG8g ZGVyZWZlcmVuY2UgKHdoaWNoIHJlcXVpcmVzIGB1bnNhZmVgKS4KLS0gICAgICAgICAgICAvLy8K LS0gICAgICAgICAgICAvLy8gQWx3YXlzIHVzZSBgLnN1Yihjb3VudClgIGluc3RlYWQgd2hlbiBw b3NzaWJsZSwgYmVjYXVzZSBgc3ViYAotLSAgICAgICAgICAgIC8vLyBhbGxvd3MgdGhlIGNvbXBp bGVyIHRvIG9wdGltaXplIGJldHRlci4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBwdWIgZm4gd3JhcHBpbmdfc3ViKHNlbGYsIGNvdW50OiAkdXNpemVfdHkpIC0+IFNlbGYg ewotLSAgICAgICAgICAgICAgICBsZXQgeDogJGlzaXplX3R5ID0gY291bnQuY2FzdCgpOwotLSAg ICAgICAgICAgICAgICBzZWxmLndyYXBwaW5nX29mZnNldCgtMSAqIHgpCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4gewotLSAgICAgICAgICAg IC8vLyBTaHVmZmxlIHZlY3RvciBlbGVtZW50cyBhY2NvcmRpbmcgdG8gYGluZGljZXNgLgotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBzaHVmZmxlMV9keW48ST4o c2VsZiwgaW5kaWNlczogSSkgLT4gU2VsZgotLSAgICAgICAgICAgICAgICB3aGVyZQotLSAgICAg ICAgICAgICAgICBTZWxmOiBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluPEluZGlj ZXMgPSBJPiwKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIGNvZGVnZW46OnNodWZm bGUxX2R5bjo6U2h1ZmZsZTFEeW46OnNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzKQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAg ICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfc2h1ZmZsZTFfZHluPl0gewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGFsdGVybmF0aW5nID0gW25vbl9udWxsLCBudWxsLCBub25f bnVsbCwgbnVsbCwgLi4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWx0ZXJu YXRpbmcgPSAkaWQ6OjxpMzI+OjpzcGxhdChudWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhbHRlcm5hdGluZyA9IGFsdGVybmF0aW5nLnJlcGxhY2UoaSwgbm9uX251bGwpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IDwkaWQ8aTMyPgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcyBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUx RHluPjo6SW5kaWNlczsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVuID0gWzAsIDAs IDIsIDIsIDQsIDQsIC4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVuID0gewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBJbmRpY2VzOjpzcGxhdCgw KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6 bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAw IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGks IChpIGFzIHU4KS5pbnRvKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwg KGkgYXMgdTggLSAxKS5pbnRvKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIG9kZCA9IFsxLCAxLCAzLCAzLCA1LCA1LCAuLi5dCi0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG9kZCA9IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgaSAlIDIgIT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCkuaW50bygpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCArIDEpLmludG8oKSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdgotLSAgICAgICAgICAgICAgICAgICAg ICAgIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcuc2h1ZmZsZTFfZHluKGV2ZW4pLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCkKLS0g ICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRp ZDo6PGkzMj46OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0aW5nLnNo dWZmbGUxX2R5bihvZGQpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8 aTMyPjo6c3BsYXQobnVsbCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsLnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvbWluaW1hbC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsNiArMCwwIEBACi0tI1ttYWNyb191c2VdCi0tbW9kIGl1ZjsKLS0jW21hY3JvX3Vz ZV0KLS1tb2QgbWFzazsKLS0jW21hY3JvX3VzZV0KLS1tb2QgcHRyOwotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2FyaXRobWV0aWMu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9hcml0 aG1ldGljLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3Bz L3NjYWxhcl9hcml0aG1ldGljLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9h cml0aG1ldGljLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwy MDMgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3Itc2NhbGFyIC8gc2Nh bGFyLXZlY3RvciBhcml0aG1ldGljIG9wZXJhdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxf b3BzX3NjYWxhcl9hcml0aG1ldGljIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNy YXRlOjpvcHM6OkFkZDwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRw dXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGFkZChz ZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmICsg JGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkFkZDwkaWQ+IGZvciAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgdHlw ZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4g YWRkKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6c3Bs YXQoc2VsZikgKyBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IGltcGwgY3JhdGU6Om9wczo6U3ViPCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0 eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gc3ViKHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAg IHNlbGYgLSAkaWQ6OnNwbGF0KG90aGVyKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6U3ViPCRpZD4gZm9yICRlbGVtX3R5IHsKLS0gICAgICAg ICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBzdWIoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAg JGlkOjpzcGxhdChzZWxmKSAtIG90aGVyCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpNdWw8JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAg ICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBtdWwoc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgc2VsZiAqICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpNdWw8JGlkPiBmb3IgJGVsZW1fdHkgewot LSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIG11bChzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAgICAgICAg ICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpICogb3RoZXIKLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkRpdjwkZWxlbV90eT4gZm9yICRpZCB7 Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGRpdihzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICBzZWxmIC8gJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkRpdjwkaWQ+IGZvciAkZWxl bV90eSB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gZGl2KHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0t ICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgLyBvdGhlcgotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtPCRlbGVtX3R5PiBm b3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gcmVtKHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYgJSAkaWQ6OnNwbGF0KG90aGVyKQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtPCRpZD4g Zm9yICRlbGVtX3R5IHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiByZW0oc2VsZiwgb3RoZXI6ICRpZCkgLT4g JGlkIHsKLS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAlIG90aGVyCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGRBc3Np Z248JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuIGFkZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKLS0gICAgICAg ICAgICAgICAgKnNlbGYgPSAqc2VsZiArIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U3ViQXNzaWduPCRlbGVtX3R5PiBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzdWJfYXNzaWdu KCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0g KnNlbGYgLSBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBp bXBsIGNyYXRlOjpvcHM6Ok11bEFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbXVsX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVy OiAkZWxlbV90eSkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICogb3RoZXI7Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpE aXZBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuIGRpdl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKLS0g ICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAvIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtQXNzaWduPCRlbGVtX3R5 PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiByZW1f YXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAgICpz ZWxmID0gKnNlbGYgJSBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfc2NhbGFyX2Fy aXRoPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgIGZuIG9wc19zY2FsYXJfYXJpdGhtZXRpYygpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgemkgPSAwIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBvaSA9IDEgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHRpID0gMiBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg ZmkgPSA0IGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlk OjpzcGxhdCh6aSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0 KG9pKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQodGkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdChmaSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgLy8gYWRkCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh6aSArIHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo eiArIHppLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICsgeiwg byk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICsgemksIG8pOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgKyB6LCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgKyB6aSwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0aSArIHQsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodCArIHRpLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWIKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIC0geiwgeik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IC0gemksIHopOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEob2kgLSB6LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8gLSB6aSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0aSAtIHosIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAtIHpp LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpIC0gdCwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC0gdGksIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAtIG8gLSBvLCB0KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGYgLSBvaSAtIG9pLCB0KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBtdWwKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICog eiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogemksIHopOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgKiBvLCB6KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiBvaSwgeik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6aSAqIHQsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoeiAqIHRpLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG9pICogdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICog dGksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgKiB0LCBmKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgKiB0aSwgZik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgLy8gZGl2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6aSAvIG8sIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAv IG9pLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIC8gbywgdCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC8gb2ksIHQpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgLyBvLCBmKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGYgLyBvaSwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh0aSAvIHQsIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodCAvIHRpLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZp IC8gdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC8gdGksIHQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEob2kgJSBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG8gJSBvaSwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShm aSAlIHQsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAlIHRpLCB6 KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdiA9IHo7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKz0gb2k7IC8vIGFk ZF9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBvKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtPSBvaTsgLy8gc3ViX2Fzc2lnbgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2ID0gdDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAq PSBvaTsgLy8gbXVsX2Fzc2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICo9IHRpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2IC89IG9pOyAvLyBkaXZfYXNzaWduCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYgLz0gdGk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgJT0gdGk7IC8vIHJlbV9hc3NpZ24KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2JpdHdpc2Uu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9iaXR3 aXNlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3Nj YWxhcl9iaXR3aXNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9iaXR3aXNl LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNjIgKzAsMCBA QAotLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3Itc2NhbGFyIC8gc2NhbGFyLXZlY3Rv ciBiaXR3aXNlIG9wZXJhdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3NjYWxhcl9i aXR3aXNlIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0gICAgICAgICgkdHJ1 ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdFhvcjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQg PSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdHhvcihz ZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmIF4g JGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdFhvcjwkaWQ+IGZvciAkZWxlbV90eSB7Ci0tICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gYml0eG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICRp ZDo6c3BsYXQoc2VsZikgXiBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAg ICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHNlbGYgJiAkaWQ6OnNwbGF0KG90aGVyKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPCRpZD4gZm9yICRlbGVt X3R5IHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsK LS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAmIG90aGVyCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPcjwkZWxlbV90 eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiAkZWxlbV90 eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYgfCAkaWQ6OnNwbGF0KG90aGVyKQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0 T3I8JGlkPiBmb3IgJGVsZW1fdHkgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVy OiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgfCBvdGhl cgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0QW5kQXNzaWduPCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBiaXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVt X3R5KSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJiBvdGhlcjsKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWdu PCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBiaXRvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKLS0gICAgICAg ICAgICAgICAgKnNlbGYgPSAqc2VsZiB8IG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yQXNzaWduPCRlbGVtX3R5PiBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXR4b3JfYXNz aWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgXiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAg ICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6 aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfc2NhbGFyX2JpdHdp c2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3NjYWxhcl9iaXR3aXNlKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB6aSA9IDAgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG9pID0gMSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdGkgPSAyIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6 ID0gJGlkOjpzcGxhdCh6aSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6 OnNwbGF0KG9pKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQo dGkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFuZDoKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICYgbywgbyk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvICYgb2ksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEob2kgJiB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8gJiB6aSwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAmIG8s IHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAmIG9pLCB6KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICYgeiwgeik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICYgemksIHopOwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodGkgJiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQgJiB0aSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0aSAmIG8sIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAm IG9pLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICYgdCwgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgdGksIHopOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdE9yOgotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEob2kgfCBvLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8gfCBvaSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSB8 IHosIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyB8IHppLCBvKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIHwgbywgbyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgb2ksIG8pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoemkgfCB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogfCB6aSwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0aSB8IHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCB8IHRpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIHwgdCwg dCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgdGksIHQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgfCB6LCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB6aSwgdCk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQml0WE9SOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo b2kgXiBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gXiBvaSwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSBeIHosIHopOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiBeIHppLCB6KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIF4gbywgbyk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6IF4gb2ksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEob2kgXiB6LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8gXiB6aSwgbyk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSBe IHQsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIHRpLCB6KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIF4geiwgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gemksIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoemkgXiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogXiB0aSwgdCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRBc3NpZ246Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYgJj0gdGk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAg IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3JBc3NpZ246Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgfD0gb2k7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo diwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWE9SQXNzaWduOgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6OwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2IF49IG9pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYsIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL29wcy9zY2FsYXJfbWFza19iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfbWFza19iaXR3aXNlLnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX21hc2tfYml0d2lzZS5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTQwICswLDAgQEAKLS0vLyEgVmVydGlj YWwgKGxhbmUtd2lzZSkgdmVjdG9yLXZlY3RvciBiaXR3aXNlIG9wZXJhdGlvbnMuCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfb3BzX3NjYWxhcl9tYXNrX2JpdHdpc2UgewotLSAgICAoCi0tICAgICAg ICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlkZW50 IHwgJHRlc3RfdHQ6dHQgfAotLSAgICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQotLSAg ICApID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yPGJvb2w+IGZvciAkaWQg ewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6IGJvb2wpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICBzZWxmIF4gJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvcjwkaWQ+IGZvciBi b29sIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsK LS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSBeIG90aGVyCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmQ8Ym9vbD4g Zm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBvdGhlcjogYm9vbCkgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYgJiAkaWQ6OnNwbGF0KG90aGVyKQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPCRp ZD4gZm9yIGJvb2wgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBvdGhlcjogJGlkKSAt PiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpICYgb3RoZXIKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9y PGJvb2w+IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogYm9v bCkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYgfCAkaWQ6OnNwbGF0KG90aGVyKQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0 T3I8JGlkPiBmb3IgYm9vbCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6ICRp ZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSB8IG90aGVyCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmRBc3NpZ248Ym9vbD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gYml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBib29sKSB7Ci0tICAg ICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWduPGJvb2w+IGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yX2Fzc2ln bigmbXV0IHNlbGYsIG90aGVyOiBib29sKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNl bGYgfCBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNy YXRlOjpvcHM6OkJpdFhvckFzc2lnbjxib29sPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBiaXR4b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IGJv b2wpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiBeIG90aGVyOwotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0 ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX29wc19zY2FsYXJfbWFza19iaXR3aXNlPl0gewotLSAgICAgICAgICAgICAg ICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG9w c19zY2FsYXJfbWFza19iaXR3aXNlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0 aSA9IHRydWU7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpID0gZmFsc2U7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoZmkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEodCAhPSBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KCEodCA9PSBmKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0QW5kOgotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgJiBmLCBmKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBmaSwgZik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmaSAmIHQsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiAmIHRpLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHRpICYgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICYgdGks IHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgJiBmLCBmKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJiBmaSwgZik7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgLy8gQml0T3I6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0aSB8IGYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCB8IGZpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpIHwgdCwg dCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIHwgdGksIHQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgfCB0LCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0aSwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmaSB8IGYsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiB8IGZpLCBmKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRY T1I6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSBeIGYsIHQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIGZpLCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpIF4gdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmIF4gdGksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodGkgXiB0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgXiB0aSwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSBeIGYs IGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiBeIGZpLCBmKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIEFuZEFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0g ZjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAmPSB0aTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBPckFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2 ID0gZjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiB8PSB0aTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBYT1JBc3NpZ246Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgdiA9IGY7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgXj0gdGk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9zaGlmdHMucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9zaGlmdHMucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX3No aWZ0cy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDYgKzAsMCBAQAotLS8vISBW ZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3Itc2NhbGFyIHNoaWZ0cyBvcGVyYXRpb25zLgotLQot LW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2FsYXJfc2hpZnRzIHsKLS0gICAgKFskZWxlbV90eTpp ZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0t ICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNobDx1MzI+IGZvciAkaWQgewotLSAgICAgICAgICAg IHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBzaGwoc2VsZiwgb3RoZXI6IHUzMikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNl bGYgPDwgJGlkOjpzcGxhdChvdGhlciBhcyAkZWxlbV90eSkKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNocjx1MzI+IGZvciAkaWQgewotLSAg ICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBzaHIoc2VsZiwgb3RoZXI6IHUzMikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHNlbGYgPj4gJGlkOjpzcGxhdChvdGhlciBhcyAkZWxlbV90eSkKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNobEFzc2lnbjx1 MzI+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNo bF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogdTMyKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgPDwgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAg aW1wbCBjcmF0ZTo6b3BzOjpTaHJBc3NpZ248dTMyPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaHJfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IHUz MikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmID4+IG90aGVyOwotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0 X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBt b2QgWzwkaWQgX29wc19zY2FsYXJfc2hpZnRzPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIoYW55 KHRhcmdldF9hcmNoID0gInMzOTB4IiwgdGFyZ2V0X2FyY2ggPSAic3BhcmM2NCIpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvdyh1bnJlYWNoYWJsZV9jb2RlLCB1bnVzZWRf dmFyaWFibGVzKQotLSAgICAgICAgICAgICAgICAgICAgKV0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAgICAgICAg ICAgLy9+XiBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9p c3N1ZXMvMzE3Ci0tICAgICAgICAgICAgICAgICAgICBmbiBvcHNfc2NhbGFyX3NoaWZ0cygpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQo NCBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgemkgPSAwIGFzIHUzMjsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG9pID0gMSBhcyB1MzI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB0aSA9IDIgYXMgdTMyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bWF4aQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAobWVtOjpzaXplX29mOjo8 JGVsZW1fdHk+KCkgKiA4IC0gMSkgYXMgdTMyOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBzaHIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+ IHppLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IG9p LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHRpLCB6 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHRpLCB6KTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcoYW55KHRhcmdldF9hcmNoID0g InMzOTB4IiwgdGFyZ2V0X2FyY2ggPSAic3BhcmM2NCIpKV0gewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVy c2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPj4gemksIG8pOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4gemksIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gemksIGYpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gbWF4aSwgeik7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobyA+PiBvaSwgeik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCA+PiBvaSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodCA+PiB0aSwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoZiA+PiBvaSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoZiA+PiB0aSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiA+PiBtYXhpLCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gc2hsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA8PCB6aSwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCB6aSwgbyk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA8PCB6aSwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA8PCB6aSwgZik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA8PCBtYXhpLCB6KTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIDw8IG9pLCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIDw8IHRpLCBmKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IDw8IG9pLCBmKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgeyAgLy8gc2hyX2Fzc2lnbgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgPj49IG9pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh2LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7ICAvLyBzaGxfYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHYgPSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiA8PD0gb2k7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9hcml0aG1ldGljLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYXJpdGht ZXRpYy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92 ZWN0b3JfYXJpdGhtZXRpYy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYXJp dGhtZXRpYy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTQ4 ICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXZlY3RvciBhcml0aG1l dGljIG9wZXJhdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9hcml0aG1l dGljIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVu dCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZCBmb3Ig JGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gYWRkKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsK LS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2FkZDsKLS0gICAgICAgICAg ICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2FkZChzZWxmLjAsIG90aGVyLjApKSB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWIgZm9y ICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIGZuIHN1YihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zdWI7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9zdWIoc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TXVsIGZv ciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBtdWwoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYg ewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfbXVsOwotLSAgICAgICAg ICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfbXVsKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkRpdiBm b3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZGl2KHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2RpdjsKLS0gICAgICAg ICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2RpdihzZWxmLjAsIG90aGVyLjApKSB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW0g Zm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHJlbShzZWxmLCBvdGhlcjogU2VsZikgLT4gU2Vs ZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZW07Ci0tICAgICAg ICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9yZW0oc2VsZi4wLCBvdGhlci4wKSkgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRk QXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZu IGFkZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAgICAq c2VsZiA9ICpzZWxmICsgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAg ICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWJBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc3ViX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBT ZWxmKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgLSBvdGhlcjsKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bEFzc2ln biBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBtdWxf YXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYg PSAqc2VsZiAqIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IGltcGwgY3JhdGU6Om9wczo6RGl2QXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIGRpdl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikg ewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIC8gb3RoZXI7Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW1Bc3NpZ24gZm9y ICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gcmVtX2Fzc2ln bigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNl bGYgJSBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0 X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEg ewotLSAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3JfYXJpdGg+XSB7Ci0t ICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAg ICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9hcml0aG1ldGljKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogKyB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8gKyB6LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgKyB6 LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgKyB0LCBmKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWIKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHogLSB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8gLSB6LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLSB6LCB0 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgLSB0LCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgLSBvIC0gbywgdCk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gbXVsCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6ICogeiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogbywg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogdCwgeik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICogdCwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICogdCwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZGl2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IC8gbywgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC8gbywgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC8gbywgZik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0IC8gdCwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShmIC8gdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtCi0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICUgbywgeik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICUgdCwgeik7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6Owot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ICs9IG87IC8vIGFkZF9hc3NpZ24KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdiAtPSBvOyAvLyBzdWJfYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB0Owot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICo9IG87IC8vIG11bF9hc3NpZ24KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiAqPSB0OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC89IG87IC8vIGRp dl9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAvPSB0OwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ICU9IHQ7IC8vIHJlbV9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9vcHMvdmVjdG9yX2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9iaXR3aXNlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9iaXR3aXNlLnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvb3BzL3ZlY3Rvcl9iaXR3aXNlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwxMjkgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2 ZWN0b3ItdmVjdG9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9v cHNfdmVjdG9yX2JpdHdpc2UgewotLSAgICAoCi0tICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAotLSAg ICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQotLSAgICApID0+IHsKLS0gICAgICAgIGlt cGwgY3JhdGU6Om9wczo6Tm90IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0g U2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBub3Qoc2VsZikg LT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNlbGY6OnNwbGF0KCR0cnVlKSBeIHNlbGYKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhv ciBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiBTZWxmKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3hvcjsKLS0g ICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX3hvcihzZWxmLjAsIG90aGVyLjApKSB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmQgZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBvdGhlcjogU2Vs ZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9hbmQ7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9hbmQoc2VsZi4wLCBvdGhlci4w KSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0T3IgZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiBT ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX29y OwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfb3Ioc2VsZi4wLCBvdGhlci4w KSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0QW5kQXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIGJpdGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAg ICAgICAgICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbiBmb3IgJGlkIHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcl9hc3NpZ24oJm11dCBz ZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIHwgb3Ro ZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3Bz OjpCaXRYb3JBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAgICAg ICAgICAgICAgICpzZWxmID0gKnNlbGYgXiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9v cHNfdmVjdG9yX2JpdHdpc2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9iaXR3aXNlKCkg ewotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRl bGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBh cyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0 KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtID0gJGlkOjpz cGxhdCghei5leHRyYWN0KDApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3Q6 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgheiwgbSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISghbSwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gQml0QW5kOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAm IG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAmIHosIHopOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAmIG8sIHopOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAmIHosIHopOwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCAmIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCAmIG8sIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEobyAmIHQsIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdE9yOgotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyB8IG8sIG8pOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobyB8IHosIG8pOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoeiB8IG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoeiB8IHosIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCB8IHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiB8IHQsIHQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCB8IHosIHQpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdFhPUjoKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8gXiBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHogXiB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogXiBv LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gXiB6LCBvKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB0LCB6KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB6LCB0KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHogXiB0LCB0KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZEFzc2lnbjoKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiAmPSB0OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg ICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9yQXNzaWduOgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6OwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2IHw9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWE9SQXNzaWduOgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6OwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2IF49IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvb3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfZmxvYXRfbWluX21heC5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfZmxvYXRfbWluX21heC5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfZmxvYXRfbWluX21heC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzQgKzAsMCBAQAotLS8vISBW ZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3IgYG1pbmAgYW5kIGBtYXhgIGZvciBmbG9hdGluZy1w b2ludCB2ZWN0b3JzLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3JfZmxvYXRfbWlu X21heCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRl bnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAg IC8vLyBNaW5pbXVtIG9mIHR3byB2ZWN0b3JzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAg ICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBtaW5pbXVtIHZhbHVl IG9mIGVhY2ggb2YKLS0gICAgICAgICAgICAvLy8gdGhlIGlucHV0IHZlY3RvciBsYW5lcy4KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbWluKHNlbGYsIHg6IFNl bGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZm1p bjsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2ZtaW4oc2VsZi4wLCB4LjAp KSB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBNYXhpbXVtIG9mIHR3byB2 ZWN0b3JzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3 IHZlY3RvciBjb250YWluaW5nIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGVhY2ggb2YKLS0gICAgICAg ICAgICAvLy8gdGhlIGlucHV0IHZlY3RvciBsYW5lcy4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgZm4gbWF4KHNlbGYsIHg6IFNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZm1heDsKLS0gICAgICAgICAgICAgICAg dW5zYWZlIHsgU2ltZChzaW1kX2ZtYXgoc2VsZi4wLCB4LjApKSB9Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0t ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KGFu eSgKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzIyMwotLSAgICAgICAgICAgICAgICAg ICAgYWxsKHRhcmdldF9hcmNoID0gIm1pcHMiLCB0YXJnZXRfZW5kaWFuID0gImJpZyIpLAotLSAg ICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAibWlwczY0IiwKLS0gICAgICAgICAgICAg ICAgKSkpXQotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9yX21pbl9t YXg+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgZm4gbWluX21heCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbiA9IGNyYXRlOjokZWxlbV90eTo6TkFOOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBvID0gJGlkOjpzcGxhdCgxLiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIuIGFzICRlbGVtX3R5KTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IG0gPSBvOyAvLyBbMS4sIDIuLCAxLiwgMi4sIC4uLl0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG9uID0gbzsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG0gPSBtLnJlcGxhY2UoaSwgMi4gYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb24gPSBvbi5yZXBsYWNlKGksIG4pOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoby5taW4odCksIG8pOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodC5taW4obyksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEobS5taW4obyksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoby5taW4obSksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5t aW4odCksIG0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5taW4obSks IG0pOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5tYXgodCksIHQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5tYXgobyksIHQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5tYXgobyksIG0pOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5tYXgobSksIG0pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEobS5tYXgodCksIHQpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodC5tYXgobSksIHQpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEob24ubWluKG8pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG8ubWluKG9uKSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShvbi5tYXgobyksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5t YXgob24pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9tYXgu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9pbnRf bWluX21heC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29w cy92ZWN0b3JfaW50X21pbl9tYXgucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9y X2ludF9taW5fbWF4LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSw1NyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3RvciBgbWluYCBhbmQg YG1heGAgZm9yIGludGVnZXIgdmVjdG9ycy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVj dG9yX2ludF9taW5fbWF4IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0t ICAgICAgICAgICAgLy8vIE1pbmltdW0gb2YgdHdvIHZlY3RvcnMuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1p bmltdW0gdmFsdWUgb2YgZWFjaCBvZgotLSAgICAgICAgICAgIC8vLyB0aGUgaW5wdXQgdmVjdG9y IGxhbmVzLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBtaW4o c2VsZiwgeDogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYubHQoeCkuc2Vs ZWN0KHNlbGYsIHgpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBNYXhpbXVt IG9mIHR3byB2ZWN0b3JzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBSZXR1 cm5zIGEgbmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGVhY2ggb2YK LS0gICAgICAgICAgICAvLy8gdGhlIGlucHV0IHZlY3RvciBsYW5lcy4KLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbWF4KHNlbGYsIHg6IFNlbGYpIC0+IFNlbGYg ewotLSAgICAgICAgICAgICAgICBzZWxmLmd0KHgpLnNlbGVjdChzZWxmLCB4KQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYheyR0ZXN0X3R0OgotLSAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9yX21p bl9tYXg+XSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgZm4gbWluX21heCgpIHsKLS0gICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlk OjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlk OjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQg bSA9IG87Ci0tICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtID0gbS5yZXBsYWNlKGksIDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoby5taW4odCksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0Lm1pbihvKSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0u bWluKG8pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5taW4obSksIG8p OwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1pbih0KSwgbSk7Ci0tICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWluKG0pLCBtKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoby5tYXgodCksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0Lm1heChvKSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0u bWF4KG8pLCBtKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5tYXgobSksIG0p OwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1heCh0KSwgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWF4KG0pLCB0KTsKLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0 b3JfbWFza19iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L29wcy92ZWN0b3JfbWFza19iaXR3aXNlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsMTE2ICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lz ZSkgdmVjdG9yLXZlY3RvciBiaXR3aXNlIG9wZXJhdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfb3BzX3ZlY3Rvcl9tYXNrX2JpdHdpc2UgewotLSAgICAoCi0tICAgICAgICBbJGVsZW1fdHk6 aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQgfAotLSAgICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQotLSAgICApID0+IHsKLS0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Tm90IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUg T3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBu b3Qoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNlbGY6OnNwbGF0KCR0cnVlKSBe IHNlbGYKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdFhvciBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVy OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1k X3hvcjsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX3hvcihzZWxmLjAsIG90 aGVyLjApKSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpCaXRBbmQgZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxm OwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBv dGhlcjogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6 c2ltZF9hbmQ7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9hbmQoc2VsZi4w LCBvdGhlci4wKSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6Qml0T3IgZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBT ZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYs IG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt OjpzaW1kX29yOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfb3Ioc2VsZi4w LCBvdGhlci4wKSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6Qml0QW5kQXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGJpdGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikg ewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbiBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcl9hc3Np Z24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpz ZWxmIHwgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpCaXRYb3JBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7 Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgXiBvdGhlcjsKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9vcHNfdmVjdG9yX21hc2tfYml0d2lzZT5dIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBvcHNfdmVj dG9yX21hc2tfYml0d2lzZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRp ZDo6c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNw bGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHQgIT0gZik7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKHQgPT0gZikpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIE5vdDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKCF0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsICFmKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRBbmQ6Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0ICYgZiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShmICYgdCwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0ICYgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICYgZiwg Zik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0T3I6Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwgZiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmIHwgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0IHwgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIHwg ZiwgZik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0WE9SOgotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIGYsIHQpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZiBeIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodCBeIHQsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ZiBeIGYsIGYpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gQW5kQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHYgPSBmOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9IHQ7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgZik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gT3JBc3NpZ246Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgdiA9IGY7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgfD0gdDsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBYT1JBc3NpZ246Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdiA9IGY7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgXj0g dDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX25l Zy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX25l Zy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0 b3JfbmVnLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQzICswLDAgQEAKLS0vLyEgVmVy dGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yIGBOZWdgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29w c192ZWN0b3JfbmVnIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6 Ok5lZyBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbmVnKHNlbGYpIC0+IFNlbGYgewotLSAg ICAgICAgICAgICAgICBTZWxmOjpzcGxhdCgtMSBhcyAkZWxlbV90eSkgKiBzZWxmCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRl c3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9uZWc+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gbmVnKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFz ICRlbGVtX3R5KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbnogPSAkaWQ6OnNw bGF0KC0oMCBhcyAkZWxlbV90eSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBubyA9 ICRpZDo6c3BsYXQoLSgxIGFzICRlbGVtX3R5KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG50ID0gJGlkOjpzcGxhdCgtKDIgYXMgJGVsZW1fdHkpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbmYgPSAkaWQ6OnNwbGF0KC0oNCBhcyAkZWxlbV90eSkpOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoLXosIG56KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKC1vLCBubyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISgtdCwgbnQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoLWYs IG5mKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIC1ueik7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCAtbm8pOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgLW50KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYsIC1uZik7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3Jv dGF0ZXMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rv cl9yb3RhdGVzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3ZlY3Rvcl9yb3RhdGVzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9y b3RhdGVzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw5MiAr MCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3RvciByb3RhdGVzIG9wZXJhdGlv bnMuCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9y X3JvdGF0ZXMgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAg ICAgICAvLy8gU2hpZnRzIHRoZSBiaXRzIG9mIGVhY2ggbGFuZSB0byB0aGUgbGVmdCBieSB0aGUg c3BlY2lmaWVkCi0tICAgICAgICAgICAgLy8vIGFtb3VudCBpbiB0aGUgY29ycmVzcG9uZGluZyBs YW5lIG9mIGBuYCwgd3JhcHBpbmcgdGhlCi0tICAgICAgICAgICAgLy8vIHRydW5jYXRlZCBiaXRz IHRvIHRoZSBlbmQgb2YgdGhlIHJlc3VsdGluZyBpbnRlZ2VyLgotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyBOb3RlOiB0aGlzIGlzIG5laXRoZXIgdGhlIHNhbWUgb3BlcmF0aW9u IGFzIGA8PGAgbm9yIGVxdWl2YWxlbnQKLS0gICAgICAgICAgICAvLy8gdG8gYHNsaWNlOjpyb3Rh dGVfbGVmdGAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHJv dGF0ZV9sZWZ0KHNlbGYsIG46ICRpZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgY29uc3Qg TEFORV9XSURUSDogJGVsZW1fdHkgPQotLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6 c2l6ZV9vZjo6PCRlbGVtX3R5PigpIGFzICRlbGVtX3R5ICogODsKLS0gICAgICAgICAgICAgICAg Ly8gUHJvdGVjdCBhZ2FpbnN0IHVuZGVmaW5lZCBiZWhhdmlvciBmb3Igb3Zlci1sb25nIGJpdCBz aGlmdHMKLS0gICAgICAgICAgICAgICAgbGV0IG4gPSBuICUgTEFORV9XSURUSDsKLS0gICAgICAg ICAgICAgICAgKHNlbGYgPDwgbikgfCAoc2VsZiA+PiAoKExBTkVfV0lEVEggLSBuKSAlIExBTkVf V0lEVEgpKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gU2hpZnRzIHRoZSBi aXRzIG9mIGVhY2ggbGFuZSB0byB0aGUgcmlnaHQgYnkgdGhlIHNwZWNpZmllZAotLSAgICAgICAg ICAgIC8vLyBhbW91bnQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgbGFuZSBvZiBgbmAsIHdyYXBwaW5n IHRoZQotLSAgICAgICAgICAgIC8vLyB0cnVuY2F0ZWQgYml0cyB0byB0aGUgYmVnaW5uaW5nIG9m IHRoZSByZXN1bHRpbmcgaW50ZWdlci4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gTm90ZTogdGhpcyBpcyBuZWl0aGVyIHRoZSBzYW1lIG9wZXJhdGlvbiBhcyBgPj5gIG5vciBl cXVpdmFsZW50Ci0tICAgICAgICAgICAgLy8vIHRvIGBzbGljZTo6cm90YXRlX3JpZ2h0YC4KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gcm90YXRlX3JpZ2h0KHNl bGYsIG46ICRpZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgY29uc3QgTEFORV9XSURUSDog JGVsZW1fdHkgPQotLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PCRl bGVtX3R5PigpIGFzICRlbGVtX3R5ICogODsKLS0gICAgICAgICAgICAgICAgLy8gUHJvdGVjdCBh Z2FpbnN0IHVuZGVmaW5lZCBiZWhhdmlvciBmb3Igb3Zlci1sb25nIGJpdCBzaGlmdHMKLS0gICAg ICAgICAgICAgICAgbGV0IG4gPSBuICUgTEFORV9XSURUSDsKLS0gICAgICAgICAgICAgICAgKHNl bGYgPj4gbikgfCAoc2VsZiA8PCAoKExBTkVfV0lEVEggLSBuKSAlIExBTkVfV0lEVEgpKQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAg ICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAg ICAgIC8vIEZJWE1FOgotLSAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzc1Ci0tICAgICAgICAgICAgICAgICNb Y2ZnKG5vdChhbnkoCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJzMzkweCIs Ci0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJzcGFyYzY0IiwKLS0gICAgICAg ICAgICAgICAgKSkpXQotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9y X3JvdGF0ZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIp KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vfl4gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvcGFja2VkX3NpbWQvaXNzdWVzLzMxNwotLSAgICAgICAgICAgICAgICAgICAgZm4g cm90YXRlX29wcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3Bs YXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6 OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0g JGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg ZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG1heCA9ICRpZDo6c3BsYXQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICht ZW06OnNpemVfb2Y6OjwkZWxlbV90eT4oKSAqIDggLSAxKSBhcyAkZWxlbV90eSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgLy8gcm90YXRlX3JpZ2h0Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6LnJvdGF0ZV9yaWdodCh6KSwgeik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6LnJvdGF0ZV9yaWdodChvKSwgeik7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6LnJvdGF0ZV9yaWdodCh0KSwgeik7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0ZV9yaWdodCh6KSwgbyk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LnJvdGF0ZV9yaWdodCh6KSwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9yaWdodCh6KSwgZik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9yaWdodChtYXgp LCBmIDw8IDEpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5yb3Rh dGVfcmlnaHQobyksIG8gPDwgbWF4KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQucm90YXRlX3JpZ2h0KG8pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHQucm90YXRlX3JpZ2h0KHQpLCBvIDw8IG1heCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9yaWdodChvKSwgdCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9yaWdodCh0KSwgbyk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gcm90YXRlX2xlZnQKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHoucm90YXRlX2xlZnQoeiksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoby5yb3RhdGVfbGVmdCh6KSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh0LnJvdGF0ZV9sZWZ0KHopLCB0KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGYucm90YXRlX2xlZnQoeiksIGYpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfbGVmdChtYXgpLCB0KTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX2xlZnQobyksIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5yb3RhdGVfbGVmdCh0KSwgZik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LnJvdGF0ZV9sZWZ0KG8pLCBmKTsKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRzLnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsMTA2ICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lz ZSkgdmVjdG9yLXZlY3RvciBzaGlmdHMgb3BlcmF0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1w bF9vcHNfdmVjdG9yX3NoaWZ0cyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50 OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpTaGw8JGlkPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNl bGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2hsKHNlbGYsIG90 aGVyOiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpz aW1kX3NobDsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX3NobChzZWxmLjAs IG90aGVyLjApKSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpTaHI8JGlkPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9 IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2hyKHNlbGYs IG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt OjpzaW1kX3NocjsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX3NocihzZWxm LjAsIG90aGVyLjApKSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1w bCBjcmF0ZTo6b3BzOjpTaGxBc3NpZ248JGlkPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBzaGxfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYp IHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiA8PCBvdGhlcjsKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNockFzc2lnbjwkaWQ+ IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNocl9h c3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9 ICpzZWxmID4+IG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRl c3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVt ISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3Jfc2hpZnRzPl0g ewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIoYW55KHRhcmdldF9hcmNoID0gInMzOTB4IiwgdGFyZ2V0 X2FyY2ggPSAic3BhcmM2NCIpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxv dyh1bnJlYWNoYWJsZV9jb2RlLCB1bnVzZWRfdmFyaWFibGVzKQotLSAgICAgICAgICAgICAgICAg ICAgKV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJj aDY0IikpXQotLSAgICAgICAgICAgICAgICAgICAgLy9+XiBGSVhNRTogaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9pc3N1ZXMvMzE3Ci0tICAgICAgICAgICAgICAgICAg ICBmbiBvcHNfdmVjdG9yX3NoaWZ0cygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg eiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG1heCA9JGlkOjpzcGxhdCgKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1lbTo6c2l6ZV9vZjo6PCRlbGVtX3R5PigpICogOCAtIDEpIGFzICRlbGVtX3R5 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBzaHIKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4geiwgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IG8sIHopOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB0LCB6KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gdCwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgI1tjZmcoYW55KHRhcmdldF9hcmNoID0gInMzOTB4IiwgdGFyZ2V0X2FyY2ggPSAic3Bh cmM2NCIpKV0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogcnVzdCBw cm9kdWNlcyBiYWQgY29kZWdlbiBmb3Igc2hpZnRzOgotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv aXNzdWVzLzEzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShvID4+IHosIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA+PiB6 LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4geiwgZik7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG1heCwgeik7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvID4+IG8sIHopOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCA+PiBvLCBvKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQgPj4gdCwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShmID4+IG8sIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ZiA+PiB0LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gbWF4 LCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzaGwKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogPDwgeiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvIDw8IHosIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodCA8PCB6LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYg PDwgeiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIDw8IG1heCwg eik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIDw8IG8sIHQpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCB0LCBmKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPDwgbywgZik7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaHJfYXNzaWdu Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYgPj49IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hsX2Fz c2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBvOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2IDw8PSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL29wcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9v cHMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMyICswLDAgQEAKLS0vLyEgSW1wbGVtZW50YXRpb24gb2Yg dGhlIGBvcHNgIHRyYWl0cwotLSNbbWFjcm9fdXNlXQotLW1vZCB2ZWN0b3JfbWFza19iaXR3aXNl OwotLSNbbWFjcm9fdXNlXQotLW1vZCBzY2FsYXJfbWFza19iaXR3aXNlOwotLQotLSNbbWFjcm9f dXNlXQotLW1vZCB2ZWN0b3JfYXJpdGhtZXRpYzsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgc2NhbGFy X2FyaXRobWV0aWM7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHZlY3Rvcl9iaXR3aXNlOwotLSNb bWFjcm9fdXNlXQotLW1vZCBzY2FsYXJfYml0d2lzZTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2Qg dmVjdG9yX3NoaWZ0czsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgc2NhbGFyX3NoaWZ0czsKLS0KLS0j W21hY3JvX3VzZV0KLS1tb2QgdmVjdG9yX3JvdGF0ZXM7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9k IHZlY3Rvcl9uZWc7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHZlY3Rvcl9pbnRfbWluX21heDsK LS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgdmVjdG9yX2Zsb2F0X21pbl9tYXg7Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci9nYXRoZXJfc2NhdHRl ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIvZ2F0aGVyX3Nj YXR0ZXIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIv Z2F0aGVyX3NjYXR0ZXIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIvZ2F0aGVyX3NjYXR0 ZXIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIxNiArMCww IEBACi0tLy8hIEltcGxlbWVudHMgbWFza2VkIGdhdGhlciBhbmQgc2NhdHRlcnMgZm9yIHZlY3Rv cnMgb2YgcG9pbnRlcnMKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9wdHJfcmVhZCB7Ci0tICAgIChb JGVsZW1fdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50 Ci0tICAgICB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsPFQ+ICRpZDxUPgotLSAg ICAgICAgd2hlcmUKLS0gICAgICAgICAgICBbVDsgJGVsZW1fY291bnRdOiBzZWFsZWQ6OlNpbWRB cnJheSwKLS0gICAgICAgIHsKLS0gICAgICAgICAgICAvLy8gUmVhZHMgc2VsZWN0ZWQgdmVjdG9y IGVsZW1lbnRzIGZyb20gbWVtb3J5LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIGJ5IHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIGBz ZWxmYCBmb3IKLS0gICAgICAgICAgICAvLy8gdGhvc2UgbGFuZXMgd2hvc2UgYG1hc2tgIGlzIGB0 cnVlYCwgYW5kIHVzaW5nIHRoZSBlbGVtZW50cyBvZgotLSAgICAgICAgICAgIC8vLyBgdmFsdWVg IG90aGVyd2lzZS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTm8gbWVtb3J5 IGlzIGFjY2Vzc2VkIGZvciB0aG9zZSBsYW5lcyBvZiBgc2VsZmAgd2hvc2UgYG1hc2tgIGlzCi0t ICAgICAgICAgICAgLy8vIGBmYWxzZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoaXMgbWV0 aG9kIGlzIHVuc2FmZSBiZWNhdXNlIGl0IGRlcmVmZXJlbmNlcyByYXcgcG9pbnRlcnMuIFRoZQot LSAgICAgICAgICAgIC8vLyBwb2ludGVycyBtdXN0IGJlIGFsaWduZWQgdG8gYG1lbTo6YWxpZ25f b2Y6OjxUPigpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5z YWZlIGZuIHJlYWQ8TT4oCi0tICAgICAgICAgICAgICAgIHNlbGYsCi0tICAgICAgICAgICAgICAg IG1hc2s6IFNpbWQ8W007ICRlbGVtX2NvdW50XT4sCi0tICAgICAgICAgICAgICAgIHZhbHVlOiBT aW1kPFtUOyAkZWxlbV9jb3VudF0+LAotLSAgICAgICAgICAgICkgLT4gU2ltZDxbVDsgJGVsZW1f Y291bnRdPgotLSAgICAgICAgICAgIHdoZXJlCi0tICAgICAgICAgICAgICAgIE06IHNlYWxlZDo6 TWFzaywKLS0gICAgICAgICAgICAgICAgW007ICRlbGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJy YXksCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfZ2F0aGVyOwotLSAgICAgICAgICAgICAgICBTaW1kKHNpbWRfZ2F0aGVyKHZhbHVlLjAsIHNl bGYuMCwgbWFzay4wKSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0 ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0 ZW0hIHsKLS0gICAgICAgICAgICAgICAgbW9kIFs8JGlkIF9yZWFkPl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAg ICAgICAgICAgICAgICAgICAgZm4gcmVhZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHYgPSBbMF9pMzI7ICRlbGVtX2NvdW50XTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZbaV0gPSBpIGFzIGkzMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCBwdHIgPSAkaWQ6OjxpMzI+OjpudWxsKCk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwdHIgPSBwdHIucmVwbGFjZShpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnZbaV0gYXMgKmNvbnN0IGkzMiBhcyAqbXV0IGkzMgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwgbWFzayBlbGVtZW50cyBhcmUgdHJ1 ZToKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFzayA9ICRtYXNrX3R5OjpzcGxhdCh0 cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVmID0gU2ltZDo6PFtpMzI7ICRl bGVtX2NvdW50XT46OnNwbGF0KDQyX2kzMik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHI6IFNpbWQ8W2kzMjsgJGVsZW1fY291bnRdPiA9IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHB0ci5yZWFkKG1hc2ssIGRlZikKLS0gICAgICAgICAgICAgICAgICAgICAg ICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQ6Ojxb aTMyOyAkZWxlbV9jb3VudF0+Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZ2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0g ICAgICAgICAgICAgICAgICAgICAgICApOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgbWFzayA9IG1hc2s7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAw IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2sgPSBtYXNrLnJlcGxhY2Uo aSwgZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gbWFzayBl bGVtZW50cyBhcmUgdHJ1ZSwgb2RkIG9uZXMgYXJlIGZhbHNlOgotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCByOiBTaW1kPFtpMzI7ICRlbGVtX2NvdW50XT4gPSB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwdHIucmVhZChtYXNrLCBkZWYpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSB2Owot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlW2ldID0gNDI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgciwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2ltZDo6PFtpMzI7ICRlbGVtX2NvdW50XT46OmZyb21fc2xpY2Vf dW5hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmUKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxsIG1hc2sgZWxlbWVudHMgYXJlIGZhbHNlOgot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0gJG1hc2tfdHk6OnNwbGF0KGZhbHNl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVmID0gU2ltZDo6PFtpMzI7ICRlbGVt X2NvdW50XT46OnNwbGF0KDQyX2kzMik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHI6 IFNpbWQ8W2kzMjsgJGVsZW1fY291bnRdPiA9IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHB0ci5yZWFkKG1hc2ssIGRlZikgfQotLSAgICAgICAgICAgICAgICAgICAgICAg IDsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHIsIGRlZik7Ci0tICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX3B0cl93cml0ZSB7Ci0t ICAgIChbJGVsZW1fdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQsICRtYXNrX3R5 OmlkZW50Ci0tICAgICB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsPFQ+ICRpZDxU PgotLSAgICAgICAgd2hlcmUKLS0gICAgICAgICAgICBbVDsgJGVsZW1fY291bnRdOiBzZWFsZWQ6 OlNpbWRBcnJheSwKLS0gICAgICAgIHsKLS0gICAgICAgICAgICAvLy8gV3JpdGVzIHNlbGVjdGVk IHZlY3RvciBlbGVtZW50cyB0byBtZW1vcnkuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIFdyaXRlcyB0aGUgbGFuZXMgb2YgYHZhbHVlc2AgZm9yIHdoaWNoIHRoZSBtYXNrIGlz IGB0cnVlYCB0bwotLSAgICAgICAgICAgIC8vLyB0aGVpciBjb3JyZXNwb25kaW5nIG1lbW9yeSBh ZGRyZXNzZXMgaW4gYHNlbGZgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBO byBtZW1vcnkgaXMgYWNjZXNzZWQgZm9yIHRob3NlIGxhbmVzIG9mIGBzZWxmYCB3aG9zZSBgbWFz a2AgaXMKLS0gICAgICAgICAgICAvLy8gYGZhbHNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gT3ZlcmxhcHBpbmcgbWVtb3J5IGFkZHJlc3NlcyBvZiBgc2VsZmAgYXJlIHdy aXR0ZW4gdG8gaW4gb3JkZXIKLS0gICAgICAgICAgICAvLy8gZnJvbSB0aGUgbGVzdC1zaWduaWZp Y2FudCB0byB0aGUgbW9zdC1zaWduaWZpY2FudCBlbGVtZW50LgotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAg IC8vLyBUaGlzIG1ldGhvZCBpcyB1bnNhZmUgYmVjYXVzZSBpdCBkZXJlZmVyZW5jZXMgcmF3IHBv aW50ZXJzLiBUaGUKLS0gICAgICAgICAgICAvLy8gcG9pbnRlcnMgbXVzdCBiZSBhbGlnbmVkIHRv IGBtZW06OmFsaWduX29mOjo8VD4oKWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZTxNPihzZWxmLCBtYXNrOiBTaW1kPFtNOyAkZWxlbV9j b3VudF0+LCB2YWx1ZTogU2ltZDxbVDsgJGVsZW1fY291bnRdPikKLS0gICAgICAgICAgICB3aGVy ZQotLSAgICAgICAgICAgICAgICBNOiBzZWFsZWQ6Ok1hc2ssCi0tICAgICAgICAgICAgICAgIFtN OyAkZWxlbV9jb3VudF06IHNlYWxlZDo6U2ltZEFycmF5LAotLSAgICAgICAgICAgIHsKLS0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3NjYXR0ZXI7Ci0tICAgICAgICAgICAg ICAgIHNpbWRfc2NhdHRlcih2YWx1ZS4wLCBzZWxmLjAsIG1hc2suMCkKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3Rf dHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgbW9kIFs8 JGlkIF93cml0ZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAg ICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvcnR5X3R3byA9IFs0MiwgNDIsIDQyLCAu Li5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZvcnR5X3R3bwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+OjpzcGxhdCg0Ml9p MzIpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgdGVzdCB3aWxsIHdyaXRl IHRvIHRoaXMgYXJyYXkKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFyciA9IFsw X2kzMjsgJGVsZW1fY291bnRdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyW2ldID0gaSBh cyBpMzI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGFyciA9IFswLCAxLCAyLCAuLi5dCi0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBwdHIgPSAkaWQ6OjxpMzI+OjpudWxsKCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwdHIgPSBwdHIucmVwbGFjZShpLCB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXJyLmFzX3B0cigpLmFkZChpKSBhcyAqbXV0IGkzMgotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gcHRyID0gWyZhcnJbMF0sICZhcnJbMV0sIC4uLl0KLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBgZm9ydHlfdHdvYCB0byBhbGwgZWxlbWVudHMg b2YgYHZgCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgYmFja3VwID0gYXJyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLndyaXRlKCRtYXNr X3R5OjpzcGxhdCh0cnVlKSwgZm9ydHlfdHdvKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFyciwgWzQyX2kz MjsgJGVsZW1fY291bnRdKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyID0gYmFj a3VwOyAgLy8gYXJyID0gWzAsIDEsIDIsIC4uLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgNDIgdG8gZXZlbiBlbGVtZW50 cyBvZiBhcnI6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBzZXQgb2RkIGVsZW1lbnRzIG9mIHRoZSBtYXNrIHRvIGZhbHNlCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgbWFzayA9ICRtYXNrX3R5OjpzcGxhdCh0 cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291 bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzayA9IG1hc2sucmVwbGFjZShp LCBmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFz ayA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIC4uLl0KLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gZXhwZWN0ZWQgcmVzdWx0IHIgPSBbNDIsIDEsIDQyLCAzLCA0MiwgNSwg Li4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHIgPSBhcnI7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJbaV0gPSA0MjsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmFja3VwID0gYXJyOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNhZmUgeyBwdHIud3JpdGUobWFzaywgZm9ydHlfdHdvKSB9OwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFyciwgcik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFyciA9IGJhY2t1cDsgIC8vIGFyciA9IFswLCAxLCAyLCAzLCAu Li5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHdyaXRlIDQyIHRvIG5vIGVsZW1lbnRzIG9mIGFycgotLSAgICAgICAgICAgICAgICAg ICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2t1cCA9IGFycjsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHB0ci53cml0ZSgkbWFza190eTo6c3BsYXQoZmFsc2UpLCBmb3J0eV90 d28pCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoYXJyLCBiYWNrdXApOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9wdHIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9wdHIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQgKzAsMCBAQAotLS8vISBWZWN0b3Ig b2YgcG9pbnRlcnMKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgZ2F0aGVyX3NjYXR0ZXI7Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMv Yml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rp b25zL2JpdHdpc2UucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9yZWR1Y3Rpb25zL2JpdHdpc2UucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25z L2JpdHdpc2UucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE1 MSArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCBiaXR3aXNlIHZl Y3RvciByZWR1Y3Rpb25zLgotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfcmVkdWN0aW9uX2JpdHdpc2UgewotLSAgICAoCi0tICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlkZW50IHwgJGllbGVtX3R5OmlkZW50 IHwgJHRlc3RfdHQ6dHQgfAotLSAgICAgICAgKCRjb252ZXJ0OmV4cHIpIHwKLS0gICAgICAgICgk dHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7 Ci0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBiaXR3aXNlIGBhbmRgIG9mIHRoZSB2ZWN0b3Ig ZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE5vdGU6IGlmIHRo ZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUKLS0gICAgICAg ICAgICAvLy8gdmVjdG9yIGlzIHJldHVybmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiBhbmQoc2VsZikgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAg ICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAgICAgICAgICAg ewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hbmQ7 Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgcjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9y ZWR1Y2VfYW5kKHNlbGYuMCkgfTsKLS0gICAgICAgICAgICAgICAgICAgICRjb252ZXJ0KHIpCi0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAi YWFyY2g2NCIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogYnJva2VuIG9uIGFhcmNoNjQKLS0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsK LS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgeCAmPSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHk7Ci0tICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBiaXR3 aXNlIGBvcmAgb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gTm90ZTogaWYgdGhlIHZlY3RvciBoYXMgb25lIGxhbmUsIHRoZSBmaXJzdCBl bGVtZW50IG9mIHRoZQotLSAgICAgICAgICAgIC8vLyB2ZWN0b3IgaXMgcmV0dXJuZWQuCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIG9yKHNlbGYpIC0+ICRlbGVt X3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQi KSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 bGx2bTo6c2ltZF9yZWR1Y2Vfb3I7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgcjogJGllbGVt X3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2Vfb3Ioc2VsZi4wKSB9OwotLSAgICAgICAgICAgICAg ICAgICAgJGNvbnZlcnQocikKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gYWFyY2g2NAotLSAgICAgICAgICAg ICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL2lzc3Vlcy8xNQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRy YWN0KDApIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlk OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB4IHw9IHNlbGYuZXh0cmFjdChp KSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgIHgKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAvLy8gTGFuZS13aXNlIGJpdHdpc2UgYHhvcmAgb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTm90ZTogaWYgdGhlIHZlY3RvciBoYXMg b25lIGxhbmUsIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZQotLSAgICAgICAgICAgIC8vLyB2ZWN0 b3IgaXMgcmV0dXJuZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHVi IGZuIHhvcihzZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX3hvcjsKLS0gICAgICAgICAg ICAgICAgICAgIGxldCByOiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVjZV94b3Ioc2Vs Zi4wKSB9OwotLSAgICAgICAgICAgICAgICAgICAgJGNvbnZlcnQocikKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0t ICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4g b24gYWFyY2g2NAotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQotLSAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAg ICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB4IF49IHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAg ICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbl9iaXR3aXNlPl0gewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOwotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGFu ZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGZhbHNl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYuYW5kKCksICRmYWxzZSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYuYW5kKCksICR0cnVlKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAkdHJ1ZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYuYW5kKCksICR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwgJGZhbHNlKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBvcigpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYub3IoKSwgJGZhbHNlKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5vcigpLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodi5vcigpLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9 IHYucmVwbGFjZSgwLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6 bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYu b3IoKSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5vcigpLCAkZmFsc2UpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICBmbiB4b3IoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2LnhvcigpLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjps YW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54 b3IoKSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICR0cnVlKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAk aWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJl cGxhY2UoMCwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54 b3IoKSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxh dCgkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwg JGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkdHJ1ZSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvZmxvYXRfYXJpdGhtZXRp Yy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2Zs b2F0X2FyaXRobWV0aWMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDMxMyArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgcG9ydGFibGUg aG9yaXpvbnRhbCBmbG9hdCB2ZWN0b3IgYXJpdGhtZXRpYyByZWR1Y3Rpb25zLgotLQotLW1hY3Jv X3J1bGVzISBpbXBsX3JlZHVjdGlvbl9mbG9hdF9hcml0aG1ldGljIHsKLS0gICAgKFskZWxlbV90 eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7 Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIEhvcml6b250YWwgc3VtIG9m IHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8v IFRoZSBpbnRyaW5zaWMgcGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbiBvZiB0aGUgdmVjdG9yIGVs ZW1lbnRzLgotLSAgICAgICAgICAgIC8vLyBUaGF0IGlzLCBmb3IgYW4gOCBlbGVtZW50IHZlY3Rv cjoKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gPiAoKHgwICsgeDEpICsgKHgy ICsgeDMpKSArICgoeDQgKyB4NSkgKyAoeDYgKyB4NykpCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vIElmIG9uZSBvZiB0aGUgdmVjdG9yIGVsZW1lbnQgaXMgYE5hTmAgdGhlIHJl ZHVjdGlvbiByZXR1cm5zCi0tICAgICAgICAgICAgLy8vIGBOYU5gLiBUaGUgcmVzdWx0aW5nIGBO YU5gIGlzIG5vdCByZXF1aXJlZCB0byBiZSBlcXVhbCB0byBhbnkKLS0gICAgICAgICAgICAvLy8g b2YgdGhlIGBOYU5gcyBpbiB0aGUgdmVjdG9yLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiBzdW0oc2VsZikgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAg ICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAgICAgICAgICAg ewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hZGRf b3JkZXJlZDsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNpbWRfcmVkdWNlX2FkZF9v cmRlcmVkKHNlbGYuMCwgMCBhcyAkZWxlbV90eSkgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0gICAgICAgICAg ICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0 Ci0tICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHggKz0g c2VsZi5leHRyYWN0KGkpIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgIC8vLyBIb3Jpem9udGFsIHByb2R1Y3Qgb2YgdGhlIHZlY3RvciBlbGVt ZW50cy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIGludHJpbnNpYyBw ZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAgICAg ICAgICAgLy8vIFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyA+ICgoeDAgKiB4MSkgKiAoeDIgKiB4MykpICogKCh4NCAq IHg1KSAqICh4NiAqIHg3KSkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYg b25lIG9mIHRoZSB2ZWN0b3IgZWxlbWVudCBpcyBgTmFOYCB0aGUgcmVkdWN0aW9uIHJldHVybnMK LS0gICAgICAgICAgICAvLy8gYE5hTmAuIFRoZSByZXN1bHRpbmcgYE5hTmAgaXMgbm90IHJlcXVp cmVkIHRvIGJlIGVxdWFsIHRvIGFueQotLSAgICAgICAgICAgIC8vLyBvZiB0aGUgYE5hTmBzIGlu IHRoZSB2ZWN0b3IuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZu IHByb2R1Y3Qoc2VsZikgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAgICAjW2NmZyhub3Qo dGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9tdWxfb3JkZXJlZDsKLS0g ICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNpbWRfcmVkdWNlX211bF9vcmRlcmVkKHNlbGYu MCwgMSBhcyAkZWxlbV90eSkgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0gICAgICAgICAgICAgICAgewotLSAg ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0Ci0tICAgICAgICAg ICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2Vk X3NpbWQvaXNzdWVzLzE1Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4 dHJhY3QoMCkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4k aWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHggKj0gc2VsZi5leHRyYWN0 KGkpIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgeAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LQotLSAgICAgICAgaW1wbCBjcmF0ZTo6aXRlcjo6U3VtIGZvciAkaWQgewotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHN1bTxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4o aXRlcjogSSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQo MC4pLCBjcmF0ZTo6b3BzOjpBZGQ6OmFkZCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t Ci0tICAgICAgICBpbXBsIGNyYXRlOjppdGVyOjpQcm9kdWN0IGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9 ICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6 OnNwbGF0KDEuKSwgY3JhdGU6Om9wczo6TXVsOjptdWwpCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgaW1wbDwnYT4gY3JhdGU6Oml0ZXI6OlN1bTwmJ2EgJGlkPiBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzdW08STogSXRl cmF0b3I8SXRlbSA9ICYnYSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQgewotLSAgICAgICAgICAgICAg ICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgwLiksIHxhLCBifCBjcmF0ZTo6b3BzOjpBZGQ6OmFkZChh LCAqYikpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDwnYT4g Y3JhdGU6Oml0ZXI6OlByb2R1Y3Q8JidhICRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gcHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJidhICRp ZD4+KGl0ZXI6IEkpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNw bGF0KDEuKSwgfGEsIGJ8IGNyYXRlOjpvcHM6Ok11bDo6bXVsKGEsICpiKSkKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRl c3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgLy8g Q29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0t ICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb25fZmxvYXRfYXJpdGg+XSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICBmbiBhbHRlcm5h dGluZyh4OiB1c2l6ZSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGkgJSB4ID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYu cmVwbGFjZShpLCAyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB2 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHN1bSgpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2LnN1bSgpLCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnN1bSgpLCAkaWQ6OmxhbmVzKCkgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gYWx0ZXJuYXRpbmcoMik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdi5zdW0oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRpZDo6 bGFuZXMoKSAvIDIgKyAkaWQ6OmxhbmVzKCkpIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcHJvZHVjdCgpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnByb2R1Y3QoKSwgMCBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5wcm9kdWN0KCks IDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gbWF0Y2gg JGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNjQgPT4gMTYsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyID0+IDgsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDE2ID0+IDQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gPT4gMiwK LS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB2ID0gYWx0ZXJuYXRpbmcoZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5wcm9kdWN0KCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgyX3VzaXplLnBvdygoJGlkOjpsYW5lcygpIC8gZikgYXMgdTMy KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgJGVsZW1fdHkpCi0tICAgICAgICAg ICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnJlYWNo YWJsZV9jb2RlKV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHN1bV9uYW4oKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9MzY3MzIKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzYKLS0gICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm47Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4w ID0gY3JhdGU6OiRlbGVtX3R5OjpOQU47Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYw ID0gJGlkOjpzcGxhdCgtMy4wKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYg PSB2MC5yZXBsYWNlKGksIG4wKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYg dGhlIHZlY3RvciBjb250YWlucyBhIE5hTiB0aGUgcmVzdWx0IGlzIE5hTjoKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYuc3VtKCkuaXNfbmFuKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi bmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5zdW0oKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4wKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5zdW0oKS5pc19uYW4oKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KG4wKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHYuc3VtKCkuaXNfbmFuKCksICJhbGwgbmFucyB8IHs6 P30iLCB2KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnJlYWNoYWJsZV9jb2Rl KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHByb2R1Y3RfbmFuKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dp P2lkPTM2NzMyCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy82Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuMCA9IGNy YXRlOjokZWxlbV90eTo6TkFOOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MCA9ICRp ZDo6c3BsYXQoLTMuMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlk OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gdjAu cmVwbGFjZShpLCBuMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2 ZWN0b3IgY29udGFpbnMgYSBOYU4gdGhlIHJlc3VsdCBpcyBOYU46Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 LnByb2R1Y3QoKS5pc19uYW4oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJu YW4gYXQge30gPT4ge30gfCB7Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnByb2R1Y3QoKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4wKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5wcm9kdWN0KCkuaXNfbmFuKCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdChuMCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2LnByb2R1Y3QoKS5pc19uYW4oKSwgImFs bCBuYW5zIHwgezo/fSIsIHYpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVudXNl ZCwgZGVhZF9jb2RlKV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHN1bV9yb3VuZG9mZigpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBQZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uCi0t ICAgICAgICAgICAgICAgICAgICAgICAgZm4gdHJlZV9yZWR1Y2Vfc3VtKGE6ICZbJGVsZW1fdHld KSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEu aXNfZW1wdHkoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGEubGVuKCkgPT0g MSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzBdCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiBhLmxlbigpID09IDIgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYVswXSArIGFbMV0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaWQgPSBh LmxlbigpIC8gMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobGVmdCwg cmlnaHQpID0gYS5zcGxpdF9hdChtaWQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJlZV9yZWR1Y2Vfc3VtKGxlZnQpICsgdHJlZV9yZWR1Y2Vfc3VtKHJpZ2h0KQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgc3RhcnQgPSBjcmF0ZTo6JGVsZW1fdHk6 OkVQU0lMT047Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzY2FsYXJfcmVkdWN0 aW9uID0gMC4gYXMgJGVsZW1fdHk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCB2ID0gJGlkOjpzcGxhdCgwLiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGMgPSBpZiBpICUgMiA9PSAwIHsgMWUzIH0gZWxzZSB7IC0xLiB9OwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGFydCAqPSA6OmNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJ ICogYzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyX3JlZHVjdGlvbiArPSBz dGFydDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCBzdGFy dCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBzaW1kX3JlZHVjdGlvbiA9IHYuc3VtKCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhID0gWzAuIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIHYud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgYSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHRyZWVfcmVkdWN0aW9uID0gdHJlZV9yZWR1Y2Vfc3Vt KCZhKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0b2xlcmF0ZSAxIFVMUCBkaWZm ZXJlbmNlOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWRfYml0cyA9IHNpbWRfcmVk dWN0aW9uLnRvX2JpdHMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJlZV9iaXRz ID0gdHJlZV9yZWR1Y3Rpb24udG9fYml0cygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZF9iaXRzID4gdHJlZV9i aXRzIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZF9iaXRzIC0gdHJlZV9i aXRzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0cmVlX2JpdHMgLSByZWRfYml0cwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9IDwgMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlY3Rv cjogezo/fSB8IHNpbWRfcmVkdWN0aW9uOiB7Oj99IHwgXAotLXRyZWVfcmVkdWN0aW9uOiB7fSB8 IHNjYWxhcl9yZWR1Y3Rpb246IHt9IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ltZF9yZWR1Y3Rpb24sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRyZWVfcmVkdWN0aW9uLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2FsYXJfcmVkdWN0aW9uCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnVzZWQsIGRlYWRfY29kZSldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBwcm9kdWN0X3JvdW5kb2ZmKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSA6OmNvcmU6OmNvbnZlcnQ6OlRyeUludG87Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gUGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbgotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZuIHRyZWVfcmVkdWNlX3Byb2R1Y3QoYTogJlskZWxlbV90eV0pIC0+ICRlbGVtX3R5IHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5pc19lbXB0eSgpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYS5sZW4oKSA9PSAxIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFbMF0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIGlmIGEubGVuKCkgPT0gMiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhWzBdICogYVsxXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pZCA9IGEubGVuKCkgLyAyOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChsZWZ0LCByaWdodCkgPSBhLnNwbGl0 X2F0KG1pZCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlZHVjZV9w cm9kdWN0KGxlZnQpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0cmVl X3JlZHVjZV9wcm9kdWN0KHJpZ2h0KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgc3RhcnQgPSBjcmF0ZTo6JGVsZW1fdHk6OkVQU0lMT047Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBzY2FsYXJfcmVkdWN0aW9uID0gMS4gYXMgJGVsZW1fdHk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgwLiBhcyAkZWxl bV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGMgPSBpZiBpICUgMiA9PSAwIHsg MWUzIH0gZWxzZSB7IC0xLiB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCAq PSA6OmNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJICogYzsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NhbGFyX3JlZHVjdGlvbiAqPSBzdGFydDsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiA9IHYucmVwbGFjZShpLCBzdGFydCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kX3JlZHVjdGlvbiA9IHYucHJv ZHVjdCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9IFswLiBhcyAk ZWxlbV90eTsgJGlkOjpsYW5lcygpXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2LndyaXRl X3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IGEpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB0cmVlX3JlZHVjdGlvbiA9IHRyZWVfcmVkdWNlX3Byb2R1Y3QoJmEpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUb28gaW1wcmVjaXNlLCBldmVuIG9ubHkgZm9yIHBy b2R1Y3QoZjMyeDgpLgotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgaG93 IHRvIG5hcnJvdyB0aGlzIGRvd24uCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVscF9s aW1pdCA9ICRpZDo6bGFuZXMoKSAvIDI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJl ZF9iaXRzID0gc2ltZF9yZWR1Y3Rpb24udG9fYml0cygpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB0cmVlX2JpdHMgPSB0cmVlX3JlZHVjdGlvbi50b19iaXRzKCk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg cmVkX2JpdHMgPiB0cmVlX2JpdHMgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVkX2JpdHMgLSB0cmVlX2JpdHMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfYml0cyAtIHJlZF9iaXRz Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gPCB1bHBfbGltaXQudHJ5X2ludG8oKS51 bndyYXAoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlY3Rvcjogezo/fSB8IHNp bWRfcmVkdWN0aW9uOiB7Oj99IHwgXAotLXRyZWVfcmVkdWN0aW9uOiB7fSB8IHNjYWxhcl9yZWR1 Y3Rpb246IHt9IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2ltZF9yZWR1Y3Rpb24sCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRyZWVfcmVkdWN0aW9uLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2Fs YXJfcmVkdWN0aW9uCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL3JlZHVjdGlvbnMvaW50ZWdlcl9hcml0aG1ldGljLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvaW50ZWdlcl9hcml0aG1ldGljLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9pbnRl Z2VyX2FyaXRobWV0aWMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2ludGVn ZXJfYXJpdGhtZXRpYy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsMTkzICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFsIGludGVn ZXIgdmVjdG9yIGFyaXRobWV0aWMgcmVkdWN0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9y ZWR1Y3Rpb25faW50ZWdlcl9hcml0aG1ldGljIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVs ZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudAotLSAgICAgfCAkdGVz dF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBIb3Jp em9udGFsIHdyYXBwaW5nIHN1bSBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgaW50cmluc2ljIHBlcmZvcm1zIGEgdHJlZS1yZWR1 Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAgICAgICAvLy8gVGhhdCBpcywg Zm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vID4gKCh4MCArIHgxKSArICh4MiArIHgzKSkgKyAoKHg0ICsgeDUpICsgKHg2ICsgeDcpKQot LSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBhbiBvcGVyYXRpb24gb3ZlcmZs b3dzIGl0IHJldHVybnMgdGhlIG1hdGhlbWF0aWNhbCByZXN1bHQKLS0gICAgICAgICAgICAvLy8g bW9kdWxvIGAyXm5gIHdoZXJlIGBuYCBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIGl0IG92ZXJmbG93 cy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3JhcHBpbmdf c3VtKHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdl dF9hcmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYWRkX29yZGVyZWQ7Ci0tICAgICAg ICAgICAgICAgICAgICBsZXQgdjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfYWRk X29yZGVyZWQoc2VsZi4wLCAwIGFzICRpZWxlbV90eSkgfTsKLS0gICAgICAgICAgICAgICAgICAg IHYgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAotLSAgICAgICAgICAgICAg ICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L2lzc3Vlcy8xNQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0 KDApIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjps YW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB4ID0geC53cmFwcGluZ19hZGQoc2Vs Zi5leHRyYWN0KGkpIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAvLy8gSG9yaXpvbnRhbCB3cmFwcGluZyBwcm9kdWN0IG9mIHRoZSB2ZWN0 b3IgZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSBpbnRy aW5zaWMgcGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbiBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgot LSAgICAgICAgICAgIC8vLyBUaGF0IGlzLCBmb3IgYW4gOCBlbGVtZW50IHZlY3RvcjoKLS0gICAg ICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gPiAoKHgwICogeDEpICogKHgyICogeDMpKSAq ICgoeDQgKiB4NSkgKiAoeDYgKiB4NykpCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vIElmIGFuIG9wZXJhdGlvbiBvdmVyZmxvd3MgaXQgcmV0dXJucyB0aGUgbWF0aGVtYXRpY2Fs IHJlc3VsdAotLSAgICAgICAgICAgIC8vLyBtb2R1bG8gYDJebmAgd2hlcmUgYG5gIGlzIHRoZSBu dW1iZXIgb2YgdGltZXMgaXQgb3ZlcmZsb3dzLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19wcm9kdWN0KHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0g ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCi0tICAg ICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2lt ZF9yZWR1Y2VfbXVsX29yZGVyZWQ7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdjogJGllbGVt X3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfbXVsX29yZGVyZWQoc2VsZi4wLCAxIGFzICRpZWxl bV90eSkgfTsKLS0gICAgICAgICAgICAgICAgICAgIHYgYXMgJGVsZW1fdHkKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0Iild Ci0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9r ZW4gb24gQUFyY2g2NAotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQotLSAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5OwotLSAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB4ID0geC53cmFwcGluZ19tdWwoc2VsZi5leHRyYWN0KGkpIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwg Y3JhdGU6Oml0ZXI6OlN1bSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBzdW08STogSXRlcmF0b3I8SXRlbSA9ICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7 Ci0tICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDApLCBjcmF0ZTo6b3BzOjpB ZGQ6OmFkZCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNy YXRlOjppdGVyOjpQcm9kdWN0IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9ICRpZD4+KGl0ZXI6IEkpIC0+ ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDEpLCBjcmF0ZTo6 b3BzOjpNdWw6Om11bCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBp bXBsPCdhPiBjcmF0ZTo6aXRlcjo6U3VtPCYnYSAkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHN1bTxJOiBJdGVyYXRvcjxJdGVtID0gJidhICRp ZD4+KGl0ZXI6IEkpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNw bGF0KDApLCB8YSwgYnwgY3JhdGU6Om9wczo6QWRkOjphZGQoYSwgKmIpKQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8J2E+IGNyYXRlOjppdGVyOjpQcm9kdWN0 PCYnYSAkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9ICYnYSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQg ewotLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgxKSwgfGEsIGJ8IGNyYXRl OjpvcHM6Ok11bDo6bXVsKGEsICpiKSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0t ICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9u X2ludF9hcml0aD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0KLS0g ICAgICAgICAgICAgICAgICAgIGZuIGFsdGVybmF0aW5nKHg6IHVzaXplKSAtPiAkaWQgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIHggPT0gMCB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIDIgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4g d3JhcHBpbmdfc3VtKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpz cGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYud3JhcHBpbmdfc3VtKCksIDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYud3JhcHBpbmdfc3VtKCksICRpZDo6bGFuZXMoKSBhcyAkZWxl bV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSBhbHRlcm5hdGluZygyKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYud3JhcHBpbmdfc3VtKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoJGlkOjpsYW5lcygpIC8gMiArICRpZDo6bGFuZXMoKSkgYXMgJGVsZW1fdHkKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdi53cmFwcGluZ19zdW0oKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDIgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg IGZuIHdyYXBwaW5nX3N1bV9vdmVyZmxvdygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgc3RhcnQgPSAkZWxlbV90eTo6bWF4X3ZhbHVlKCkKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLSAoJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5IC8gMik7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KHN0YXJ0IGFzICRlbGVtX3R5KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdndyYXBwaW5nX3N1bSA9IHYud3JhcHBpbmdfc3VtKCk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB3cmFwcGluZ19zdW0gPSBzdGFy dDsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgXyBpbiAxLi4kaWQ6OmxhbmVzKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGluZ19zdW0gPSB3cmFwcGluZ19zdW0u d3JhcHBpbmdfYWRkKHN0YXJ0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh3cmFwcGluZ19zdW0sIHZ3cmFwcGluZ19zdW0s ICJ2ID0gezo/fSIsIHYpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cmFwcGluZ19wcm9k dWN0KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgwIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYud3JhcHBp bmdfcHJvZHVjdCgpLCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LndyYXBwaW5nX3Byb2R1Y3QoKSwgMSBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSBtYXRjaCAkaWQ6OmxhbmVzKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICA2NCA9PiAxNiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgMzIgPT4gOCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYgPT4gNCwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgXyA9PiAyLAotLSAgICAgICAgICAgICAgICAgICAg ICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSBhbHRlcm5hdGluZyhmKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYud3JhcHBpbmdfcHJvZHVjdCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDJfdXNpemUucG93KCgkaWQ6OmxhbmVzKCkgLyBmKSBhcyB1MzIpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYud3JhcHBpbmdfcHJvZHVjdCgpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMiBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4g d3JhcHBpbmdfcHJvZHVjdF9vdmVyZmxvdygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgc3RhcnQgPSAkZWxlbV90eTo6bWF4X3ZhbHVlKCkKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLSAoJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5IC8gMik7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KHN0YXJ0IGFzICRlbGVtX3R5KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdm11bCA9IHYud3JhcHBpbmdfcHJvZHVjdCgpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgbXVsID0gc3RhcnQ7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIF8gaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbXVsID0gbXVsLndyYXBwaW5nX211bChzdGFydCk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobXVs LCB2bXVsLCAidiA9IHs6P30iLCB2KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMv bWFzay5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25z L21hc2sucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1 Y3Rpb25zL21hc2sucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21hc2sucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDg5ICswLDAgQEAKLS0v LyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFsIG1hc2sgcmVkdWN0aW9ucy4KLS0KLS1t YWNyb19ydWxlcyEgaW1wbF9yZWR1Y3Rpb25fbWFzayB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAg ICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBBcmUgYGFsbGAgdmVjdG9yIGxhbmVzIGB0 cnVlYD8KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gYWxsKHNl bGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6Y29kZWdlbjo6 cmVkdWN0aW9uczo6bWFzazo6QWxsOjphbGwoc2VsZikgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAvLy8gSXMgYGFueWAgdmVjdG9yIGxhbmUgYHRydWVgPwotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAg ICAgICAgICAgIHVuc2FmZSB7IGNyYXRlOjpjb2RlZ2VuOjpyZWR1Y3Rpb25zOjptYXNrOjpBbnk6 OmFueShzZWxmKSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgIC8vLyBBcmUgYGFsbGAg dmVjdG9yIGxhbmVzIGBmYWxzZWA/Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgcHViIGZuIG5vbmUoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICFzZWxmLmFu eSgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewot LSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAg ICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbj5dIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgZm4gYWxsKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KGEuYWxsKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdChm YWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5hbGwoKSk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCBmYWxzZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmFsbCgpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQoZmFsc2Up OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCB0cnVl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEuYWxsKCkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICBmbiBhbnkoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydCEoYS5hbnkoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNw bGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmFueSgpKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksIGZhbHNl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYS5hbnkoKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZh bHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwg dHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEuYW55KCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBub25lKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKCFhLm5vbmUoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAk aWQ6OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEubm9u ZSgpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQo dHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGks IGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEubm9u ZSgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6 c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVw bGFjZShpLCB0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo IWEubm9uZSgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWluX21heC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9t YXgucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rp b25zL21pbl9tYXgucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM2MCArMCwwIEBA Ci0tLy8hIEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCB2ZWN0b3IgbWluL21heCByZWR1 Y3Rpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVjdGlvbl9taW5fbWF4IHsKLS0gICAg KFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudAotLSAgICAgfCAk aWVsZW1fdHk6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewot LSAgICAgICAgICAgIC8vLyBMYXJnZXN0IHZlY3RvciBlbGVtZW50IHZhbHVlLgotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBtYXhfZWxlbWVudChzZWxmKSAtPiAk ZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdChhbnkoCi0tICAgICAgICAgICAg ICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKLS0gICAgICAgICAgICAgICAgICAgIHRh cmdldF9hcmNoID0gImFybSIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJw b3dlcnBjNjQiLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwK LS0gICAgICAgICAgICAgICAgKSkpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX21heDsKLS0gICAgICAgICAgICAg ICAgICAgIGxldCB2OiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9tYXgoc2VsZi4w KSB9OwotLSAgICAgICAgICAgICAgICAgICAgdiBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKGFueSgKLS0gICAgICAgICAgICAgICAgICAgIHRh cmdldF9hcmNoID0gImFhcmNoNjQiLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2gg PSAiYXJtIiwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIs Ci0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAotLSAgICAgICAg ICAgICAgICApKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgLy8g RklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0Ci0tICAgICAgICAgICAgICAgICAgICAvLyBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1Ci0tICAg ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIFdBU00zMgotLSAgICAgICAgICAg ICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL2lzc3Vlcy85MQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRy YWN0KDApOwotLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICB4ID0geC5tYXgoc2VsZi5leHRyYWN0KGkpKTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gU21hbGxlc3QgdmVj dG9yIGVsZW1lbnQgdmFsdWUuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIGZuIG1pbl9lbGVtZW50KHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAg I1tjZmcobm90KGFueSgKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFhcmNo NjQiLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKLS0gICAgICAg ICAgICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODYiLCBub3QodGFyZ2V0X2ZlYXR1cmUg PSAic3NlMiIpKSwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2 NCIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAotLSAgICAg ICAgICAgICAgICApLCkpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX21pbjsKLS0gICAgICAgICAgICAgICAgICAg IGxldCB2OiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9taW4oc2VsZi4wKSB9Owot LSAgICAgICAgICAgICAgICAgICAgdiBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICNbY2ZnKGFueSgKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9h cmNoID0gImFhcmNoNjQiLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJt IiwKLS0gICAgICAgICAgICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODYiLCBub3QodGFy Z2V0X2ZlYXR1cmUgPSAic3NlMiIpKSwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNo ID0gInBvd2VycGM2NCIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLAotLSAgICAgICAgICAgICAgICApKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0Ci0tICAgICAgICAgICAgICAg ICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv aXNzdWVzLzE1Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIGk1ODYt dW5rbm93bi1saW51eC1nbnUKLS0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjIKLS0gICAgICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gV0FTTTMyCi0tICAgICAgICAgICAgICAgICAg ICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzkxCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCk7 Ci0tICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIHggPSB4Lm1pbihzZWxmLmV4dHJhY3QoaSkpOwotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiEgeyR0ZXN0X3R0 OgotLSAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1 c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KLS0gICAgICAgICAgICAj W2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9y ZWR1Y3Rpb25fbWluX21heD5dIHsKLS0gICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCi0tICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICBwdWIgZm4gbWF4X2VsZW1lbnQo KSB7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgMCBh cyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgxLCAxIGFzICRlbGVt X3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQo KSwgMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAyIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAg ICAgICBwdWIgZm4gbWluX2VsZW1lbnQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdiA9 ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYubWluX2VsZW1lbnQoKSwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAg ICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9 IHYucmVwbGFjZSgxLCAxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAyIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAxIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIDIgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5l cygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDIg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNl KDEsIDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo di5taW5fZWxlbWVudCgpLCAxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIHRlc3RfcmVkdWN0aW9uX2Zsb2F0X21p bl9tYXggewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlk ZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAg ICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAg ICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5n ZS4KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCi0tICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbl9taW5fbWF4X25hbj5dIHsKLS0gICAg ICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gbWluX2VsZW1lbnRfdGVzdCgpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbiA9IGNyYXRlOjokZWxlbV90eTo6TkFOOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobi5taW4oLTMuKSwgLTMuKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCgtMy4gYXMgJGVsZW1fdHkpLm1pbihuKSwg LTMuKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNwbGF0KC0z Lik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldF93aXRoX2Jyb2tlbl9s YXN0X2xhbmVfbmFuID0gIWNmZyEoYW55KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 YXJnZXRfYXJjaCA9ICJhcm0iLCB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gIng4NiIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBub3QodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh cmdldF9hcmNoID0gInBvd2VycGM2NCIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh cmdldF9hcmNoID0gIndhc20zMiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHZlY3RvciBpcyBpbml0aWFsaXplZCB0byBg LTMuYHM6IFstMywgLTMsIC0zLCAtM10KLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBy ZXBsYWNlIHRoZSBpLXRoIGVsZW1lbnQgb2YgdGhlIHZlY3RvciB3aXRoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGBOYU5gOiBbLTMsIC0zLCAtMywgTmFOXQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB2MC5yZXBsYWNlKGksIG4pOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgTmFOIGlzIGluIHRoZSBsYXN0IHBsYWNl LCB0aGUgTExWTQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlv biBvZiB0aGVzZSBtZXRob2RzIGlzIGJyb2tlbiBvbiBzb21lCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHRhcmdldHM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkg PT0gJGlkOjpsYW5lcygpIC0gMSAmJgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGFyZ2V0X3dpdGhfYnJva2VuX2xhc3RfbGFuZV9uYW4gewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAtMy4sCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0FdOiBuYW4gYXQge30gPT4g e30gfCB7Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGksIHYubWluX2VsZW1lbnQoKSwgdik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIHZlY3RvcgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXAtdG8gdGhlIGBpLXRoYCBsYW5lIHdp dGggYE5hTmBzLCB0aGUgcmVzdWx0Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBpcyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNzIGFsbCBlbGVtZW50cyBvZgotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHZlY3RvciBhcmUgYE5hTmBzOgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBqID09IGktMSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5taW5fZWxlbWVudCgpLmlzX25hbigp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltCXTogbmFu IGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAtMy4sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0JdOiBuYW4gYXQge30gPT4ge30gfCB7 Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYu bWluX2VsZW1lbnQoKSwgdik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGRvbmUgaGVyZSwgc2luY2Ugd2Ugd2VyZSBpbiB0 aGUgbGFzdAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZSB3aGljaCBp cyB0aGUgbGFzdCBpdGVyYXRpb24gb2YgdGhlIGxvb3AuCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhawotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBub3QgaW4gdGhlIGxhc3QgbGFuZSwg YW5kIHRoZXJlIGlzIG9ubHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25lIGBO YU5gIGluIHRoZSB2ZWN0b3IuCi0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElm IHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgcmVzdWx0IGlzIGBOYU5gOgotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPT0gMSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltDXTogYWxsIG5hbnMgfCB2 PXs6P30gfCBtaW49e30gfCBcCi0taXNfbmFuOiB7fSIsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYsIHYubWluX2VsZW1lbnQoKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdi5taW5fZWxlbWVudCgpLmlzX25hbigpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQW5kIHdlIGFyZSBkb25lLCBzaW5jZSB0aGUgdmVjdG9yIG9ubHkgaGFzCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmUgbGFuZSBhbnl3YXlzLgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHZlY3Rv ciBoYXMgbW9yZSB0aGFuIG9uZSBsYW5lLCBzaW5jZSB0aGVyZSBpcwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBvbmx5IG9uZSBgTmFOYCBpbiB0aGUgdmVjdG9yLCB0aGUgcmVzdWx0 IGlzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBgLTNgLgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgLTMuLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbRF06IG5hbiBhdCB7fSA9 PiB7fSB8IHs6P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGks IHYubWluX2VsZW1lbnQoKSwgdik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IElmIHdlIHJlcGxhY2UgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgdmVjdG9yCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHVwLXRvIHRoZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5gcywg dGhlIHJlc3VsdCBpcwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGlsbCBhbHdh eXMgYC0zLmAgdW5sZXNzIGFsbCBlbGVtZW50cyBvZiB0aGUKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gdmVjdG9yIGFyZSBgTmFOYHM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBqIGluIDAuLmkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9 IHYucmVwbGFjZShqLCBuKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IGkgPT0gJGlkOjpsYW5lcygpIC0gMSAmJiBqID09IGkgLSAxIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBBbGwgZWxlbWVudHMgb2YgdGhlIHZlY3RvciBhcmUgYE5h TmBzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlZm9yZSB0 aGUgcmVzdWx0IGlzIE5hTiBhcyB3ZWxsLgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTog dGhlICNsYW5lcyBvZiB0aGUgdmVjdG9yIGlzID4gMSwgc28KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAiaSAtIDEiIGRvZXMgbm90IG92ZXJmbG93LgotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5taW5fZWxlbWVudCgpLmlzX25h bigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltFXTog YWxsIG5hbnMgfCB2PXs6P30gfCBtaW49e30gfCBcCi0taXNfbmFuOiB7fSIsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LCB2Lm1pbl9lbGVtZW50KCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Lm1pbl9lbGVtZW50 KCkuaXNfbmFuKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgbm9uLWBO YU5gIGVsZW1lbnRzIGluIHRoZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHZlY3RvciwgdGhlcmVmb3JlIHRoZSByZXN1bHQgaXMgYC0zLmA6Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbRl06IG5h biBhdCB7fSA9PiB7fSB8IHs6P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaSwgdi5taW5fZWxlbWVudCgpLCB2KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0 aGUgdmVjdG9yIGNvbnRhaW5zIGFsbCBOYU5zIHRoZSByZXN1bHQgaXMgTmFOOgotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEoJGlkOjpzcGxhdChuKS5taW5fZWxlbWVudCgpLmlzX25h bigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbCBuYW5zIHwgdj17Oj99 IHwgbWluPXt9IHwgaXNfbmFuOiB7fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkaWQ6OnNwbGF0KG4pLCAkaWQ6OnNwbGF0KG4pLm1pbl9lbGVtZW50KCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KG4pLm1pbl9lbGVtZW50KCkuaXNfbmFu KCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBtYXhfZWxlbWVudF90ZXN0KCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBuID0gY3JhdGU6OiRlbGVtX3R5OjpOQU47Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShuLm1heCgtMy4pLCAtMy4pOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoKC0zLiBhcyAkZWxlbV90eSkubWF4KG4pLCAt My4pOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MCA9ICRpZDo6c3BsYXQoLTMu KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3dpdGhfYnJva2VuX2xh c3RfbGFuZV9uYW4gPSAhY2ZnIShhbnkoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh cmdldF9hcmNoID0gImFybSIsIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLCB0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFRoZSB2ZWN0b3IgaXMgaW5pdGlhbGl6ZWQgdG8gYC0zLmBzOiBbLTMs IC0zLCAtMywgLTNdCi0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjps YW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgcmVwbGFjZSB0aGUg aS10aCBlbGVtZW50IG9mIHRoZSB2ZWN0b3Igd2l0aAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBgTmFOYDogWy0zLCAtMywgLTMsIE5hTl0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB2ID0gdjAucmVwbGFjZShpLCBuKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gSWYgdGhlIE5hTiBpcyBpbiB0aGUgbGFzdCBwbGFjZSwgdGhlIExMVk0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24gb2YgdGhlc2Ug bWV0aG9kcyBpcyBicm9rZW4gb24gc29tZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyB0YXJnZXRzOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6bGFu ZXMoKSAtIDEgJiYKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfd2l0aF9i cm9rZW5fbGFzdF9sYW5lX25hbiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiW0FdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5tYXhfZWxlbWVudCgpLCB2KTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlcGxhY2UgYWxs IHRoZSBlbGVtZW50cyBpbiB0aGUgdmVjdG9yCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0aCBgTmFOYHMsIHRoZSByZXN1bHQKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIHN0aWxsIGFsd2F5cyBgLTMuYCB1 bmxlc3MgYWxsIGVsZW1lbnRzIG9mCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyB0aGUgdmVjdG9yIGFyZSBgTmFOYHM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb3IgaiBpbiAwLi5pIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ID0gdi5yZXBsYWNlKGosIG4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGogPT0gaS0xIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJbQl06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVu dCgpLCAtMy4sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi W0JdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQoKSwgdik7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGRvbmUg aGVyZSwgc2luY2Ugd2Ugd2VyZSBpbiB0aGUgbGFzdAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gbGFuZSB3aGljaCBpcyB0aGUgbGFzdCBpdGVyYXRpb24gb2YgdGhlIGxvb3Au Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFy ZSBub3QgaW4gdGhlIGxhc3QgbGFuZSwgYW5kIHRoZXJlIGlzIG9ubHkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gb25lIGBOYU5gIGluIHRoZSB2ZWN0b3IuCi0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgcmVz dWx0IGlzIGBOYU5gOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVz KCkgPT0gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWF4 X2VsZW1lbnQoKS5pc19uYW4oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIltDXTogYWxsIG5hbnMgfCB2PXs6P30gfCBtaW49e30gfCBcCi0taXNfbmFuOiB7fSIs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsIHYubWF4X2VsZW1l bnQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5tYXhfZWxl bWVudCgpLmlzX25hbigpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IEFuZCB3ZSBhcmUgZG9uZSwgc2luY2UgdGhlIHZlY3RvciBvbmx5IGhhcwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gb25lIGxhbmUgYW55d2F5cy4KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2ZWN0b3IgaGFzIG1vcmUg dGhhbiBvbmUgbGFuZSwgc2luY2UgdGhlcmUgaXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gb25seSBvbmUgYE5hTmAgaW4gdGhlIHZlY3RvciwgdGhlIHJlc3VsdCBpcwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgYC0zYC4KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIC0zLiwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0RdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99 IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1heF9lbGVt ZW50KCksIHYpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBs YWNlIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIHZlY3RvcgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0aCBgTmFOYHMsIHRoZSByZXN1bHQg aXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgYWx3YXlzIGAtMy5gIHVu bGVzcyBhbGwgZWxlbWVudHMgb2YgdGhlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IHZlY3RvciBhcmUgYE5hTmBzOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBp biAwLi5pIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uo aiwgbik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6 bGFuZXMoKSAtIDEgJiYgaiA9PSBpIC0gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQWxsIGVsZW1lbnRzIG9mIHRoZSB2ZWN0b3IgYXJlIGBOYU5gcywKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZWZvcmUgdGhlIHJlc3VsdCBp cyBOYU4gYXMgd2VsbC4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSAjbGFuZXMg b2YgdGhlIHZlY3RvciBpcyA+IDEsIHNvCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gImkgLSAxIiBkb2VzIG5vdCBvdmVyZmxvdy4KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbRV06IGFsbCBuYW5zIHwg dj17Oj99IHwgbWF4PXt9IHwgXAotLWlzX25hbjoge30iLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdiwgdi5tYXhfZWxlbWVudCgpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5tYXhfZWxlbWVudCgpLmlzX25hbigp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIG5vbi1gTmFOYCBlbGVtZW50 cyBpbiB0aGUKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0b3Is IHRoZXJlZm9yZSB0aGUgcmVzdWx0IGlzIGAtMy5gOgotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAtMy4sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0ZdOiBuYW4gYXQge30gPT4g e30gfCB7Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGksIHYubWF4X2VsZW1lbnQoKSwgdik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3RvciBj b250YWlucyBhbGwgTmFOcyB0aGUgcmVzdWx0IGlzIE5hTjoKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKCRpZDo6c3BsYXQobikubWF4X2VsZW1lbnQoKS5pc19uYW4oKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGwgbmFucyB8IHY9ezo/fSB8IG1heD17fSB8 IGlzX25hbjoge30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxh dChuKSwgJGlkOjpzcGxhdChuKS5tYXhfZWxlbWVudCgpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGlkOjpzcGxhdChuKS5tYXhfZWxlbWVudCgpLmlzX25hbigpKTsKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvcmVkdWN0aW9ucy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rp b25zLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMiArMCww IEBACi0tLy8hIFJlZHVjdGlvbnMKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgZmxvYXRfYXJpdGht ZXRpYzsKLS0jW21hY3JvX3VzZV0KLS1tb2QgaW50ZWdlcl9hcml0aG1ldGljOwotLSNbbWFjcm9f dXNlXQotLW1vZCBiaXR3aXNlOwotLSNbbWFjcm9fdXNlXQotLW1vZCBtYXNrOwotLSNbbWFjcm9f dXNlXQotLW1vZCBtaW5fbWF4OwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9zZWxlY3QucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvc2VsZWN0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvc2VsZWN0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2VsZWN0LnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3MyArMCwwIEBACi0tLy8hIEltcGxlbWVu dHMgbWFzaydzIGBzZWxlY3RgLgotLQotLS8vLyBJbXBsZW1lbnRzIG1hc2sgc2VsZWN0IG1ldGhv ZAotLW1hY3JvX3J1bGVzISBpbXBsX3NlbGVjdCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAg aW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBTZWxlY3RzIGVsZW1lbnRzIG9mIGBhYCBhbmQg YGJgIHVzaW5nIG1hc2suCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSBs YW5lcyBvZiB0aGUgcmVzdWx0IGZvciB3aGljaCB0aGUgbWFzayBpcyBgdHJ1ZWAgY29udGFpbgot LSAgICAgICAgICAgIC8vLyB0aGUgdmFsdWVzIG9mIGBhYC4gVGhlIHJlbWFpbmluZyBsYW5lcyBj b250YWluIHRoZSB2YWx1ZXMgb2YKLS0gICAgICAgICAgICAvLy8gYGJgLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBzZWxlY3Q8VD4oc2VsZiwgYTogU2ltZDxU PiwgYjogU2ltZDxUPikgLT4gU2ltZDxUPgotLSAgICAgICAgICAgIHdoZXJlCi0tICAgICAgICAg ICAgICAgIFQ6IHNlYWxlZDo6U2ltZEFycmF5PE5UID0gPFskZWxlbV90eTsgJGVsZW1fY291bnRd IGFzIHNlYWxlZDo6U2ltZEFycmF5Pjo6TlQ+LAotLSAgICAgICAgICAgIHsKLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3NlbGVjdDsKLS0gICAgICAgICAgICAgICAgU2lt ZCh1bnNhZmUgeyBzaW1kX3NlbGVjdChzZWxmLjAsIGEuMCwgYi4wKSB9KQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3Rfc2VsZWN0IShib29sLCAkaWQsICRpZCwg KGZhbHNlLCB0cnVlKSB8ICR0ZXN0X3R0KTsKLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMh IHRlc3Rfc2VsZWN0IHsKLS0gICAgKAotLSAgICAgICAgJGVsZW1fdHk6aWRlbnQsCi0tICAgICAg ICAkbWFza190eTppZGVudCwKLS0gICAgICAgICR2ZWNfdHk6aWRlbnQsKCRzbWFsbDpleHByLCAk bGFyZ2U6ZXhwcikgfAotLSAgICAgICAgJHRlc3RfdHQ6dHQKLS0gICAgKSA9PiB7Ci0tICAgICAg ICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCR2ZWNfdHkgX3NlbGVjdD5dIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBzZWxlY3QoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG8gPSAkc21hbGwgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQg PSAkbGFyZ2UgYXMgJGVsZW1fdHk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEg PSAkdmVjX3R5OjpzcGxhdChvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICR2 ZWNfdHk6OnNwbGF0KHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtID0gYS5sdChi KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0uc2VsZWN0KGEsIGIpLCBh KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IGIubHQoYSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLnNlbGVjdChiLCBhKSwgYSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBjID0gYTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IGQgPSBiOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgbV9l ID0gJG1hc2tfdHk6OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kdmVjX3R5OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY190 bXAgPSBjLmV4dHJhY3QoaSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0g Yy5yZXBsYWNlKGksIGQuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkID0gZC5yZXBsYWNlKGksIGNfdG1wKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZSA9IG1fZS5y ZXBsYWNlKGksIHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtID0g Yy5sdChkKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG1fZSwgbSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLnNlbGVjdChjLCBkKSwgYSk7Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL3NodWZmbGUucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9zaHVmZmxlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZS5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTg0ICswLDAgQEAKLS0v LyEgSW1wbGVtZW50cyBwb3J0YWJsZSB2ZWN0b3Igc2h1ZmZsZXMgd2l0aCBpbW1lZGlhdGUgaW5k aWNlcy4KLS0KLS0vLyBGSVhNRTogY29tcHJlaGVuc2l2ZSB0ZXN0cwotLS8vIGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjAKLS0KLS0vLy8g U2h1ZmZsZXMgdmVjdG9yIGVsZW1lbnRzLgotLS8vLwotLS8vLyBUaGlzIG1hY3JvIHJldHVybnMg YSBuZXcgdmVjdG9yIHRoYXQgY29udGFpbnMgYSBzaHVmZmxlIG9mIHRoZSBlbGVtZW50cyBpbgot LS8vLyBvbmUgKGBzaHVmZmxlISh2ZWMsIFtpbmRpY2VzLi4uXSlgKSBvciB0d28gKGBzaHVmZmxl ISh2ZWMwLCB2ZWMxLAotLS8vLyBbaW5kaWNlcy4uLl0pYCkgaW5wdXQgdmVjdG9ycy4KLS0vLy8K LS0vLy8gVGhlIHR5cGUgb2YgYHZlYzBgIGFuZCBgdmVjMWAgbXVzdCBiZSBlcXVhbCwgYW5kIHRo ZSBlbGVtZW50IHR5cGUgb2YgdGhlCi0tLy8vIHJlc3VsdGluZyB2ZWN0b3IgaXMgdGhlIGVsZW1l bnQgdHlwZSBvZiB0aGUgaW5wdXQgdmVjdG9yLgotLS8vLwotLS8vLyBUaGUgbnVtYmVyIG9mIGBp bmRpY2VzYCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvIGluIHJhbmdlIGBbMCwgNjQpYCwgc2luY2UK LS0vLy8gY3VycmVudGx5LCB0aGUgbGFyZ2VzdCB2ZWN0b3Igc3VwcG9ydGVkIGJ5IHRoZSBsaWJy YXJ5IGhhcyA2NCBsYW5lcy4gVGhlCi0tLy8vIGxlbmd0aCBvZiB0aGUgcmVzdWx0aW5nIHZlY3Rv ciBlcXVhbHMgdGhlIG51bWJlciBvZiBpbmRpY2VzIHByb3ZpZGVkLgotLS8vLwotLS8vLyBUaGUg aW5kaWNlcyBtdXN0IGJlIGluIHJhbmdlIGBbMCwgTSAqIE4pYCB3aGVyZSBgTWAgaXMgdGhlIG51 bWJlciBvZiBpbnB1dAotLS8vLyB2ZWN0b3JzIChgMWAgb3IgYDJgKSBhbmQgYE5gIGlzIHRoZSBu dW1iZXIgb2YgbGFuZXMgb2YgdGhlIGlucHV0IHZlY3RvcnMuCi0tLy8vIFRoZSBpbmRpY2VzIGBp YCBpbiByYW5nZSBgWzAsIE4pYCByZWZlciB0byB0aGUgYGlgLXRoIGVsZW1lbnQgb2YgYHZlYzBg LAotLS8vLyB3aGlsZSB0aGUgaW5kaWNlcyBpbiByYW5nZSBgW04sIDIqTilgIHJlZmVyIHRvIHRo ZSBgaSAtIE5gLXRoIGVsZW1lbnQgb2YKLS0vLy8gYHZlYzFgLgotLS8vLwotLS8vLyAjIEV4YW1w bGVzCi0tLy8vCi0tLy8vIFNodWZmbGluZyBlbGVtZW50cyBvZiB0d28gdmVjdG9yczoKLS0vLy8K LS0vLy8gYGBgCi0tLy8vICMgdXNlIHBhY2tlZF9zaW1kOjoqOwotLS8vLyAjIGZuIG1haW4oKSB7 Ci0tLy8vIC8vIFNodWZmbGUgYWxsb3dzIHJlb3JkZXJpbmcgdGhlIGVsZW1lbnRzOgotLS8vLyBs ZXQgeCA9IGkzMng0OjpuZXcoMSwgMiwgMywgNCk7Ci0tLy8vIGxldCB5ID0gaTMyeDQ6Om5ldyg1 LCA2LCA3LCA4KTsKLS0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCB5LCBbNCwgMCwgNSwgMV0pOwot LS8vLyBhc3NlcnRfZXEhKHIsIGkzMng0OjpuZXcoNSwgMSwgNiwgMikpOwotLS8vLwotLS8vLyAv LyBUaGUgcmVzdWx0aW5nIHZlY3RvciBjYW4gYWxzIGJlIHNtYWxsZXIgdGhhbiB0aGUgaW5wdXQ6 Ci0tLy8vIGxldCByID0gc2h1ZmZsZSEoeCwgeSwgWzEsIDZdKTsKLS0vLy8gYXNzZXJ0X2VxIShy LCBpMzJ4Mjo6bmV3KDIsIDcpKTsKLS0vLy8KLS0vLy8gLy8gT3IgbGFyZ2VyOgotLS8vLyBsZXQg ciA9IHNodWZmbGUhKHgsIHksIFsxLCAzLCA0LCAyLCAxLCA3LCAyLCAyXSk7Ci0tLy8vIGFzc2Vy dF9lcSEociwgaTMyeDg6Om5ldygyLCA0LCA1LCAzLCAyLCA4LCAzLCAzKSk7Ci0tLy8vIC8vIEF0 IG1vc3QgMiAqIHRoZSBudW1iZXIgb2YgbGFuZXMgaW4gdGhlIGlucHV0IHZlY3Rvci4KLS0vLy8g IyB9Ci0tLy8vIGBgYAotLS8vLwotLS8vLyBTaHVmZmxpbmcgZWxlbWVudHMgb2Ygb25lIHZlY3Rv cjoKLS0vLy8KLS0vLy8gYGBgCi0tLy8vICMgdXNlIHBhY2tlZF9zaW1kOjoqOwotLS8vLyAjIGZu IG1haW4oKSB7Ci0tLy8vIC8vIFNodWZmbGUgYWxsb3dzIHJlb3JkZXJpbmcgdGhlIGVsZW1lbnRz IG9mIGEgdmVjdG9yOgotLS8vLyBsZXQgeCA9IGkzMng0OjpuZXcoMSwgMiwgMywgNCk7Ci0tLy8v IGxldCByID0gc2h1ZmZsZSEoeCwgWzIsIDEsIDMsIDBdKTsKLS0vLy8gYXNzZXJ0X2VxIShyLCBp MzJ4NDo6bmV3KDMsIDIsIDQsIDEpKTsKLS0vLy8KLS0vLy8gLy8gVGhlIHJlc3VsdGluZyB2ZWN0 b3IgY2FuIGJlIHNtYWxsZXIgdGhhbiB0aGUgaW5wdXQ6Ci0tLy8vIGxldCByID0gc2h1ZmZsZSEo eCwgWzEsIDNdKTsKLS0vLy8gYXNzZXJ0X2VxIShyLCBpMzJ4Mjo6bmV3KDIsIDQpKTsKLS0vLy8K LS0vLy8gLy8gRXF1YWw6Ci0tLy8vIGxldCByID0gc2h1ZmZsZSEoeCwgWzEsIDMsIDIsIDBdKTsK LS0vLy8gYXNzZXJ0X2VxIShyLCBpMzJ4NDo6bmV3KDIsIDQsIDMsIDEpKTsKLS0vLy8KLS0vLy8g Ly8gT3IgbGFyZ2VyOgotLS8vLyBsZXQgciA9IHNodWZmbGUhKHgsIFsxLCAzLCAyLCAyLCAxLCAz LCAyLCAyXSk7Ci0tLy8vIGFzc2VydF9lcSEociwgaTMyeDg6Om5ldygyLCA0LCAzLCAzLCAyLCA0 LCAzLCAzKSk7Ci0tLy8vIC8vIEF0IG1vc3QgMiAqIHRoZSBudW1iZXIgb2YgbGFuZXMgaW4gdGhl IGlucHV0IHZlY3Rvci4KLS0vLy8gIyB9Ci0tLy8vIGBgYAotLSNbbWFjcm9fZXhwb3J0XQotLW1h Y3JvX3J1bGVzISBzaHVmZmxlIHsKLS0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsIFskbDA6 ZXhwciwgJGwxOmV4cHJdKSA9PiB7ewotLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0K LS0gICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19z aHVmZmxlX3ZlY3RvcjI6Ojx7WyRsMCwgJGwxXX0sIF8sIF8+KAotLSAgICAgICAgICAgICAgICAk dmVjMC4wLAotLSAgICAgICAgICAgICAgICAkdmVjMS4wLAotLSAgICAgICAgICAgICkpCi0tICAg ICAgICB9Ci0tICAgIH19OwotLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwgWyRsMDpleHBy LCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHByXSkgPT4ge3sKLS0gICAgICAgICNbYWxsb3co dW51c2VkX3Vuc2FmZSldCi0tICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICRjcmF0ZTo6 U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3I0Ojo8e1skbDAsICRsMSwgJGwyLCAkbDNdfSwg XywgXz4oCi0tICAgICAgICAgICAgICAgICR2ZWMwLjAsCi0tICAgICAgICAgICAgICAgICR2ZWMx LjAsCi0tICAgICAgICAgICAgKSkKLS0gICAgICAgIH0KLS0gICAgfX07Ci0tICAgICgkdmVjMDpl eHByLCAkdmVjMTpleHByLAotLSAgICAgWyRsMDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIsICRs MzpleHByLAotLSAgICAgICRsNDpleHByLCAkbDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHByXSkg PT4ge3sKLS0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCi0tICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3I4Ojo8 e1skbDAsICRsMSwgJGwyLCAkbDMsICRsNCwgJGw1LCAkbDYsICRsN119LCBfLCBfPigKLS0gICAg ICAgICAgICAgICAgJHZlYzAuMCwKLS0gICAgICAgICAgICAgICAgJHZlYzEuMCwKLS0gICAgICAg ICAgICApKQotLSAgICAgICAgfQotLSAgICB9fTsKLS0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4 cHIsCi0tICAgICBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHIsCi0tICAg ICAgJGw0OmV4cHIsICRsNTpleHByLCAkbDY6ZXhwciwgJGw3OmV4cHIsCi0tICAgICAgJGw4OmV4 cHIsICRsOTpleHByLCAkbDEwOmV4cHIsICRsMTE6ZXhwciwKLS0gICAgICAkbDEyOmV4cHIsICRs MTM6ZXhwciwgJGwxNDpleHByLCAkbDE1OmV4cHJdKSA9PiB7ewotLSAgICAgICAgI1thbGxvdyh1 bnVzZWRfdW5zYWZlKV0KLS0gICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgJGNyYXRlOjpT aW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3RvcjE2Ojo8ewotLSAgICAgICAgICAgICAgICBbCi0t ICAgICAgICAgICAgICAgICAgICAkbDAsICRsMSwgJGwyLCAkbDMsICRsNCwgJGw1LCAkbDYsICRs NywgJGw4LCAkbDksICRsMTAsCi0tICAgICAgICAgICAgICAgICAgICAkbDExLCAkbDEyLCAkbDEz LCAkbDE0LCAkbDE1LAotLSAgICAgICAgICAgICAgICBdCi0tICAgICAgICAgICAgfSwgXywgXz4o Ci0tICAgICAgICAgICAgICAgICR2ZWMwLjAsCi0tICAgICAgICAgICAgICAgICR2ZWMxLjAsCi0t ICAgICAgICAgICAgKSkKLS0gICAgICAgIH0KLS0gICAgfX07Ci0tICAgICgkdmVjMDpleHByLCAk dmVjMTpleHByLAotLSAgICAgWyRsMDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHBy LAotLSAgICAgICRsNDpleHByLCAkbDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHByLAotLSAgICAg ICRsODpleHByLCAkbDk6ZXhwciwgJGwxMDpleHByLCAkbDExOmV4cHIsCi0tICAgICAgJGwxMjpl eHByLCAkbDEzOmV4cHIsICRsMTQ6ZXhwciwgJGwxNTpleHByLAotLSAgICAgICRsMTY6ZXhwciwg JGwxNzpleHByLCAkbDE4OmV4cHIsICRsMTk6ZXhwciwKLS0gICAgICAkbDIwOmV4cHIsICRsMjE6 ZXhwciwgJGwyMjpleHByLCAkbDIzOmV4cHIsCi0tICAgICAgJGwyNDpleHByLCAkbDI1OmV4cHIs ICRsMjY6ZXhwciwgJGwyNzpleHByLAotLSAgICAgICRsMjg6ZXhwciwgJGwyOTpleHByLCAkbDMw OmV4cHIsICRsMzE6ZXhwcl0pID0+IHt7Ci0tICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUp XQotLSAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpf X3NodWZmbGVfdmVjdG9yMzI6Ojx7Ci0tICAgICAgICAgICAgICAgIFsKLS0gICAgICAgICAgICAg ICAgICAgICRsMCwgJGwxLCAkbDIsICRsMywgJGw0LCAkbDUsICRsNiwgJGw3LCAkbDgsICRsOSwg JGwxMCwKLS0gICAgICAgICAgICAgICAgICAgICRsMTEsICRsMTIsICRsMTMsICRsMTQsICRsMTUs ICRsMTYsICRsMTcsICRsMTgsICRsMTksCi0tICAgICAgICAgICAgICAgICAgICAkbDIwLCAkbDIx LCAkbDIyLCAkbDIzLCAkbDI0LCAkbDI1LCAkbDI2LCAkbDI3LCAkbDI4LAotLSAgICAgICAgICAg ICAgICAgICAgJGwyOSwgJGwzMCwgJGwzMSwKLS0gICAgICAgICAgICAgICAgXQotLSAgICAgICAg ICAgIH0sIF8sIF8+KAotLSAgICAgICAgICAgICAgICAkdmVjMC4wLAotLSAgICAgICAgICAgICAg ICAkdmVjMS4wLAotLSAgICAgICAgICAgICkpCi0tICAgICAgICB9Ci0tICAgIH19OwotLSAgICAo JHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwKLS0gICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpl eHByLCAkbDM6ZXhwciwKLS0gICAgICAkbDQ6ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAkbDc6 ZXhwciwKLS0gICAgICAkbDg6ZXhwciwgJGw5OmV4cHIsICRsMTA6ZXhwciwgJGwxMTpleHByLAot LSAgICAgICRsMTI6ZXhwciwgJGwxMzpleHByLCAkbDE0OmV4cHIsICRsMTU6ZXhwciwKLS0gICAg ICAkbDE2OmV4cHIsICRsMTc6ZXhwciwgJGwxODpleHByLCAkbDE5OmV4cHIsCi0tICAgICAgJGwy MDpleHByLCAkbDIxOmV4cHIsICRsMjI6ZXhwciwgJGwyMzpleHByLAotLSAgICAgICRsMjQ6ZXhw ciwgJGwyNTpleHByLCAkbDI2OmV4cHIsICRsMjc6ZXhwciwKLS0gICAgICAkbDI4OmV4cHIsICRs Mjk6ZXhwciwgJGwzMDpleHByLCAkbDMxOmV4cHIsCi0tICAgICAgJGwzMjpleHByLCAkbDMzOmV4 cHIsICRsMzQ6ZXhwciwgJGwzNTpleHByLAotLSAgICAgICRsMzY6ZXhwciwgJGwzNzpleHByLCAk bDM4OmV4cHIsICRsMzk6ZXhwciwKLS0gICAgICAkbDQwOmV4cHIsICRsNDE6ZXhwciwgJGw0Mjpl eHByLCAkbDQzOmV4cHIsCi0tICAgICAgJGw0NDpleHByLCAkbDQ1OmV4cHIsICRsNDY6ZXhwciwg JGw0NzpleHByLAotLSAgICAgICRsNDg6ZXhwciwgJGw0OTpleHByLCAkbDUwOmV4cHIsICRsNTE6 ZXhwciwKLS0gICAgICAkbDUyOmV4cHIsICRsNTM6ZXhwciwgJGw1NDpleHByLCAkbDU1OmV4cHIs Ci0tICAgICAgJGw1NjpleHByLCAkbDU3OmV4cHIsICRsNTg6ZXhwciwgJGw1OTpleHByLAotLSAg ICAgICRsNjA6ZXhwciwgJGw2MTpleHByLCAkbDYyOmV4cHIsICRsNjM6ZXhwcl0pID0+IHt7Ci0t ICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQotLSAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yNjQ6Ojx7WwotLSAg ICAgICAgICAgICAgICAkbDAsICRsMSwgJGwyLCAkbDMsICRsNCwgJGw1LCAkbDYsICRsNywgJGw4 LCAkbDksICRsMTAsCi0tICAgICAgICAgICAgICAgICRsMTEsICRsMTIsICRsMTMsICRsMTQsICRs MTUsICRsMTYsICRsMTcsICRsMTgsICRsMTksCi0tICAgICAgICAgICAgICAgICRsMjAsICRsMjEs ICRsMjIsICRsMjMsICRsMjQsICRsMjUsICRsMjYsICRsMjcsICRsMjgsCi0tICAgICAgICAgICAg ICAgICRsMjksICRsMzAsICRsMzEsICRsMzIsICRsMzMsICRsMzQsICRsMzUsICRsMzYsICRsMzcs Ci0tICAgICAgICAgICAgICAgICRsMzgsICRsMzksICRsNDAsICRsNDEsICRsNDIsICRsNDMsICRs NDQsICRsNDUsICRsNDYsCi0tICAgICAgICAgICAgICAgICRsNDcsICRsNDgsICRsNDksICRsNTAs ICRsNTEsICRsNTIsICRsNTMsICRsNTQsICRsNTUsCi0tICAgICAgICAgICAgICAgICRsNTYsICRs NTcsICRsNTgsICRsNTksICRsNjAsICRsNjEsICRsNjIsICRsNjMsCi0tICAgICAgICAgICAgXX0s IF8sIF8+KAotLSAgICAgICAgICAgICAgICAkdmVjMC4wLAotLSAgICAgICAgICAgICAgICAkdmVj MS4wLAotLSAgICAgICAgICAgICkpCi0tICAgICAgICB9Ci0tICAgICB9fTsKLS0gICAgKCR2ZWM6 ZXhwciwgWyQoJGw6ZXhwciksKl0pID0+IHsKLS0gICAgICAgIG1hdGNoICR2ZWMgewotLSAgICAg ICAgICAgIHYgPT4gc2h1ZmZsZSEodiwgdiwgWyQoJGwpLCpdKQotLSAgICAgICAgfQotLSAgICB9 OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv c2h1ZmZsZTFfZHluLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3No dWZmbGUxX2R5bi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L3NodWZmbGUxX2R5bi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUxX2R5bi5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTU5ICswLDAgQEAKLS0v LyEgU2h1ZmZsZSB2ZWN0b3IgZWxlbWVudHMgYWNjb3JkaW5nIHRvIGEgZHluYW1pYyB2ZWN0b3Ig b2YgaW5kaWNlcy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlMV9keW4gewotLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gU2h1ZmZsZSB2 ZWN0b3IgZWxlbWVudHMgYWNjb3JkaW5nIHRvIGBpbmRpY2VzYC4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gc2h1ZmZsZTFfZHluPEk+KHNlbGYsIGluZGljZXM6 IEkpIC0+IFNlbGYKLS0gICAgICAgICAgICB3aGVyZQotLSAgICAgICAgICAgICAgICBTZWxmOiBj b2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluPEluZGljZXMgPSBJPiwKLS0gICAgICAg ICAgICB7Ci0tICAgICAgICAgICAgICAgIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFE eW46OnNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzKQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIHRlc3Rfc2h1ZmZsZTFfZHluIHsKLS0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0KSA9PiB7Ci0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6 Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfc2h1ZmZsZTFfZHluPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bigpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5jcmVhc2luZyA9IHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgaSBhcyAkZWxl bV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdgotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGRlY3JlYXNpbmcgPSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCRpZDo6bGFuZXMoKSAtIDEgLSBpKSBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSA8Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRpZCBhcyBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgID46OkluZGljZXM7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGluY3JlYXNpbmdfaWRzOiBJbmRpY2VzID0gaW5jcmVhc2luZy5jYXN0KCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlY3JlYXNpbmdfaWRzOiBJbmRpY2VzID0g ZGVjcmVhc2luZy5jYXN0KCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2luZy5zaHVmZmxlMV9keW4o aW5jcmVhc2luZ19pZHMpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZWFzaW5n LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGksaSk9PmkiCi0tICAgICAgICAgICAg ICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLnNodWZmbGUxX2R5bihpbmNyZWFz aW5nX2lkcyksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY3JlYXNpbmcsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIoZCxpKT0+ZCIKLS0gICAgICAgICAgICAgICAgICAg ICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGRlY3JlYXNpbmdfaWRz KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZywKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIihpLGQpPT5kIgotLSAgICAgICAgICAgICAgICAgICAgICAgICk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGVjcmVhc2luZy5zaHVmZmxlMV9keW4oZGVjcmVhc2luZ19pZHMpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZWFzaW5nLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiKGQsZCk9PmkiCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdl9pZHM6IEluZGljZXMKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gJGlkOjpzcGxhdChpIGFzICRlbGVtX3R5KS5jYXN0KCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoaW5jcmVhc2luZy5zaHVmZmxl MV9keW4odl9pZHMpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRp ZDo6c3BsYXQoaW5jcmVhc2luZy5leHRyYWN0KGkpKQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGRlY3JlYXNp bmcuc2h1ZmZsZTFfZHluKHZfaWRzKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkaWQ6OnNwbGF0KGRlY3JlYXNpbmcuZXh0cmFjdChpKSkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoaSBhcyAkZWxl bV90eSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2h1ZmZsZTFfZHlu KGluY3JlYXNpbmdfaWRzKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6 c3BsYXQoaSBhcyAkZWxlbV90eSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoaSBhcyAkZWxlbV90eSkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuc2h1ZmZsZTFfZHluKGRlY3JlYXNpbmdfaWRzKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoaSBhcyAkZWxlbV90eSkK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISB0ZXN0X3No dWZmbGUxX2R5bl9tYXNrIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICB0ZXN0X2lmISB7Ci0t ICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAg ICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2h1ZmZsZTFfZHluPl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IHNodWZmbGUxX2R5bigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHRlcm5hdGlu ZyA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIC4uLl0KLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IGFsdGVybmF0aW5nID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhbHRlcm5hdGluZyA9IGFsdGVybmF0aW5nLnJlcGxhY2UoaSwgdHJ1ZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gPAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkaWQgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5 bgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA+OjpJbmRpY2VzOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGV2ZW4gPSBbMCwgMCwgMiwgMiwgNCwgNCwgLi5dCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGV2ZW4gPSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgdiA9IEluZGljZXM6OnNwbGF0KDApOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCkuaW50bygpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCAtIDEpLmludG8oKSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdgotLSAgICAgICAgICAgICAgICAgICAg ICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2RkID0gWzEsIDEsIDMsIDMsIDUs IDUsIC4uLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb2RkID0gewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBJbmRpY2VzOjpzcGxhdCgwKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9IDAgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTgpLmludG8o KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTggKyAx KS5pbnRvKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYKLS0g ICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0aW5nLnNodWZm bGUxX2R5bihldmVuKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdCh0 cnVlKQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5z aHVmZmxlMV9keW4ob2RkKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6 c3BsYXQoZmFsc2UpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS9mcm9tX3NsaWNl LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UvZnJv bV9zbGljZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIwMiArMCwwIEBACi0tLy8h IEltcGxlbWVudHMgbWV0aG9kcyB0byByZWFkIGEgdmVjdG9yIHR5cGUgZnJvbSBhIHNsaWNlLgot LQotLW1hY3JvX3J1bGVzISBpbXBsX3NsaWNlX2Zyb21fc2xpY2UgewotLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsK LS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3 IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlz IG5vdCBhbGlnbmVkCi0tICAgICAgICAgICAgLy8vIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClg IGJvdW5kYXJ5LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBm cm9tX3NsaWNlX2FsaWduZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVu KCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIg PSBzbGljZS5hc19wdHIoKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGFyZ2V0 X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKSwgMCk7Ci0t ICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKHNs aWNlKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg IC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0aGUgYHNs aWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAg ICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFu ZXMoKWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGZyb21f c2xpY2VfdW5hbGlnbmVkKHNsaWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigp ID49ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgICAgIFNlbGY6OmZyb21fc2xpY2Vf dW5hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRo IHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBz bGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5vdCBhbGlnbmVk Ci0tICAgICAgICAgICAgLy8vIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LCB0 aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIHB1YiB1bnNhZmUgZm4gZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZTog JlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnQhKHNs aWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgbGV0IHRhcmdldF9w dHIgPSBzbGljZS5hc19wdHIoKTsKLS0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0X2VxISh0 YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpLCAw KTsKLS0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVu dCldCi0tICAgICAgICAgICAgICAgICoodGFyZ2V0X3B0ciBhcyAqY29uc3QgU2VsZikKLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Ig d2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJ ZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVk LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gZnJv bV9zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNsaWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjpzaXplX29mOwotLSAgICAgICAgICAg ICAgICBkZWJ1Z19hc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKLS0gICAgICAg ICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19wdHIoKS5jYXN0KCk7Ci0tICAgICAg ICAgICAgICAgIGxldCBtdXQgeCA9IFNlbGY6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICBsZXQgc2VsZl9wdHIgPSAmbXV0IHggYXMgKm11dCBTZWxmIGFzICptdXQgdTg7 Ci0tICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcodGFyZ2V0 X3B0ciwgc2VsZl9wdHIsIHNpemVfb2Y6OjxTZWxmPigpKTsKLS0gICAgICAgICAgICAgICAgeAot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAg ICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAg ICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2Fe MSByYW5nZS4KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCi0t ICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NsaWNlX2Zyb21fc2xpY2U+XSB7Ci0tICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOwotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZCgpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFs0MiBhcyAkZWxlbV90eTsg JGlkOjpsYW5lcygpICsgMV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5hbGlnbmVkWzBd ID0gMCBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlk Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmdW5hbGlnbmVkWzEuLl0pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGZvciAoaW5kZXgsICZiKSBpbiB1bmFsaWduZWQuaXRlcigpLmVudW1lcmF0ZSgp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPT0gMCB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDAgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCA0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIHZlYy5leHRyYWN0KGluZGV4IC0g MSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAg Ly8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFu aWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAg ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAg ICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0g ICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkX2ZhaWwoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbNDIgYXMgJGVsZW1fdHk7 ICRpZDo6bGFuZXMoKSArIDFdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuYWxpZ25lZFsw XSA9IDAgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNl IGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFuaWMKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgX3ZlYyA9ICRpZDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnVuYWxpZ25lZFsyLi5dKTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIEEgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFskZWxlbV90eTsgMiAqICRpZDo6bGFuZXMo KV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgX3ZlYzogJGlkLAotLSAgICAgICAgICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE6IFswIGFzICRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluICRpZDo6bGFuZXMo KS4uKDIgKiAkaWQ6OmxhbmVzKCkpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduZWQuZGF0YVtpXSA9 IDQyIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMg PSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmZyb21fc2xpY2Vf YWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGlnbmVkLmRhdGFb JGlkOjpsYW5lcygpLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgs ICZiKSBpbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBhbGlnbmVkLmRh dGEuaXRlcigpLmVudW1lcmF0ZSgpIH0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpbmRleCA8ICRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGIsIDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShiLCA0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIsIHZlYy5l eHRyYWN0KGluZGV4IC0gJGlkOjpsYW5lcygpKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAg ICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxk X3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAg ICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNd Ci0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRfZmFpbF9sYW5lcygp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsgMiAqICRpZDo6bGFuZXMo KV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgX3ZlYyA9IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6 ZnJvbV9zbGljZV9hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFs aWduZWQuZGF0YVsyICogJGlkOjpsYW5lcygpLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRv ZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAg ICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xp Y2VfYWxpZ25lZF9mYWlsX2FsaWduKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGlnbmVkID0gQSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsgMiAqICRp ZDo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBhIHBvaW50ZXIgdG8gdGhlIGZyb250IG9mIGRh dGEKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0cjogKmNvbnN0ICRlbGVtX3R5 ID0gYWxpZ25lZC5kYXRhLmFzX3B0cigpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhcyAqY29uc3QgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9m ZnNldCBwb2ludGVyIGJ5IG9uZSBlbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBwdHIgPSBwdHIud3JhcHBpbmdfYWRkKDEpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBwdHIuYWxpZ25fb2Zmc2V0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjwkaWQ+KCkKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo ZSBwb2ludGVyIGlzIHByb3Blcmx5IGFsaWduZWQsIHNvCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBmcm9tX3NsaWNlX2FsaWduZWQgd29uJ3QgZmFpbCBoZXJlIChlLmcuIHRo aXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbiBoYXBwZW4gZm9yIGkx Mjh4MSkuIFNvIHdlIHBhbmljIHRvIG1ha2UKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRoZSAic2hvdWxkX2ZhaWwiIHRlc3QgcGFzczoKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhbmljISgib2siKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBzbGljZSAtIHRo aXMgaXMgc2FmZSwgYmVjYXVzZSB0aGUKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g ZWxlbWVudHMgb2YgdGhlIHNsaWNlIGV4aXN0LCBhcmUgcHJvcGVybHkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQsIGFuZCBwcm9wZXJseSBhbGlnbmVkOgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogJlskZWxlbV90eV0gPSBzbGljZTo6ZnJv bV9yYXdfcGFydHMoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIsICRpZDo6 bGFuZXMoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBhbHdheXMgcGFuaWMgYmVjYXVzZSB0aGUgc2xp Y2UKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25tZW50IGRvZXMgbm90IG1h dGNoIHRoZSBhbGlnbm1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWly ZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBfdmVjID0gJGlkOjpmcm9tX3NsaWNlX2FsaWduZWQocyk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2Uvd3JpdGVfdG9fc2xpY2UucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2Uvd3JpdGVfdG9fc2xp Y2UucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS93 cml0ZV90b19zbGljZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3Ns aWNlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxOTYgKzAs MCBAQAotLS8vISBJbXBsZW1lbnRzIG1ldGhvZHMgdG8gd3JpdGUgYSB2ZWN0b3IgdHlwZSB0byBh IHNsaWNlLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX3NsaWNlX3dyaXRlX3RvX3NsaWNlIHsKLS0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFdyaXRl cyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAg ICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1g IGlzIG5vdAotLSAgICAgICAgICAgIC8vLyBhbGlnbmVkIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+ KClgIGJvdW5kYXJ5LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBm biB3cml0ZV90b19zbGljZV9hbGlnbmVkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0pIHsK LS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEo c2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHRh cmdldF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHRhcmdldF9wdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2Vs Zj4oKSksIDApOwotLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV90b19zbGljZV9hbGln bmVkX3VuY2hlY2tlZChzbGljZSk7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8g dGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNz Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNl bGY6OmxhbmVzKClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBm biB3cml0ZV90b19zbGljZV91bmFsaWduZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkg ewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgICAgICBzZWxm LndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoc2xpY2UpOwotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZh bHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QK LS0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3Vu ZGFyeSwgdGhlIGJlaGF2aW9yIGlzCi0tICAgICAgICAgICAgLy8vIHVuZGVmaW5lZC4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHdyaXRlX3RvX3Ns aWNlX2FsaWduZWRfdW5jaGVja2VkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0pIHsKLS0g ICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7 Ci0tICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfbXV0X3B0cigpOwot LSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnRfZXEhKHRhcmdldF9wdHIuYWxpZ25fb2Zmc2V0 KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSksIDApOwotLQotLSAgICAgICAgICAgICAg ICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KLS0gICAgICAgICAgICAgICAg I1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCi0tICAgICAgICAgICAgICAgICNb YWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQotLSAgICAgICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KLS0gICAgICAgICAgICAgICAgKih0YXJn ZXRfcHRyIGFzICptdXQgU2VsZikgPSBzZWxmOwotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4K LS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAg dGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBwdWIgdW5zYWZlIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQo c2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgewotLSAgICAgICAgICAgICAgICBkZWJ1Z19h c3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgbGV0 IHRhcmdldF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCkuY2FzdCgpOwotLSAgICAgICAgICAgICAg ICBsZXQgc2VsZl9wdHIgPSAmc2VsZiBhcyAqY29uc3QgU2VsZiBhcyAqY29uc3QgdTg7Ci0tICAg ICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoc2VsZl9wdHIsIHRh cmdldF9wdHIsIGNyYXRlOjptZW06OnNpemVfb2Y6OjxTZWxmPigpKTsKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3Rf dHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgLy8gQ29t cGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAg ICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAgICAg ICBwdWIgbW9kIFs8JGlkIF9zbGljZV93cml0ZV90b19zbGljZT5dIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aXRl cjo6SXRlcmF0b3I7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFswIGFzICRlbGVtX3R5OyAkaWQ6Omxh bmVzKCkgKyAxXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxh dCg0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3Rv X3NsaWNlX3VuYWxpZ25lZCgmbXV0IHVuYWxpZ25lZFsxLi5dKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5lbnVtZXJhdGUoKSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4ID09IDAgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCAwIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgNDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRleCAtIDEp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8v IEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3Bhbmlj XQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAg ICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAg ICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWRfZmFpbCgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFswIGFzICRlbGVtX3R5 OyAkaWQ6OmxhbmVzKCkgKyAxXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0g JGlkOjpzcGxhdCg0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVj LndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IHVuYWxpZ25lZFsyLi5dKTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIEEgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGE6IFskZWxlbV90eTsgMiAqICRpZDo6bGFuZXMoKV0sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgX3ZlYzogJGlkLAotLSAgICAgICAgICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAg ICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh OiBbMCBhcyAkZWxlbV90eTsgMiAqICRpZDo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAg ICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCg0 MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX2FsaWduZWQoCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFsaWduZWQuZGF0YVskaWQ6OmxhbmVz KCkuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIChpZHgsICZiKSBpbiBhbGlnbmVkLmRhdGEuaXRlcigpLmVudW1lcmF0 ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlkeCA8ICRpZDo6bGFu ZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShi LCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCA0 MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiwgdmVj LmV4dHJhY3QoaWR4IC0gJGlkOjpsYW5lcygpKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2Fz bS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAg ICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmco bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVz dF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF9mYWlsX2xhbmVzKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsgMiAqICRpZDo6bGFuZXMoKV0sCi0tICAg ICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVj ID0gJGlkOjpzcGxhdCg0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNl X2FsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFsaWduZWQu ZGF0YVsyICogJGlkOjpsYW5lcygpLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK LS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90 IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAg ICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNl X2FsaWduZWRfZmFpbF9hbGlnbigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAyICog JGlkOjpsYW5lcygpXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZnJvbnQgb2Yg ZGF0YQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyOiAqbXV0ICRlbGVtX3R5 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFsaWduZWQuZGF0YS5hc19tdXRf cHRyKCkgYXMgKm11dCAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g b2Zmc2V0IHBvaW50ZXIgYnkgb25lIGVsZW1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHB0ciA9IHB0ci53cmFwcGluZ19hZGQoMSk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIHB0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjwkaWQ+ KCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSAwIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwb2ludGVyIGlzIHByb3Blcmx5IGFsaWduZWQs IHNvCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZV90b19zbGljZV9h bGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLgotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdGhpcyBjYW4gaGFwcGVuIGZvciBpMTI4eDEpLiBTbyB3ZSBwYW5pYyB0bwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSB0aGUgInNob3VsZF9mYWlsIiB0 ZXN0IHBhc3M6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5pYyEoIm9rIik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlzIGlzIHNhZmUsIGJlY2F1c2UgdGhlCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzIG9mIHRoZSBzbGljZSBleGlz dCwgYXJlIHByb3Blcmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWxp emVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHM6ICZtdXQgWyRlbGVtX3R5XQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PSBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KHB0ciwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgYWx3YXlzIHBhbmljIGJlY2F1c2Ug dGhlIHNsaWNlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWdubWVudCBkb2Vz IG5vdCBtYXRjaCB0aGUgYWxpZ25tZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IHJlcXVpcmVtZW50cyBmb3IgdGhlIHZlY3RvciB0eXBlOgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCg0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVkKHMpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9zbGljZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs NyArMCwwIEBACi0tLy8hIFNsaWNlIGZyb20vdG8gbWV0aG9kcwotLQotLSNbbWFjcm9fdXNlXQot LW1vZCBmcm9tX3NsaWNlOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCB3cml0ZV90b19zbGljZTsK LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc3dhcF9i eXRlcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zd2FwX2J5dGVz LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc3dhcF9ieXRl cy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE5MiArMCwwIEBACi0tLy8hIEhvcml6b250YWwg c3dhcCBieXRlcwotLQotLW1hY3JvX3J1bGVzISBpbXBsX3N3YXBfYnl0ZXMgewotLSAgICAoWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQp ID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gUmV2ZXJzZXMgdGhl IGJ5dGUgb3JkZXIgb2YgdGhlIHZlY3Rvci4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBwdWIgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgc3VwZXI6OmNvZGVnZW46OnN3YXBfYnl0ZXM6OlN3YXBCeXRlczo6c3dhcF9ieXRlcyhzZWxm KQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29udmVydHMgc2VsZiB0byBs aXR0bGUgZW5kaWFuIGZyb20gdGhlIHRhcmdldCdzIGVuZGlhbm5lc3MuCi0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vIE9uIGxpdHRsZSBlbmRpYW4gdGhpcyBpcyBhIG5vLW9wLiBP biBiaWcgZW5kaWFuIHRoZSBieXRlcyBhcmUKLS0gICAgICAgICAgICAvLy8gc3dhcHBlZC4KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gdG9fbGUoc2VsZikgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIild Ci0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHNlbGYKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJs aXR0bGUiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHNlbGYu c3dhcF9ieXRlcygpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgLy8vIENvbnZlcnRzIHNlbGYgdG8gYmlnIGVuZGlhbiBmcm9tIHRoZSB0YXJnZXQn cyBlbmRpYW5uZXNzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBPbiBiaWcg ZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gbGl0dGxlIGVuZGlhbiB0aGUgYnl0ZXMgYXJlCi0t ICAgICAgICAgICAgLy8vIHN3YXBwZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGZuIHRvX2JlKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfZW5kaWFuID0gImJpZyIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAg ICAgICAgICAgICBzZWxmCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tj Zmcobm90KHRhcmdldF9lbmRpYW4gPSAiYmlnIikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAg ICAgICAgICAgICAgICAgICBzZWxmLnN3YXBfYnl0ZXMoKQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDb252ZXJ0cyBhIHZlY3RvciBmcm9t IGxpdHRsZSBlbmRpYW4gdG8gdGhlIHRhcmdldCdzIGVuZGlhbm5lc3MuCi0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vIE9uIGxpdHRsZSBlbmRpYW4gdGhpcyBpcyBhIG5vLW9wLiBP biBiaWcgZW5kaWFuIHRoZSBieXRlcyBhcmUKLS0gICAgICAgICAgICAvLy8gc3dhcHBlZC4KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZnJvbV9sZSh4OiBTZWxm KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJsaXR0 bGUiKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgeAotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0g ImxpdHRsZSIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgeC5z d2FwX2J5dGVzKCkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAvLy8gQ29udmVydHMgYSB2ZWN0b3IgZnJvbSBiaWcgZW5kaWFuIHRvIHRoZSB0YXJn ZXQncyBlbmRpYW5uZXNzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBPbiBi aWcgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gbGl0dGxlIGVuZGlhbiB0aGUgYnl0ZXMgYXJl Ci0tICAgICAgICAgICAgLy8vIHN3YXBwZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgcHViIGZuIGZyb21fYmUoeDogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAg ICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAiYmlnIildCi0tICAgICAgICAgICAgICAgIHsKLS0g ICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJiaWciKSldCi0tICAgICAgICAgICAgICAgIHsK LS0gICAgICAgICAgICAgICAgICAgIHguc3dhcF9ieXRlcygpCi0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAg ICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfc3dhcF9ieXRlcz5dIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBzdXBlcjo6KjsKLS0KLS0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEJZVEVTOiBb dTg7IDY0XSA9IFsKLS0gICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2 LCA3LAotLSAgICAgICAgICAgICAgICAgICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwg MTUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIs IDIzLAotLSAgICAgICAgICAgICAgICAgICAgICAgIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMw LCAzMSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAz OCwgMzksCi0tICAgICAgICAgICAgICAgICAgICAgICAgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwg NDYsIDQ3LAotLSAgICAgICAgICAgICAgICAgICAgICAgIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMs IDU0LCA1NSwKLS0gICAgICAgICAgICAgICAgICAgICAgICA1NiwgNTcsIDU4LCA1OSwgNjAsIDYx LCA2MiwgNjMsCi0tICAgICAgICAgICAgICAgICAgICBdOwotLQotLSAgICAgICAgICAgICAgICAg ICAgbWFjcm9fcnVsZXMhIHN3YXAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICgkZnVuYzog aWRlbnQpID0+IHt7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhdGNoIHBvc3Np YmxlIGZ1dHVyZSA+NTEyIHZlY3RvcnMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0IShtZW06OnNpemVfb2Y6OjwkaWQ+KCkgPD0gNjQpOwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IGFjdHVhbCA9IEJZVEVTOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgZWxlbXM6ICZtdXQgWyRlbGVtX3R5XSA9IHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbC5hc19tdXRfcHRyKCkgYXMgKm11 dCAkZWxlbV90eSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6Omxh bmVzKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ZWMgPSAkaWQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKGVsZW1zKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGlkOjokZnVuYyh2ZWMpLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZChlbGVt cyk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbAotLSAgICAgICAgICAg ICAgICAgICAgICAgIH19OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg ICAgICAgICAgbWFjcm9fcnVsZXMhIHRlc3Rfc3dhcCB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgKCRmdW5jOiBpZGVudCkgPT4ge3sKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGFjdHVhbCA9IHN3YXAhKCRmdW5jKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGV4cGVjdGVkID0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEVTLml0ZXIo KS5yZXYoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNraXAoNjQgLSBjcmF0 ZTo6bWVtOjpzaXplX29mOjo8JGlkPigpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShhY3R1YWwuaXRlcigpLnppcChleHBlY3RlZCkKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAuYWxsKHwoeCwgeSl8IHggPT0geSkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIH19OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgbWFjcm9fcnVsZXMhIHRlc3Rfbm9fc3dhcCB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgKCRmdW5jOiBpZGVudCkgPT4ge3sKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGFjdHVhbCA9IHN3YXAhKCRmdW5jKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGV4cGVjdGVkID0gQllURVMuaXRlcigpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAudGFrZShtZW06OnNpemVfb2Y6OjwkaWQ+KCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKGFjdHVhbC5pdGVyKCkuemlwKGV4cGVjdGVkKQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC5hbGwofCh4LCB5KXwgeCA9PSB5KSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgfX07Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X3N3YXAhKHN3YXBfYnl0ZXMpOwotLSAgICAgICAgICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHRvX2xlKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildCi0tICAg ICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X25vX3N3YXAhKHRvX2xlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikpXQotLSAg ICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9zd2FwISh0b19sZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHRvX2JlKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAiYmlnIild Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X25vX3N3YXAhKHRvX2JlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAiYmlnIikpXQot LSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9zd2FwISh0b19iZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndh c20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21f bGUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJs aXR0bGUiKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3Rfbm9fc3dhcCEoZnJvbV9sZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0g ImxpdHRsZSIpKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3Rfc3dhcCEoZnJvbV9sZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAg ICAgICAgIGZuIGZyb21fYmUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFy Z2V0X2VuZGlhbiA9ICJiaWciKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9fc3dhcCEoZnJvbV9iZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJn ZXRfZW5kaWFuID0gImJpZyIpKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEoZnJvbV9iZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpLnJzCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzMDggKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHRo ZSBTaW1kPFtUOyBOXT4gQVBJcwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBiaXRtYXNrOwotLXB1 YihjcmF0ZSkgbW9kIGNhc3Q7Ci0tI1ttYWNyb191c2VdCi0tbW9kIGNtcDsKLS0jW21hY3JvX3Vz ZV0KLS1tb2QgZGVmYXVsdDsKLS0jW21hY3JvX3VzZV0KLS1tb2QgZm10OwotLSNbbWFjcm9fdXNl XQotLW1vZCBmcm9tOwotLSNbbWFjcm9fdXNlXQotLW1vZCBoYXNoOwotLSNbbWFjcm9fdXNlXQot LW1vZCBtYXRoOwotLSNbbWFjcm9fdXNlXQotLW1vZCBtaW5pbWFsOwotLSNbbWFjcm9fdXNlXQot LW1vZCBvcHM7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHB0cjsKLS0jW21hY3JvX3VzZV0KLS1tb2Qg cmVkdWN0aW9uczsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgc2VsZWN0OwotLSNbbWFjcm9fdXNlXQot LW1vZCBzaHVmZmxlOwotLSNbbWFjcm9fdXNlXQotLW1vZCBzaHVmZmxlMV9keW47Ci0tI1ttYWNy b191c2VdCi0tbW9kIHNsaWNlOwotLSNbbWFjcm9fdXNlXQotLW1vZCBzd2FwX2J5dGVzOwotLSNb bWFjcm9fdXNlXQotLW1vZCBiaXRfbWFuaXA7Ci0tCi0tI1tjZmcoZmVhdHVyZSA9ICJpbnRvX2Jp dHMiKV0KLS1wdWIoY3JhdGUpIG1vZCBpbnRvX2JpdHM7Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxf aSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVu dCwgJG1hc2tfdHk6aWRlbnQKLS0gICAgIHwgJGllbGVtX3R5OmlkZW50LCAkaWJpdG1hc2tfdHk6 aWRlbnQgfCAkdGVzdF90dDp0dCB8ICQoJGVsZW1faWRzOmlkZW50KSwqCi0tICAgICB8IEZyb206 ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLSAgICAg ICAgaW1wbF9taW5pbWFsX2l1ZiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGll bGVtX3R5IHwgJHRlc3RfdHQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgJCgkZWxlbV9p ZHMpLCogfCAkKCNbJGRvY10pKik7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3JfYXJpdGhtZXRp YyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAg aW1wbF9vcHNfc2NhbGFyX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9iaXR3aXNlISgKLS0gICAg ICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICghKDAg YXMgJGVsZW1fdHkpLCAwKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9i aXR3aXNlISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQotLSAgICAgICAgKTsKLS0gICAgICAgIGlt cGxfb3BzX3ZlY3Rvcl9zaGlmdHMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9zaGlmdHMhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9y b3RhdGVzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX29wc192ZWN0b3JfbmVnIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3JfaW50X21pbl9tYXghKAotLSAg ICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0Ci0tICAg ICAgICApOwotLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25faW50ZWdlcl9hcml0aG1ldGljISgKLS0g ICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAk dGVzdF90dAotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX21pbl9tYXghKAot LSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8 ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fYml0d2lzZSEo Ci0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5 IHwgJHRlc3RfdHQKLS0gICAgICAgICAgICB8ICh8eHx7IHggYXMgJGVsZW1fdHkgfSkgfCAoISgw IGFzICRlbGVtX3R5KSwgMCkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2ZtdF9kZWJ1ZyEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1w bF9mbXRfbG93ZXJfaGV4IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7Ci0tICAgICAgICBpbXBsX2ZtdF91cHBlcl9oZXghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10X29jdGFsIShbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2ZtdF9iaW5h cnkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAg IGltcGxfZnJvbV9hcnJheSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQgfCAoMSwgMSkpOwotLSAgICAgICAgaW1wbF9mcm9tX3ZlY3RvcnMhKAotLSAgICAgICAgICAg IFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgJCgkZnJvbV92ZWNf dHkpLCoKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2RlZmF1bHQhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfaGFzaCEoWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9zbGlj ZV9mcm9tX3NsaWNlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 Ci0tICAgICAgICBpbXBsX3NsaWNlX3dyaXRlX3RvX3NsaWNlIShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfYml0 X21hbmlwIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX3NodWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9lcSEoCi0tICAgICAgICAgICAg WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkKLS0gICAg ICAgICk7Ci0tICAgICAgICBpbXBsX2NtcF9lcSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkpOwotLSAgICAgICAgaW1wbF9jbXBfdmVydGljYWwhKAot LSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHksIGZh bHNlLCAoMSwgMCkgfCAkdGVzdF90dAotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfY21wX3Bh cnRpYWxfb3JkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0t ICAgICAgICBpbXBsX2NtcF9vcmQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0IHwgKDAsIDEpKTsKLS0gICAgICAgIGltcGxfYml0bWFzayEoJHR1cGxlX2lkIHwgJGli aXRtYXNrX3R5IHwgKC0xLCAwKSB8ICR0ZXN0X3R0KTsKLS0KLS0gICAgICAgIHRlc3Rfc2VsZWN0 ISgkZWxlbV90eSwgJG1hc2tfdHksICR0dXBsZV9pZCwgKDEsIDIpIHwgJHRlc3RfdHQpOwotLSAg ICAgICAgdGVzdF9jbXBfcGFydGlhbF9vcmRfaW50IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICB0ZXN0X3NodWZmbGUxX2R5biEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICB9Ci0tfQotLQotLW1hY3Jv X3J1bGVzISBpbXBsX3UgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9uOmV4cHJdOiAk dHVwbGVfaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50Ci0tICAgICB8ICRpZWxlbV90eTppZGVudCwg JGliaXRtYXNrX3R5OmlkZW50IHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgot LSAgICAgfCBGcm9tOiAkKCRmcm9tX3ZlY190eTppZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSop ID0+IHsKLS0gICAgICAgIGltcGxfbWluaW1hbF9pdWYhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICQoJGVsZW1faWRzKSwqIHwgJCgjWyRkb2NdKSopOwotLSAgICAgICAgaW1wbF9vcHNfdmVj dG9yX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKLS0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3JfYml0 d2lzZSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQgfCAoISgwIGFzICRlbGVtX3R5KSwgMCkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBs X29wc19zY2FsYXJfYml0d2lzZSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoISgwIGFzICRlbGVtX3R5KSwgMCkKLS0gICAgICAgICk7 Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3Jfc2hpZnRzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX29wc19zY2FsYXJfc2hpZnRzIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBs X29wc192ZWN0b3Jfcm90YXRlcyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2ludF9taW5fbWF4ISgKLS0gICAgICAg ICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAotLSAgICAgICAg KTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX2ludGVnZXJfYXJpdGhtZXRpYyEoCi0tICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3Rf dHQKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX3JlZHVjdGlvbl9taW5fbWF4ISgKLS0gICAg ICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVz dF90dAotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX2JpdHdpc2UhKAotLSAg ICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0 ZXN0X3R0Ci0tICAgICAgICAgICAgfCAofHh8eyB4IGFzICRlbGVtX3R5IH0pIHwgKCEoMCBhcyAk ZWxlbV90eSksIDApCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9mbXRfZGVidWchKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10 X2xvd2VyX2hleCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwot LSAgICAgICAgaW1wbF9mbXRfdXBwZXJfaGV4IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVf aWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2ZtdF9vY3RhbCEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mbXRfYmluYXJ5IShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBs X2Zyb21fYXJyYXkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwg KDEsIDEpKTsKLS0gICAgICAgIGltcGxfZnJvbV92ZWN0b3JzISgKLS0gICAgICAgICAgICBbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICQoJGZyb21fdmVjX3R5KSwq Ci0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9kZWZhdWx0IShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2hhc2ghKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc2xpY2VfZnJv bV9zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAg ICAgICAgaW1wbF9zbGljZV93cml0ZV90b19zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzIShbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2JpdF9tYW5p cCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAg aW1wbF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0 X3R0KTsKLS0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfZXEhKAotLSAgICAgICAgICAgIFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEsIDApCi0tICAgICAgICAp OwotLSAgICAgICAgaW1wbF9jbXBfZXEhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0IHwgKDAsIDEpKTsKLS0gICAgICAgIGltcGxfY21wX3ZlcnRpY2FsISgKLS0gICAg ICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5LCBmYWxzZSwg KDEsIDApIHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2NtcF9wYXJ0aWFs X29yZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAg ICAgaW1wbF9jbXBfb3JkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCB8ICgwLCAxKSk7Ci0tICAgICAgICBpbXBsX2JpdG1hc2shKCR0dXBsZV9pZCB8ICRpYml0bWFz a190eSB8ICgkaWVsZW1fdHk6Om1heF92YWx1ZSgpLCAwKSB8Ci0tICAgICAgICAgICAgICAgICAg ICAgICR0ZXN0X3R0KTsKLS0KLS0gICAgICAgIHRlc3Rfc2VsZWN0ISgkZWxlbV90eSwgJG1hc2tf dHksICR0dXBsZV9pZCwgKDEsIDIpIHwgJHRlc3RfdHQpOwotLSAgICAgICAgdGVzdF9jbXBfcGFy dGlhbF9vcmRfaW50IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 Ci0tICAgICAgICB0ZXN0X3NodWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOwotLSAgICB9Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX2Ygewot LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRt YXNrX3R5OmlkZW50Ci0tICAgICB8ICRpZWxlbV90eTppZGVudCB8ICR0ZXN0X3R0OnR0IHwgJCgk ZWxlbV9pZHM6aWRlbnQpLCoKLS0gICAgIHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQpLCog fCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tICAgICAgICBpbXBsX21pbmltYWxfaXVmIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAkKCRlbGVtX2lkcyksKiB8ICQoI1skZG9jXSkqKTsKLS0g ICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX29wc19zY2FsYXJfYXJpdGhtZXRp YyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAg aW1wbF9vcHNfdmVjdG9yX25lZyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2Zsb2F0X21pbl9tYXghKAotLSAgICAg ICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0Ci0tICAgICAg ICApOwotLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fZmxvYXRfYXJpdGhtZXRpYyEoCi0tICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAg ICAgaW1wbF9yZWR1Y3Rpb25fbWluX21heCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAg ICAgICBpbXBsX2ZtdF9kZWJ1ZyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOwotLSAgICAgICAgaW1wbF9mcm9tX2FycmF5IShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLiwgMS4pKTsKLS0gICAgICAgIGltcGxfZnJvbV92ZWN0 b3JzISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCB8ICQoJGZyb21fdmVjX3R5KSwqCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9kZWZh dWx0IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAg ICBpbXBsX2NtcF9wYXJ0aWFsX2VxISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLiwgMC4pCi0tICAgICAgICApOwotLSAgICAgICAg aW1wbF9zbGljZV9mcm9tX3NsaWNlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7Ci0tICAgICAgICBpbXBsX3NsaWNlX3dyaXRlX3RvX3NsaWNlIShbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX3NodWZmbGUx X2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLQotLSAg ICAgICAgaW1wbF9mbG9hdF9jb25zdHMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCk7 Ci0tICAgICAgICBpbXBsX2Zsb2F0X2NhdGVnb3J5IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQsICRtYXNrX3R5KTsKLS0KLS0gICAgICAgIC8vIGZsb2F0aW5nLXBvaW50IG1hdGgKLS0g ICAgICAgIGltcGxfbWF0aF9mbG9hdF9hYnMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9jb3MhKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfbWF0aF9mbG9h dF9leHAhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAg ICAgIGltcGxfbWF0aF9mbG9hdF9sbiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X211bF9hZGQhKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfbWF0aF9mbG9h dF9tdWxfYWRkZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwot LSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3Bvd2YhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9yZWNwcmUhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfbWF0 aF9mbG9hdF9yc3FydGUhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKLS0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9zaW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9zcXJ0IShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21h dGhfZmxvYXRfc3FydGUhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKLS0gICAgICAgIGltcGxfY21wX3ZlcnRpY2FsISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5LCBmYWxzZSwgKDEuLCAwLikKLS0gICAgICAg ICAgICAgICAgfCAkdGVzdF90dAotLSAgICAgICAgKTsKLS0KLS0gICAgICAgIHRlc3Rfc2VsZWN0 ISgkZWxlbV90eSwgJG1hc2tfdHksICR0dXBsZV9pZCwgKDEuLCAyLikgfCAkdGVzdF90dCk7Ci0t ICAgICAgICB0ZXN0X3JlZHVjdGlvbl9mbG9hdF9taW5fbWF4ISgKLS0gICAgICAgICAgICBbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAotLSAgICAgICAgKTsKLS0gICAg ICAgIHRlc3Rfc2h1ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7Ci0tICAgIH0KLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbSB7Ci0tICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudAotLSAgICAgfCAk aWVsZW1fdHk6aWRlbnQsICRpYml0bWFza190eTppZGVudAotLSAgICAgfCAkdGVzdF90dDp0dCB8 ICQoJGVsZW1faWRzOmlkZW50KSwqIHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQpLCoKLS0g ICAgIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLSAgICAgICAgaW1wbF9taW5pbWFsX21hc2sh KAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90 eSB8ICR0ZXN0X3R0Ci0tICAgICAgICAgICAgfCAkKCRlbGVtX2lkcyksKiB8ICQoI1skZG9jXSkq Ci0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX21hc2tfYml0d2lzZSEoCi0t ICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAo dHJ1ZSwgZmFsc2UpCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX21hc2tf Yml0d2lzZSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQgfCAodHJ1ZSwgZmFsc2UpCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9yZWR1 Y3Rpb25fYml0d2lzZSEoCi0tICAgICAgICAgICAgW2Jvb2w7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkaWVsZW1fdHkgfCAkdGVzdF90dAotLSAgICAgICAgICAgICAgICB8ICh8eHx7IHggIT0gMCB9 KSB8ICh0cnVlLCBmYWxzZSkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX3JlZHVjdGlvbl9t YXNrIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAg ICBpbXBsX2ZtdF9kZWJ1ZyEoW2Jvb2w7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 Ci0tICAgICAgICBpbXBsX2Zyb21fYXJyYXkhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0Ci0tICAgICAgICAgICAgfCAoY3JhdGU6OiRlbGVt X3R5OjpuZXcodHJ1ZSksIHRydWUpCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9mcm9tX3Zl Y3RvcnMhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0IHwgJCgkZnJvbV92ZWNfdHkpLCoKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2Rl ZmF1bHQhKFtib29sOyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAg aW1wbF9jbXBfcGFydGlhbF9lcSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAodHJ1ZSwgZmFsc2UpCi0tICAgICAgICApOwotLSAgICAg ICAgaW1wbF9jbXBfZXEhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0IHwgKHRydWUsIGZhbHNlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGlt cGxfY21wX3ZlcnRpY2FsISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQsICR0dXBsZV9pZCwgdHJ1ZSwgKHRydWUsIGZhbHNlKQotLSAgICAgICAgICAgIHwgJHRl c3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX3NlbGVjdCEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9v cmQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAg IGltcGxfY21wX29yZCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQgfCAoZmFsc2UsIHRydWUpCi0tICAgICAgICApOwotLSAgICAgICAgaW1w bF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKLS0gICAgICAgIGltcGxfYml0bWFzayEoJHR1cGxlX2lkIHwgJGliaXRtYXNrX3R5IHwgKHRy dWUsIGZhbHNlKSB8ICR0ZXN0X3R0KTsKLS0KLS0gICAgICAgIHRlc3RfY21wX3BhcnRpYWxfb3Jk X21hc2shKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAg ICAgIHRlc3Rfc2h1ZmZsZTFfZHluX21hc2shKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0KTsKLS0gICAgfQotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9jb25zdF9w IHsKLS0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAk bWFza190eTppZGVudCwKLS0gICAgICR1c2l6ZV90eTppZGVudCwgJGlzaXplX3R5OmlkZW50Ci0t ICAgICB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCoKLS0gICAgIHwgRnJvbTog JCgkZnJvbV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tICAgICAg ICBpbXBsX21pbmltYWxfcCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkLCAkbWFza190eSwgJHVzaXplX3R5LCAkaXNpemVfdHkKLS0gICAgICAgICAgICAgICAg fCByZWZfIHwgJHRlc3RfdHQgfCAkKCRlbGVtX2lkcyksKgotLSAgICAgICAgICAgICAgICB8ICgx IGFzICRlbGVtX3R5LCAwIGFzICRlbGVtX3R5KSB8ICQoI1skZG9jXSkqCi0tICAgICAgICApOwot LSAgICAgICAgaW1wbF9wdHJfcmVhZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAk bWFza190eSB8ICR0ZXN0X3R0KTsKLS0gICAgfQotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9t dXRfcCB7Ci0tICAgIChbJGVsZW1fdHk6dHk7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVu dCwgJG1hc2tfdHk6aWRlbnQsCi0tICAgICAkdXNpemVfdHk6aWRlbnQsICRpc2l6ZV90eTppZGVu dAotLSAgICAgfCAkdGVzdF90dDp0dCB8ICQoJGVsZW1faWRzOmlkZW50KSwqCi0tICAgICB8IEZy b206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLSAg ICAgICAgaW1wbF9taW5pbWFsX3AhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCwgJG1hc2tfdHksICR1c2l6ZV90eSwgJGlzaXplX3R5Ci0tICAgICAgICAgICAg ICAgIHwgcmVmX211dF8gfCAkdGVzdF90dCB8ICQoJGVsZW1faWRzKSwqCi0tICAgICAgICAgICAg ICAgIHwgKDEgYXMgJGVsZW1fdHksIDAgYXMgJGVsZW1fdHkpIHwgJCgjWyRkb2NdKSoKLS0gICAg ICAgICk7Ci0tICAgICAgICBpbXBsX3B0cl9yZWFkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQsICRtYXNrX3R5IHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9wdHJfd3JpdGUhKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHkgfCAkdGVzdF90dCk7Ci0tICAg IH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9iaXRfbWFuaXAucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL2JpdF9tYW5pcC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9iaXRfbWFuaXAucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vYml0X21hbmlw LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNDcgKzAsMCBA QAotLS8vISBMTFZNIGJpdCBtYW5pcHVsYXRpb24gaW50cmluc2ljcy4KLS0jW3J1c3RmbXQ6OnNr aXBdCi0tCi0tcHViKGNyYXRlKSB1c2UgY3JhdGU6Oio7Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9j dHlwZXMsIGRlYWRfY29kZSldCi0tZXh0ZXJuICJDIiB7Ci0tICAgICNbbGlua19uYW1lID0gImxs dm0uY3Rsei52Mmk4Il0KLS0gICAgZm4gY3Rsel91OHgyKHg6IHU4eDIsIGlzX3plcm9fdW5kZWY6 IGJvb2wpIC0+IHU4eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52NGk4Il0KLS0g ICAgZm4gY3Rsel91OHg0KHg6IHU4eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDQ7Ci0t ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52OGk4Il0KLS0gICAgZm4gY3Rsel91OHg4KHg6 IHU4eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDg7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uY3Rsei52MTZpOCJdCi0tICAgIGZuIGN0bHpfdTh4MTYoeDogdTh4MTYsIGlzX3plcm9f dW5kZWY6IGJvb2wpIC0+IHU4eDE2OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjMy aTgiXQotLSAgICBmbiBjdGx6X3U4eDMyKHg6IHU4eDMyLCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1OHgzMjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY2NGk4Il0KLS0gICAgZm4g Y3Rsel91OHg2NCh4OiB1OHg2NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4NjQ7Ci0tCi0t ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MmkxNiJdCi0tICAgIGZuIGN0bHpfdTE2eDIo eDogdTE2eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngyOwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmN0bHoudjRpMTYiXQotLSAgICBmbiBjdGx6X3UxNng0KHg6IHUxNng0LCBpc196 ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6 LnY4aTE2Il0KLS0gICAgZm4gY3Rsel91MTZ4OCh4OiB1MTZ4OCwgaXNfemVyb191bmRlZjogYm9v bCkgLT4gdTE2eDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MTZpMTYiXQotLSAg ICBmbiBjdGx6X3UxNngxNih4OiB1MTZ4MTYsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngx NjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYzMmkxNiJdCi0tICAgIGZuIGN0bHpf dTE2eDMyKHg6IHUxNngzMiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDMyOwotLQotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpMzIiXQotLSAgICBmbiBjdGx6X3UzMngyKHg6 IHUzMngyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4MjsKLS0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdGx6LnY0aTMyIl0KLS0gICAgZm4gY3Rsel91MzJ4NCh4OiB1MzJ4NCwgaXNfemVy b191bmRlZjogYm9vbCkgLT4gdTMyeDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52 OGkzMiJdCi0tICAgIGZuIGN0bHpfdTMyeDgoeDogdTMyeDgsIGlzX3plcm9fdW5kZWY6IGJvb2wp IC0+IHUzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjE2aTMyIl0KLS0gICAg Zm4gY3Rsel91MzJ4MTYoeDogdTMyeDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4MTY7 Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52Mmk2NCJdCi0tICAgIGZuIGN0bHpf dTY0eDIoeDogdTY0eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHgyOwotLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0bHoudjRpNjQiXQotLSAgICBmbiBjdGx6X3U2NHg0KHg6IHU2NHg0 LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdGx6LnY4aTY0Il0KLS0gICAgZm4gY3Rsel91NjR4OCh4OiB1NjR4OCwgaXNfemVyb191bmRl ZjogYm9vbCkgLT4gdTY0eDg7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MWkx MjgiXQotLSAgICBmbiBjdGx6X3UxMjh4MSh4OiB1MTI4eDEsIGlzX3plcm9fdW5kZWY6IGJvb2wp IC0+IHUxMjh4MTsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYyaTEyOCJdCi0tICAg IGZuIGN0bHpfdTEyOHgyKHg6IHUxMjh4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHgy OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjRpMTI4Il0KLS0gICAgZm4gY3Rsel91 MTI4eDQoeDogdTEyOHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDQ7Ci0tCi0tICAg ICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52Mmk4Il0KLS0gICAgZm4gY3R0el91OHgyKHg6IHU4 eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxs dm0uY3R0ei52NGk4Il0KLS0gICAgZm4gY3R0el91OHg0KHg6IHU4eDQsIGlzX3plcm9fdW5kZWY6 IGJvb2wpIC0+IHU4eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52OGk4Il0KLS0g ICAgZm4gY3R0el91OHg4KHg6IHU4eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDg7Ci0t ICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MTZpOCJdCi0tICAgIGZuIGN0dHpfdTh4MTYo eDogdTh4MTYsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDE2OwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmN0dHoudjMyaTgiXQotLSAgICBmbiBjdHR6X3U4eDMyKHg6IHU4eDMyLCBpc196 ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgzMjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6 LnY2NGk4Il0KLS0gICAgZm4gY3R0el91OHg2NCh4OiB1OHg2NCwgaXNfemVyb191bmRlZjogYm9v bCkgLT4gdTh4NjQ7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MmkxNiJdCi0t ICAgIGZuIGN0dHpfdTE2eDIoeDogdTE2eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngy OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjRpMTYiXQotLSAgICBmbiBjdHR6X3Ux Nng0KHg6IHUxNng0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4NDsKLS0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jdHR6LnY4aTE2Il0KLS0gICAgZm4gY3R0el91MTZ4OCh4OiB1MTZ4OCwg aXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0u Y3R0ei52MTZpMTYiXQotLSAgICBmbiBjdHR6X3UxNngxNih4OiB1MTZ4MTYsIGlzX3plcm9fdW5k ZWY6IGJvb2wpIC0+IHUxNngxNjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYzMmkx NiJdCi0tICAgIGZuIGN0dHpfdTE2eDMyKHg6IHUxNngzMiwgaXNfemVyb191bmRlZjogYm9vbCkg LT4gdTE2eDMyOwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjJpMzIiXQotLSAg ICBmbiBjdHR6X3UzMngyKHg6IHUzMngyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4MjsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0aTMyIl0KLS0gICAgZm4gY3R0el91MzJ4 NCh4OiB1MzJ4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDQ7Ci0tICAgICNbbGlua19u YW1lID0gImxsdm0uY3R0ei52OGkzMiJdCi0tICAgIGZuIGN0dHpfdTMyeDgoeDogdTMyeDgsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 dHoudjE2aTMyIl0KLS0gICAgZm4gY3R0el91MzJ4MTYoeDogdTMyeDE2LCBpc196ZXJvX3VuZGVm OiBib29sKSAtPiB1MzJ4MTY7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52Mmk2 NCJdCi0tICAgIGZuIGN0dHpfdTY0eDIoeDogdTY0eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+ IHU2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjRpNjQiXQotLSAgICBmbiBj dHR6X3U2NHg0KHg6IHU2NHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4NDsKLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY4aTY0Il0KLS0gICAgZm4gY3R0el91NjR4OCh4OiB1 NjR4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0eDg7Ci0tCi0tICAgICNbbGlua19uYW1l ID0gImxsdm0uY3R0ei52MWkxMjgiXQotLSAgICBmbiBjdHR6X3UxMjh4MSh4OiB1MTI4eDEsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4MTsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dHR6LnYyaTEyOCJdCi0tICAgIGZuIGN0dHpfdTEyOHgyKHg6IHUxMjh4MiwgaXNfemVyb191bmRl ZjogYm9vbCkgLT4gdTEyOHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjRpMTI4 Il0KLS0gICAgZm4gY3R0el91MTI4eDQoeDogdTEyOHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1MTI4eDQ7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjJpOCJdCi0tICAg IGZuIGN0cG9wX3U4eDIoeDogdTh4MikgLT4gdTh4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdHBvcC52NGk4Il0KLS0gICAgZm4gY3Rwb3BfdTh4NCh4OiB1OHg0KSAtPiB1OHg0OwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY4aTgiXQotLSAgICBmbiBjdHBvcF91OHg4KHg6 IHU4eDgpIC0+IHU4eDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjE2aTgiXQot LSAgICBmbiBjdHBvcF91OHgxNih4OiB1OHgxNikgLT4gdTh4MTY7Ci0tICAgICNbbGlua19uYW1l ID0gImxsdm0uY3Rwb3AudjMyaTgiXQotLSAgICBmbiBjdHBvcF91OHgzMih4OiB1OHgzMikgLT4g dTh4MzI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjY0aTgiXQotLSAgICBmbiBj dHBvcF91OHg2NCh4OiB1OHg2NCkgLT4gdTh4NjQ7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxs dm0uY3Rwb3AudjJpMTYiXQotLSAgICBmbiBjdHBvcF91MTZ4Mih4OiB1MTZ4MikgLT4gdTE2eDI7 Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRpMTYiXQotLSAgICBmbiBjdHBvcF91 MTZ4NCh4OiB1MTZ4NCkgLT4gdTE2eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3Au djhpMTYiXQotLSAgICBmbiBjdHBvcF91MTZ4OCh4OiB1MTZ4OCkgLT4gdTE2eDg7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0uY3Rwb3AudjE2aTE2Il0KLS0gICAgZm4gY3Rwb3BfdTE2eDE2KHg6 IHUxNngxNikgLT4gdTE2eDE2OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYzMmkx NiJdCi0tICAgIGZuIGN0cG9wX3UxNngzMih4OiB1MTZ4MzIpIC0+IHUxNngzMjsKLS0KLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MmkzMiJdCi0tICAgIGZuIGN0cG9wX3UzMngyKHg6 IHUzMngyKSAtPiB1MzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52NGkzMiJd Ci0tICAgIGZuIGN0cG9wX3UzMng0KHg6IHUzMng0KSAtPiB1MzJ4NDsKLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jdHBvcC52OGkzMiJdCi0tICAgIGZuIGN0cG9wX3UzMng4KHg6IHUzMng4KSAt PiB1MzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MTZpMzIiXQotLSAgICBm biBjdHBvcF91MzJ4MTYoeDogdTMyeDE2KSAtPiB1MzJ4MTY7Ci0tCi0tICAgICNbbGlua19uYW1l ID0gImxsdm0uY3Rwb3AudjJpNjQiXQotLSAgICBmbiBjdHBvcF91NjR4Mih4OiB1NjR4MikgLT4g dTY0eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRpNjQiXQotLSAgICBmbiBj dHBvcF91NjR4NCh4OiB1NjR4NCkgLT4gdTY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0u Y3Rwb3AudjhpNjQiXQotLSAgICBmbiBjdHBvcF91NjR4OCh4OiB1NjR4OCkgLT4gdTY0eDg7Ci0t Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjFpMTI4Il0KLS0gICAgZm4gY3Rwb3Bf dTEyOHgxKHg6IHUxMjh4MSkgLT4gdTEyOHgxOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 cG9wLnYyaTEyOCJdCi0tICAgIGZuIGN0cG9wX3UxMjh4Mih4OiB1MTI4eDIpIC0+IHUxMjh4MjsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52NGkxMjgiXQotLSAgICBmbiBjdHBvcF91 MTI4eDQoeDogdTEyOHg0KSAtPiB1MTI4eDQ7Ci0tfQotLQotLXB1YihjcmF0ZSkgdHJhaXQgQml0 TWFuaXAgewotLSAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxmOwotLSAgICBmbiBjdGx6KHNlbGYp IC0+IFNlbGY7Ci0tICAgIGZuIGN0dHooc2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tbWFjcm9fcnVs ZXMhIGltcGxfYml0X21hbmlwIHsKLS0gICAgKGlubmVyOiAkdHk6aWRlbnQsICRzY2FsYXI6dHks ICR1dHk6aWRlbnQsCi0tICAgICAkY3Rwb3A6aWRlbnQsICRjdGx6OmlkZW50LCAkY3R0ejppZGVu dCkgPT4gewotLSAgICAgICAgLy8gRklYTUU6IHNldmVyYWwgTExWTSBpbnRyaW5zaWNzIGJyZWFr IG9uIHMzOTB4IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2lt ZC9pc3N1ZXMvMTkyCi0tICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXQotLSAg ICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2NhbGFyOiAkdHksICRzY2FsYXIgfQotLSAgICAgICAg I1tjZmcobm90KHRhcmdldF9hcmNoID0gInMzOTB4IikpXQotLSAgICAgICAgaW1wbCBCaXRNYW5p cCBmb3IgJHR5IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjdHBv cChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNh c3QoKTsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgJGN0cG9wKHkpLmNhc3QoKSB9Ci0tICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0 bHooc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5j YXN0KCk7Ci0tICAgICAgICAgICAgICAgIC8vIHRoZSBjdHh4IGludHJpbnNpY3MgbmVlZCBjb21w aWxlLXRpbWUgY29uc3RhbnQKLS0gICAgICAgICAgICAgICAgLy8gYGlzX3plcm9fdW5kZWZgCi0t ICAgICAgICAgICAgICAgIHVuc2FmZSB7ICRjdGx6KHksIGZhbHNlKS5jYXN0KCkgfQotLSAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjdHR6 KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2Fz dCgpOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyAkY3R0eih5LCBmYWxzZSkuY2FzdCgpIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIChzaXplZF9pbm5lcjog JHR5OmlkZW50LCAkc2NhbGFyOnR5LCAkdXR5OmlkZW50KSA9PiB7Ci0tICAgICAgICAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJzMzkweCIpXQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2NhbGFy OiAkdHksICRzY2FsYXIgfQotLSAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gInMzOTB4 IikpXQotLSAgICAgICAgaW1wbCBCaXRNYW5pcCBmb3IgJHR5IHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgJHV0eTo6 Y3Rwb3AoeSkuY2FzdCgpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAg IGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgICR1dHk6OmN0bHoo eSkuY2FzdCgpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuIGN0dHooc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCB5 OiAkdXR5ID0gc2VsZi5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgICR1dHk6OmN0dHooeSkuY2Fz dCgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAoc2NhbGFyOiAk dHk6aWRlbnQsICRzY2FsYXI6dHkpID0+IHsKLS0gICAgICAgIGltcGwgQml0TWFuaXAgZm9yICR0 eSB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY3Rwb3Aoc2VsZikg LT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCBtdXQgb25lcyA9IHNlbGY7Ci0tICAgICAg ICAgICAgICAgIGZvciBpIGluIDAuLlNlbGY6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgb25lcyA9IG9uZXMucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSkuY291bnRfb25lcygpIGFz ICRzY2FsYXIpOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIG9uZXMKLS0g ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4g Y3RseihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IG11dCBseiA9IHNlbGY7 Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLlNlbGY6OmxhbmVzKCkgewotLSAgICAgICAg ICAgICAgICAgICAgbHogPSBsei5yZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpKS5sZWFkaW5nX3pl cm9zKCkgYXMgJHNjYWxhcik7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg bHoKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IG11dCB0eiA9 IHNlbGY7Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLlNlbGY6OmxhbmVzKCkgewotLSAg ICAgICAgICAgICAgICAgICAgdHogPSB0ei5yZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpKS50cmFp bGluZ196ZXJvcygpIGFzICRzY2FsYXIpOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIHR6Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAoJHV0 eTppZGVudCwgJHVzY2FsYXI6dHksICRpdHk6aWRlbnQsICRpc2NhbGFyOnR5LAotLSAgICAgJGN0 cG9wOmlkZW50LCAkY3RsejppZGVudCwgJGN0dHo6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxf Yml0X21hbmlwISB7IGlubmVyOiAkdXR5LCAkdXNjYWxhciwgJHV0eSwgJGN0cG9wLCAkY3Rseiwg JGN0dHogfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgaW5uZXI6ICRpdHksICRpc2NhbGFy LCAkdXR5LCAkY3Rwb3AsICRjdGx6LCAkY3R0eiB9Ci0tICAgIH07Ci0tICAgIChzaXplZDogJHVz aXplOmlkZW50LCAkdXNjYWxhcjp0eSwgJGlzaXplOmlkZW50LAotLSAgICAgJGlzY2FsYXI6dHks ICR0eTppZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWRfaW5uZXI6 ICR1c2l6ZSwgJHVzY2FsYXIsICR0eSB9Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXpl ZF9pbm5lcjogJGlzaXplLCAkaXNjYWxhciwgJHR5IH0KLS0gICAgfTsKLS19Ci0tCi0taW1wbF9i aXRfbWFuaXAhIHsgdTh4MiAgICwgICB1OCwgaTh4MiwgaTgsICAgY3Rwb3BfdTh4MiwgICBjdGx6 X3U4eDIsICAgY3R0el91OHgyICAgfQotLWltcGxfYml0X21hbmlwISB7IHU4eDQgICAsICAgdTgs IGk4eDQsIGk4LCAgIGN0cG9wX3U4eDQsICAgY3Rsel91OHg0LCAgIGN0dHpfdTh4NCAgIH0KLS0j W2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0gLy8gc2VlIGJlbG93Ci0taW1wbF9i aXRfbWFuaXAhIHsgdTh4OCAgICwgICB1OCwgaTh4OCwgaTgsICAgY3Rwb3BfdTh4OCwgICBjdGx6 X3U4eDgsICAgY3R0el91OHg4ICAgfQotLWltcGxfYml0X21hbmlwISB7IHU4eDE2ICAsICB1OCwg aTh4MTYsIGk4LCAgY3Rwb3BfdTh4MTYsICBjdGx6X3U4eDE2LCAgY3R0el91OHgxNiAgfQotLWlt cGxfYml0X21hbmlwISB7IHU4eDMyICAsICB1OCwgaTh4MzIsIGk4LCAgY3Rwb3BfdTh4MzIsICBj dGx6X3U4eDMyLCAgY3R0el91OHgzMiAgfQotLWltcGxfYml0X21hbmlwISB7IHU4eDY0ICAsICB1 OCwgaTh4NjQsIGk4LCAgY3Rwb3BfdTh4NjQsICBjdGx6X3U4eDY0LCAgY3R0el91OHg2NCAgfQot LWltcGxfYml0X21hbmlwISB7IHUxNngyICAsICB1MTYsIGkxNngyLCBpMTYsICBjdHBvcF91MTZ4 MiwgIGN0bHpfdTE2eDIsICBjdHR6X3UxNngyICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTE2eDQg ICwgIHUxNiwgaTE2eDQsIGkxNiwgIGN0cG9wX3UxNng0LCAgY3Rsel91MTZ4NCwgIGN0dHpfdTE2 eDQgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4OCAgLCAgdTE2LCBpMTZ4OCwgaTE2LCAgY3Rw b3BfdTE2eDgsICBjdGx6X3UxNng4LCAgY3R0el91MTZ4OCAgfQotLWltcGxfYml0X21hbmlwISB7 IHUxNngxNiAsIHUxNiwgaTE2eDE2LCBpMTYsIGN0cG9wX3UxNngxNiwgY3Rsel91MTZ4MTYsIGN0 dHpfdTE2eDE2IH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4MzIgLCB1MTYsIGkxNngzMiwgaTE2 LCBjdHBvcF91MTZ4MzIsIGN0bHpfdTE2eDMyLCBjdHR6X3UxNngzMiB9Ci0taW1wbF9iaXRfbWFu aXAhIHsgdTMyeDIgICwgIHUzMiwgaTMyeDIsIGkzMiwgIGN0cG9wX3UzMngyLCAgY3Rsel91MzJ4 MiwgIGN0dHpfdTMyeDIgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MzJ4NCAgLCAgdTMyLCBpMzJ4 NCwgaTMyLCAgY3Rwb3BfdTMyeDQsICBjdGx6X3UzMng0LCAgY3R0el91MzJ4NCAgfQotLWltcGxf Yml0X21hbmlwISB7IHUzMng4ICAsICB1MzIsIGkzMng4LCBpMzIsICBjdHBvcF91MzJ4OCwgIGN0 bHpfdTMyeDgsICBjdHR6X3UzMng4ICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTMyeDE2ICwgdTMy LCBpMzJ4MTYsIGkzMiwgY3Rwb3BfdTMyeDE2LCBjdGx6X3UzMngxNiwgY3R0el91MzJ4MTYgfQot LWltcGxfYml0X21hbmlwISB7IHU2NHgyICAsICB1NjQsIGk2NHgyLCBpNjQsICBjdHBvcF91NjR4 MiwgIGN0bHpfdTY0eDIsICBjdHR6X3U2NHgyICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTY0eDQg ICwgIHU2NCwgaTY0eDQsIGk2NCwgIGN0cG9wX3U2NHg0LCAgY3Rsel91NjR4NCwgIGN0dHpfdTY0 eDQgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1NjR4OCAgLCAgdTY0LCBpNjR4OCwgaTY0LCAgY3Rw b3BfdTY0eDgsICBjdGx6X3U2NHg4LCAgY3R0el91NjR4OCAgfQotLWltcGxfYml0X21hbmlwISB7 IHUxMjh4MSAsIHUxMjgsIGkxMjh4MSwgaTEyOCwgY3Rwb3BfdTEyOHgxLCBjdGx6X3UxMjh4MSwg Y3R0el91MTI4eDEgfQotLWltcGxfYml0X21hbmlwISB7IHUxMjh4MiAsIHUxMjgsIGkxMjh4Miwg aTEyOCwgY3Rwb3BfdTEyOHgyLCBjdGx6X3UxMjh4MiwgY3R0el91MTI4eDIgfQotLWltcGxfYml0 X21hbmlwISB7IHUxMjh4NCAsIHUxMjgsIGkxMjh4NCwgaTEyOCwgY3Rwb3BfdTEyOHg0LCBjdGx6 X3UxMjh4NCwgY3R0el91MTI4eDQgfQotLQotLSNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQi KV0KLS1pbXBsIEJpdE1hbmlwIGZvciB1OHg4IHsKLS0gICAgI1tpbmxpbmVdCi0tICAgIGZuIGN0 cG9wKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgbGV0IHk6IHU4eDggPSBzZWxmLmNhc3QoKTsK LS0gICAgICAgIHVuc2FmZSB7IGN0cG9wX3U4eDgoeSkuY2FzdCgpIH0KLS0gICAgfQotLQotLSAg ICAjW2lubGluZV0KLS0gICAgZm4gY3RseihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgIGxldCB5 OiB1OHg4ID0gc2VsZi5jYXN0KCk7Ci0tICAgICAgICB1bnNhZmUgeyBjdGx6X3U4eDgoeSwgZmFs c2UpLmNhc3QoKSB9Ci0tICAgIH0KLS0KLS0gICAgI1tpbmxpbmVdCi0tICAgIGZuIGN0dHooc2Vs ZikgLT4gU2VsZiB7Ci0tICAgICAgICAvLyBGSVhNRTogTExWTSBjdHR6LnY4aTggYnJva2VuIG9u IGFhcmNoNjQgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L2lzc3Vlcy8xOTEKLS0gICAgICAgIC8vIE9QVElNSVpFOiBhZGFwdCB0aGUgYWxnb3JpdGhtIHVz ZWQgZm9yIHY4aTE2L2V0YyB0byBSdXN0J3MgYWFyY2g2NAotLSAgICAgICAgLy8gaW50cmluc2lj cwotLSAgICAgICAgbGV0IG11dCB0eiA9IHNlbGY7Ci0tICAgICAgICBmb3IgaSBpbiAwLi5TZWxm OjpsYW5lcygpIHsKLS0gICAgICAgICAgICB0eiA9IHR6LnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0 KGkpLnRyYWlsaW5nX3plcm9zKCkgYXMgdTgpOwotLSAgICAgICAgfQotLSAgICAgICAgdHoKLS0g ICAgfQotLX0KLS0jW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0taW1wbCBCaXRNYW5p cCBmb3IgaTh4OCB7Ci0tICAgICNbaW5saW5lXQotLSAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxm IHsKLS0gICAgICAgIGxldCB5OiB1OHg4ID0gc2VsZi5jYXN0KCk7Ci0tICAgICAgICB1bnNhZmUg eyBjdHBvcF91OHg4KHkpLmNhc3QoKSB9Ci0tICAgIH0KLS0KLS0gICAgI1tpbmxpbmVdCi0tICAg IGZuIGN0bHooc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2Fz dCgpOwotLSAgICAgICAgdW5zYWZlIHsgY3Rsel91OHg4KHksIGZhbHNlKS5jYXN0KCkgfQotLSAg ICB9Ci0tCi0tICAgICNbaW5saW5lXQotLSAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgewotLSAg ICAgICAgLy8gRklYTUU6IExMVk0gY3R0ei52OGk4IGJyb2tlbiBvbiBhYXJjaDY0IGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTkxCi0tICAg ICAgICAvLyBPUFRJTUlaRTogYWRhcHQgdGhlIGFsZ29yaXRobSB1c2VkIGZvciB2OGkxNi9ldGMg dG8gUnVzdCdzIGFhcmNoNjQKLS0gICAgICAgIC8vIGludHJpbnNpY3MKLS0gICAgICAgIGxldCBt dXQgdHogPSBzZWxmOwotLSAgICAgICAgZm9yIGkgaW4gMC4uU2VsZjo6bGFuZXMoKSB7Ci0tICAg ICAgICAgICAgdHogPSB0ei5yZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpKS50cmFpbGluZ196ZXJv cygpIGFzIGk4KTsKLS0gICAgICAgIH0KLS0gICAgICAgIHR6Ci0tICAgIH0KLS19Ci0tCi0tY2Zn X2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjgiKV0gewotLSAg ICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDIsIHVzaXplLCBpc2l6ZXgyLCBp c2l6ZSwgdTh4MiB9Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4NCwg dXNpemUsIGlzaXpleDQsIGlzaXplLCB1OHg0IH0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7 IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUsIHU4eDggfQotLSAgICB9IGVs c2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMTYiKV0gewotLSAgICAgICAgaW1w bF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDIsIHVzaXplLCBpc2l6ZXgyLCBpc2l6ZSwgdTE2 eDIgfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDQsIHVzaXplLCBp c2l6ZXg0LCBpc2l6ZSwgdTE2eDQgfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6 IHVzaXpleDgsIHVzaXplLCBpc2l6ZXg4LCBpc2l6ZSwgdTE2eDggfQotLSAgICB9IGVsc2UgaWYg I1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0gewotLSAgICAgICAgaW1wbF9iaXRf bWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDIsIHVzaXplLCBpc2l6ZXgyLCBpc2l6ZSwgdTMyeDIgfQot LSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDQsIHVzaXplLCBpc2l6ZXg0 LCBpc2l6ZSwgdTMyeDQgfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpl eDgsIHVzaXplLCBpc2l6ZXg4LCBpc2l6ZSwgdTMyeDggfQotLSAgICB9IGVsc2UgaWYgI1tjZmco dGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0gewotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAh IHsgc2l6ZWQ6IHVzaXpleDIsIHVzaXplLCBpc2l6ZXgyLCBpc2l6ZSwgdTY0eDIgfQotLSAgICAg ICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDQsIHVzaXplLCBpc2l6ZXg0LCBpc2l6 ZSwgdTY0eDQgfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDgsIHVz aXplLCBpc2l6ZXg4LCBpc2l6ZSwgdTY0eDggfQotLSAgICB9IGVsc2UgewotLSAgICAgICAgY29t cGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAgIH0K LS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9sbHZtLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9sbHZt LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2xsdm0u cnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTIyICswLDAgQEAKLS0vLyEgTExWTSdzIHBsYXRmb3Jt IGludHJpbnNpY3MKLS0jIVthbGxvdyhkZWFkX2NvZGUpXQotLQotLXVzZSBjcmF0ZTo6c2VhbGVk OjpTaHVmZmxlOwotLSNbYWxsb3codW51c2VkX2ltcG9ydHMpXSAvLyBGSVhNRTogc3B1cmlvdXMg d2FybmluZz8KLS11c2UgY3JhdGU6OnNlYWxlZDo6U2ltZDsKLS0KLS1leHRlcm4gInBsYXRmb3Jt LWludHJpbnNpYyIgewotLSAgICBmbiBzaW1kX3NodWZmbGU8VCwgSSwgVT4oeDogVCwgeTogVCwg aWR4OiBJKSAtPiBVOwotLX0KLS0KLS0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19zYWZldHlfZG9j KV0KLS0jW2lubGluZV0KLS1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92ZWN0b3IyPGNvbnN0IElE WDogW3UzMjsgMl0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKLS13aGVyZQotLSAgICBUOiBTaW1k LAotLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyAyXSwgT3V0cHV0ID0g VT4sCi0tewotLSAgICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQotLX0KLS0KLS0jW2FsbG93KGNs aXBweTo6bWlzc2luZ19zYWZldHlfZG9jKV0KLS0jW2lubGluZV0KLS1wdWIgdW5zYWZlIGZuIF9f c2h1ZmZsZV92ZWN0b3I0PGNvbnN0IElEWDogW3UzMjsgNF0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+ IFUKLS13aGVyZQotLSAgICBUOiBTaW1kLAotLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1 ZmZsZTxbdTMyOyA0XSwgT3V0cHV0ID0gVT4sCi0tewotLSAgICBzaW1kX3NodWZmbGUoeCwgeSwg SURYKQotLX0KLS0KLS0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19zYWZldHlfZG9jKV0KLS0jW2lu bGluZV0KLS1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92ZWN0b3I4PGNvbnN0IElEWDogW3UzMjsg OF0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKLS13aGVyZQotLSAgICBUOiBTaW1kLAotLSAgICA8 VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyA4XSwgT3V0cHV0ID0gVT4sCi0tewot LSAgICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQotLX0KLS0KLS0jW2FsbG93KGNsaXBweTo6bWlz c2luZ19zYWZldHlfZG9jKV0KLS0jW2lubGluZV0KLS1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92 ZWN0b3IxNjxjb25zdCBJRFg6IFt1MzI7IDE2XSwgVCwgVT4oeDogVCwgeTogVCkgLT4gVQotLXdo ZXJlCi0tICAgIFQ6IFNpbWQsCi0tICAgIDxUIGFzIFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1 MzI7IDE2XSwgT3V0cHV0ID0gVT4sCi0tewotLSAgICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQot LX0KLS0KLS0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19zYWZldHlfZG9jKV0KLS0jW2lubGluZV0K LS1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92ZWN0b3IzMjxjb25zdCBJRFg6IFt1MzI7IDMyXSwg VCwgVT4oeDogVCwgeTogVCkgLT4gVQotLXdoZXJlCi0tICAgIFQ6IFNpbWQsCi0tICAgIDxUIGFz IFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1MzI7IDMyXSwgT3V0cHV0ID0gVT4sCi0tewotLSAg ICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQotLX0KLS0KLS0jW2FsbG93KGNsaXBweTo6bWlzc2lu Z19zYWZldHlfZG9jKV0KLS0jW2lubGluZV0KLS1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92ZWN0 b3I2NDxjb25zdCBJRFg6IFt1MzI7IDY0XSwgVCwgVT4oeDogVCwgeTogVCkgLT4gVQotLXdoZXJl Ci0tICAgIFQ6IFNpbWQsCi0tICAgIDxUIGFzIFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1MzI7 IDY0XSwgT3V0cHV0ID0gVT4sCi0tewotLSAgICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQotLX0K LS0KLS1leHRlcm4gInBsYXRmb3JtLWludHJpbnNpYyIgewotLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfZXE8VCwgVT4oeDogVCwgeTogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX25l PFQsIFU+KHg6IFQsIHk6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9sdDxULCBV Pih4OiBULCB5OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbGU8VCwgVT4oeDog VCwgeTogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2d0PFQsIFU+KHg6IFQsIHk6 IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9nZTxULCBVPih4OiBULCB5OiBUKSAt PiBVOwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfaW5zZXJ0PFQsIFU+KHg6IFQsIGlkeDog dTMyLCB2YWw6IFUpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9leHRyYWN0PFQsIFU+ KHg6IFQsIGlkeDogdTMyKSAtPiBVOwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfY2FzdDxU LCBVPih4OiBUKSAtPiBVOwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfYWRkPFQ+KHg6IFQs IHk6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9zdWI8VD4oeDogVCwgeTogVCkg LT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX211bDxUPih4OiBULCB5OiBUKSAtPiBUOwot LSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZGl2PFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0tICAgIHB1 YihjcmF0ZSkgZm4gc2ltZF9yZW08VD4oeDogVCwgeTogVCkgLT4gVDsKLS0gICAgcHViKGNyYXRl KSBmbiBzaW1kX3NobDxUPih4OiBULCB5OiBUKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfc2hyPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9hbmQ8 VD4oeDogVCwgeTogVCkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX29yPFQ+KHg6IFQs IHk6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF94b3I8VD4oeDogVCwgeTogVCkg LT4gVDsKLS0KLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9hZGRfdW5vcmRlcmVkPFQs IFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfbXVsX3Vub3Jk ZXJlZDxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2Fk ZF9vcmRlcmVkPFQsIFU+KHg6IFQsIGFjYzogVSkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBz aW1kX3JlZHVjZV9tdWxfb3JkZXJlZDxULCBVPih4OiBULCBhY2M6IFUpIC0+IFU7Ci0tICAgIHB1 YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfbWluPFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1Yihj cmF0ZSkgZm4gc2ltZF9yZWR1Y2VfbWF4PFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0 ZSkgZm4gc2ltZF9yZWR1Y2VfbWluX25hbmxlc3M8VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHVi KGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9tYXhfbmFubGVzczxULCBVPih4OiBUKSAtPiBVOwotLSAg ICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2FuZDxULCBVPih4OiBUKSAtPiBVOwotLSAgICBw dWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX29yPFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1Yihj cmF0ZSkgZm4gc2ltZF9yZWR1Y2VfeG9yPFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0 ZSkgZm4gc2ltZF9yZWR1Y2VfYWxsPFQ+KHg6IFQpIC0+IGJvb2w7Ci0tICAgIHB1YihjcmF0ZSkg Zm4gc2ltZF9yZWR1Y2VfYW55PFQ+KHg6IFQpIC0+IGJvb2w7Ci0tCi0tICAgIHB1YihjcmF0ZSkg Zm4gc2ltZF9zZWxlY3Q8TSwgVD4obTogTSwgYTogVCwgYjogVCkgLT4gVDsKLS0KLS0gICAgcHVi KGNyYXRlKSBmbiBzaW1kX2ZtaW48VD4oYTogVCwgYjogVCkgLT4gVDsKLS0gICAgcHViKGNyYXRl KSBmbiBzaW1kX2ZtYXg8VD4oYTogVCwgYjogVCkgLT4gVDsKLS0KLS0gICAgcHViKGNyYXRlKSBm biBzaW1kX2ZzcXJ0PFQ+KGE6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9mbWE8 VD4oYTogVCwgYjogVCwgYzogVCkgLT4gVDsKLS0KLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2dh dGhlcjxULCBQLCBNPih2YWx1ZTogVCwgcG9pbnRlcnM6IFAsIG1hc2s6IE0pIC0+IFQ7Ci0tICAg IHB1YihjcmF0ZSkgZm4gc2ltZF9zY2F0dGVyPFQsIFAsIE0+KHZhbHVlOiBULCBwb2ludGVyczog UCwgbWFzazogTSk7Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9iaXRtYXNrPFQsIFU+KHZh bHVlOiBUKSAtPiBVOwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvYWJzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsMTAzICswLDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmct cG9pbnQgYGZhYnNgCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQgMSBl bGVtIHZlY3RvcnMgZmFicwotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0 IEFicyB7Ci0tICAgIGZuIGFicyhzZWxmKSAtPiBTZWxmOwotLX0KLS0KLS0jW2FsbG93KGltcHJv cGVyX2N0eXBlcyldCi0tZXh0ZXJuICJDIiB7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZmFi cy52MmYzMiJdCi0tICAgIGZuIGZhYnNfdjJmMzIoeDogZjMyeDIpIC0+IGYzMngyOwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjRmMzIiXQotLSAgICBmbiBmYWJzX3Y0ZjMyKHg6IGYz Mng0KSAtPiBmMzJ4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnY4ZjMyIl0KLS0g ICAgZm4gZmFic192OGYzMih4OiBmMzJ4OCkgLT4gZjMyeDg7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uZmFicy52MTZmMzIiXQotLSAgICBmbiBmYWJzX3YxNmYzMih4OiBmMzJ4MTYpIC0+IGYz MngxNjsKLS0gICAgLyogRklYTUUgNjQtYml0IGZhYnNnbGUgZWxlbSB2ZWN0b3JzCi0tICAgICNb bGlua19uYW1lID0gImxsdm0uZmFicy52MWY2NCJdCi0tICAgIGZuIGZhYnNfdjFmNjQoeDogZjY0 eDEpIC0+IGY2NHgxOwotLSAgICAgKi8KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnYy ZjY0Il0KLS0gICAgZm4gZmFic192MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0uZmFicy52NGY2NCJdCi0tICAgIGZuIGZhYnNfdjRmNjQoeDogZjY0eDQp IC0+IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjhmNjQiXQotLSAgICBm biBmYWJzX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5mYWJzLmYzMiJdCi0tICAgIGZuIGZhYnNfZjMyKHg6IGYzMikgLT4gZjMyOwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMuZjY0Il0KLS0gICAgZm4gZmFic19mNjQoeDogZjY0KSAt PiBmNjQ7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShBYnMsIGFicyk7Ci0tCi0tY2Zn X2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKLS0gICAgICAg IC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3Np bWQvaXNzdWVzLzE0Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBmYWJzX2Yz Mik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBmYWJzX2YzMik7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBmYWJzX2YzMik7Ci0tICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IGZhYnNfZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5h cnkhKGY2NHgyW2Y2NDsgMl06IGZhYnNfZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 W2Y2NDsgNF06IGZhYnNfZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06 IGZhYnNfZjY0KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZf NjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6 KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0 dXJlID0gImF2eDIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+ IGYzMng0XTogU2xlZWZfZmFic2Y0X2F2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2ZhYnNmOF9hdngyKTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2ZhYnNkNF9hdngyKTsK LS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2ZhYnNmNF9hdngy MTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2ZhYnNmOF9h dngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2ZhYnNkMl9h dngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2ZhYnNk NF9hdngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi YXZ4IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX2ZhYnNmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2 W2ggPT4gZjMyeDhdOiBTbGVlZl9mYWJzZjhfYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2ZhYnNkNF9hdngpOwotLQotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZmFic2Y0X3NzZTQpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfZmFic2Y4X2F2eCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9mYWJzZDJfc3NlNCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9mYWJzZDRfYXZ4KTsKLS0gICAgICAgICAg ICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZhYnNmNF9zc2U0 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVl Zl9mYWJzZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4g ZjY0eDJdOiBTbGVlZl9mYWJzZDJfc3NlNCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng0OiBTbGVlZl9mYWJzZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRfc3NlNCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9mYWJzZDJfc3NlNCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9mYWJzZDJfc3NlNCk7Ci0t ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb ZjMyOyAyXTogZmFic19mMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6 IGZhYnNfdjE2ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGZhYnNf djhmNjQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogZmFic192NGYz Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBmYWJzX3Y4ZjMyKTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGZhYnNfdjJmNjQpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogZmFic192NGY2NCk7Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMy OyAyXTogZmFic19mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGZhYnNfdjRmMzIp OwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGZhYnNfdjhmMzIpOwotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDE2OiBmYWJzX3YxNmYzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShm NjR4MjogZmFic192MmY2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogZmFic192NGY2 NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZmFic192OGY2NCk7Ci0tICAgIH0KLS19 Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9t YXRoL2Zsb2F0L2Nvcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9jb3MucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3MucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9jb3MucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDEwMyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBjb3NgCi0tIyFb YWxsb3codW51c2VkKV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvciBjb3MKLS0K LS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBDb3MgewotLSAgICBmbiBjb3Mo c2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVy biAiQyIgewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52MmYzMiJdCi0tICAgIGZuIGNv c192MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29z LnY0ZjMyIl0KLS0gICAgZm4gY29zX3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jb3MudjhmMzIiXQotLSAgICBmbiBjb3NfdjhmMzIoeDogZjMyeDgp IC0+IGYzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52MTZmMzIiXQotLSAgICBm biBjb3NfdjE2ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2NC1iaXQg Y29zZ2xlIGVsZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52MWY2NCJd Ci0tICAgIGZuIGNvc192MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7Ci0tICAgICAqLwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52MmY2NCJdCi0tICAgIGZuIGNvc192MmY2NCh4OiBmNjR4 MikgLT4gZjY0eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnY0ZjY0Il0KLS0gICAg Zm4gY29zX3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jb3MudjhmNjQiXQotLSAgICBmbiBjb3NfdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OwotLQot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy5mMzIiXQotLSAgICBmbiBjb3NfZjMyKHg6IGYz MikgLT4gZjMyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy5mNjQiXQotLSAgICBmbiBj b3NfZjY0KHg6IGY2NCkgLT4gZjY0OwotLX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoQ29z LCBjb3MpOwotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkw eCIpXSB7Ci0tICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb ZjMyOyAyXTogY29zX2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBj b3NfZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IGNvc19mMzIpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBjb3NfZjMyKTsKLS0KLS0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IGNvc19mNjQpOwotLSAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDRbZjY0OyA0XTogY29zX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 OFtmNjQ7IDhdOiBjb3NfZjY0KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNs ZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29zZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfY29zZjhfdTEwYXZ4Mik7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9j b3NkNF91MTBhdngyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNs ZWVmX2Nvc2Y0X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 ODogU2xlZWZfY29zZjhfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHgyOiBTbGVlZl9jb3NkMl91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IFNsZWVmX2Nvc2Q0X3UxMGF2eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29zZjRfdTEwc3NlNCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfY29zZjhfdTEwYXZ4 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVm X2Nvc2Q0X3UxMGF2eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBT bGVlZl9jb3NmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6 IFNsZWVmX2Nvc2Y4X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgy OiBTbGVlZl9jb3NkMl91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDQ6IFNsZWVmX2Nvc2Q0X3UxMGF2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBzc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2Nv c2QyX3UxMHNzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xl ZWZfY29zZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2gg PT4gZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc2QyX3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfY29zZDJfdTEwc3NlNCk7Ci0tICAgICAg ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAy XTogY29zX2YzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogY29zX3Yx NmYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBjb3NfdjhmNjQpOwot LQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogY29zX3Y0ZjMyKTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGNvc192OGYzMik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBjb3NfdjJmNjQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NDogY29zX3Y0ZjY0KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBjb3NfZjMy KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBjb3NfdjRmMzIpOwotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDg6IGNvc192OGYzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6 IGNvc192MTZmMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGNvc192MmY2NCk7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogY29zX3Y0ZjY0KTsKLS0gICAgICAgIGltcGxf dW5hcnkhKGY2NHg4OiBjb3NfdjhmNjQpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3NfcGkucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29z X3BpLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvY29zX3BpLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv Y29zX3BpLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4NyAr MCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBjb3NgCi0tIyFbYWxsb3codW51 c2VkKV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgY29zX3BpCi0tCi0tdXNl IGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgQ29zUGkgewotLSAgICBmbiBjb3NfcGko c2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKENvc1BpLCBjb3Nf cGkpOwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZiB7Ci0tICAgICgkdmlkOmlkZW50LCAkUEk6 cGF0aCkgPT4gewotLSAgICAgICAgaW1wbCBDb3NQaSBmb3IgJHZpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY29zX3BpKHNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICAoc2VsZiAqIFNlbGY6OnNwbGF0KCRQSSkpLmNvcygpCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWYzMiB7Ci0t ICAgICgkdmlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmYz Mjo6Y29uc3RzOjpQSSk7Ci0tICAgIH07Ci0tfQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZjY0IHsK LS0gICAgKCR2aWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6 ZjY0Ojpjb25zdHM6OlBJKTsKLS0gICAgfTsKLS19Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNb Y2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0g ewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAg ICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29zcGlmNF91MDVhdngy MTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBT bGVlZl9jb3NwaWY4X3UwNWF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 OFtoID0+IGY2NHg0XTogU2xlZWZfY29zcGlkNF91MDVhdngyKTsKLS0KLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc3BpZjRfdTA1YXZ4MjEyOCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9jb3NwaWY4X3UwNWF2eDIpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zcGlkMl91MDVhdngyMTI4 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc3BpZDRfdTA1 YXZ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2 eCIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBT bGVlZl9jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2Nvc3BpZDRfdTA1YXZ4KTsKLS0K LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc3BpZjRfdTA1c3Nl NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9jb3NwaWY4X3Uw NWF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NwaWQy X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfY29z cGlkNF91MDVhdngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVy ZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+ IGYzMng0XTogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfY29zcGlkMl91 MDVzc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nv c3BpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4g ZjMyeDRdOiBTbGVlZl9jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4MjogU2xlZWZfY29zcGlkMl91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2Nvc3BpZDJfdTA1c3NlNCk7Ci0tICAg ICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDIpOwot LSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfZGVmMzIhKGYzMng4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsK LS0KLS0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX2RlZjY0IShmNjR4NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHg4 KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBp bXBsX2RlZjMyIShmMzJ4Mik7Ci0tICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7Ci0tICAgICAg ICBpbXBsX2RlZjMyIShmMzJ4OCk7Ci0tICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwotLQot LSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOwotLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDQp OwotLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9leHAu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv ZXhwLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvZXhwLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvZXhw LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMTIgKzAsMCBA QAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgZXhwYAotLSMhW2FsbG93KHVudXNlZCld Ci0tCi0tLy8gRklYTUUgNjQtYml0IGV4cGdsZSBlbGVtIHZlY3RvcnMgbWlzZXhwZwotLQotLXVz ZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IEV4cCB7Ci0tICAgIGZuIGV4cChzZWxm KSAtPiBTZWxmOwotLX0KLS0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCi0tZXh0ZXJuICJD IiB7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnYyZjMyIl0KLS0gICAgZm4gZXhwX3Yy ZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjRm MzIiXQotLSAgICBmbiBleHBfdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmV4cC52OGYzMiJdCi0tICAgIGZuIGV4cF92OGYzMih4OiBmMzJ4OCkgLT4g ZjMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnYxNmYzMiJdCi0tICAgIGZuIGV4 cF92MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBleHBn bGUgZWxlbSB2ZWN0b3JzCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnYxZjY0Il0KLS0g ICAgZm4gZXhwX3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgICovCi0tICAgICNbbGlu a19uYW1lID0gImxsdm0uZXhwLnYyZjY0Il0KLS0gICAgZm4gZXhwX3YyZjY0KHg6IGY2NHgyKSAt PiBmNjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjRmNjQiXQotLSAgICBmbiBl eHBfdjRmNjQoeDogZjY0eDQpIC0+IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4 cC52OGY2NCJdCi0tICAgIGZuIGV4cF92OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7Ci0tCi0tICAg ICNbbGlua19uYW1lID0gImxsdm0uZXhwLmYzMiJdCi0tICAgIGZuIGV4cF9mMzIoeDogZjMyKSAt PiBmMzI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLmY2NCJdCi0tICAgIGZuIGV4cF9m NjQoeDogZjY0KSAtPiBmNjQ7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShFeHAsIGV4 cCk7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4Iild IHsKLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7 IDJdOiBleHBfZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IGV4cF9m MzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogZXhwX2YzMik7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IGV4cF9mMzIpOwotLQotLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDJbZjY0OyAyXTogZXhwX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4NFtmNjQ7IDRdOiBleHBfZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2 NDsgOF06IGV4cF9mNjQpOwotLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0g Ing4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1c2Ugc2xlZWZf c3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngy W3QgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9leHBmOF91MTBhdngyKTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2V4cGQ0 X3UxMGF2eDIpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZf ZXhwZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBT bGVlZl9leHBmOF91MTBhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6 IFNsZWVmX2V4cGQyX3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NDogU2xlZWZfZXhwZDRfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9leHBmOF91MTBhdngpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfZXhw ZDRfdTEwYXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVm X2V4cGY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xl ZWZfZXhwZjhfdTEwYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNs ZWVmX2V4cGQyX3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDog U2xlZWZfZXhwZDRfdTEwYXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfZXhwZDJf dTEwc3NlNCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9l eHBmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBm MzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4MjogU2xlZWZfZXhwZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9leHBkMl91MTBzc2U0KTsKLS0gICAgICAgICAg ICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2Uy KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVl Zl9leHBmNF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9 PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTIpOwotLQotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4NDogU2xlZWZfZXhwZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2UyKTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2V4cGQyX3UxMHNzZTIpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZXhwZDJf dTEwc3NlMik7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDJbZjMyOyAyXTogZXhwX2YzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngxNjogZXhwX3YxNmYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4OiBleHBfdjhmNjQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDog ZXhwX3Y0ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGV4cF92OGYz Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBleHBfdjJmNjQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogZXhwX3Y0ZjY0KTsKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MltmMzI7IDJdOiBleHBfZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBleHBfdjRm MzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGV4cF92OGYzMik7Ci0tICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTY6IGV4cF92MTZmMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IGV4cF92MmY2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogZXhwX3Y0ZjY0 KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBleHBfdjhmNjQpOwotLSAgICB9Ci0tfQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC9sbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9sbi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9tYXRoL2Zsb2F0L2xuLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvbG4ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEx MiArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBsbmAKLS0jIVthbGxvdyh1 bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCBsbmdsZSBlbGVtIHZlY3RvcnMgbWlzbG5nCi0t Ci0tdXNlIGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgTG4gewotLSAgICBmbiBsbihz ZWxmKSAtPiBTZWxmOwotLX0KLS0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCi0tZXh0ZXJu ICJDIiB7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnYyZjMyIl0KLS0gICAgZm4gbG5f djJmMzIoeDogZjMyeDIpIC0+IGYzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52 NGYzMiJdCi0tICAgIGZuIGxuX3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKLS0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5sb2cudjhmMzIiXQotLSAgICBmbiBsbl92OGYzMih4OiBmMzJ4OCkgLT4g ZjMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnYxNmYzMiJdCi0tICAgIGZuIGxu X3YxNmYzMih4OiBmMzJ4MTYpIC0+IGYzMngxNjsKLS0gICAgLyogRklYTUUgNjQtYml0IGxuZ2xl IGVsZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52MWY2NCJdCi0tICAg IGZuIGxuX3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgICovCi0tICAgICNbbGlua19u YW1lID0gImxsdm0ubG9nLnYyZjY0Il0KLS0gICAgZm4gbG5fdjJmNjQoeDogZjY0eDIpIC0+IGY2 NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52NGY2NCJdCi0tICAgIGZuIGxuX3Y0 ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjhm NjQiXQotLSAgICBmbiBsbl92OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7Ci0tCi0tICAgICNbbGlu a19uYW1lID0gImxsdm0ubG9nLmYzMiJdCi0tICAgIGZuIGxuX2YzMih4OiBmMzIpIC0+IGYzMjsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cuZjY0Il0KLS0gICAgZm4gbG5fZjY0KHg6IGY2 NCkgLT4gZjY0OwotLX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoTG4sIGxuKTsKLS0KLS1j ZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewotLSAgICAg ICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRf c2ltZC9pc3N1ZXMvMTQKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGxuX2Yz Mik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBsbl9mMzIpOwotLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogbG5fZjMyKTsKLS0gICAgICAgIGltcGxfdW5h cnkhKGYzMngxNltmMzI7IDE2XTogbG5fZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2 NHgyW2Y2NDsgMl06IGxuX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRd OiBsbl9mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZjY0OyA4XTogbG5fZjY0KTsK LS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJl ID0gInNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAg IGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIi KV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xl ZWZfbG9nZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngx NltoID0+IGYzMng4XTogU2xlZWZfbG9nZjhfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9sb2dkNF91MTBhdngyKTsKLS0KLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2xvZ2Y0X3UxMGF2eDIxMjgp OwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfbG9nZjhfdTEwYXZ4 Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91MTBh dngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2xvZ2Q0 X3UxMGF2eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9 ICJhdngiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0 XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngxNltoID0+IGYzMng4XTogU2xlZWZfbG9nZjhfdTEwYXZ4KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2xvZ2Q0X3UxMGF2eCk7Ci0tCi0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9sb2dmNF91MTBzc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2xvZ2Y4X3UxMGF2eCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91MTBzc2U0 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2xvZ2Q0X3UxMGF2 eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQu MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBT bGVlZl9sb2dmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2 W3EgPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2xvZ2QyX3UxMHNzZTQpOwotLQotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfbG9nZjRfdTEwc3NlNCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9sb2dm NF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2xv Z2QyX3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2 NHgyXTogU2xlZWZfbG9nZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlMik7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9s b2dkMl91MTBzc2UyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNs ZWVmX2xvZ2Y0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFto ID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2xvZ2QyX3UxMHNzZTIpOwotLSAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsg Ml06IGxuX2YzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogbG5fdjE2 ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGxuX3Y4ZjY0KTsKLS0K LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGxuX3Y0ZjMyKTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGxuX3Y4ZjMyKTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IGxuX3YyZjY0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IGxuX3Y0ZjY0KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0g ZWxzZSB7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBsbl9mMzIpOwotLSAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGxuX3Y0ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkh KGYzMng4OiBsbl92OGYzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGxuX3YxNmYz Mik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogbG5fdjJmNjQpOwotLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDQ6IGxuX3Y0ZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4 OiBsbl92OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L21hY3Jvcy5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tYWNy b3MucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQ3MCArMCwwIEBACi0tLy8h IFV0aWxpdHkgbWFjcm9zCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS1tYWNyb19ydWxlcyEgaW1w bF91bmFyeV8gewotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBtYXBwaW5nIDE6MQotLSAgICAodmVj IHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAot LSAgICAgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNf aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRo b2Qoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAg ICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHNlbGYpKSkKLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRp b24gbWFwcGluZyAxOjEgZm9yIHdoZW4gYCRmdW5gIGlzIGEgZ2VuZXJpYyBmdW5jdGlvbgotLSAg ICAvLyBsaWtlIHNvbWUgb2YgdGhlIGZwIG1hdGggcnVzdGMgaW50cmluc2ljcyAoZS5nLiBgZm4g ZnVuPFQ+KHg6IFQpIC0+IFRgKS4KLS0gICAgKGdlbiB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0 X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKLS0gICAgICRmdW46aWRlbnQpID0+IHsKLS0g ICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06 OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHNlbGYuMCkp Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07 Ci0tICAgIChzY2FsYXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsCi0t ICAgICAkdmVjX2lkOmlkZW50LCBbJHNpZDppZGVudDsgJHNjb3VudDpleHByXSwgJGZ1bjppZGVu dCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2Vs ZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1bmlv biBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgc2NhbGFyczogWyRzaWQ7ICRzY291bnRdLAotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzY2FsYXJzID0gVSB7IHZlYzog c2VsZiB9LnNjYWxhcnM7Ci0tICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAmbXV0IHNjYWxh cnMgewotLSAgICAgICAgICAgICAgICAgICAgICAgICppID0gJGZ1bigqaSk7Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBVIHsgc2NhbGFycyB9LnZlYwotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAg ICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biB0d2ljZSBvbiBlYWNoIG9mIHRoZSB2ZWN0 b3IgaGFsdmVzOgotLSAgICAoaGFsdmVzIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9k OmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAgJHZlY2hfaWQ6aWRlbnQsICRmdW46aWRlbnQp ID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYg ewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAgICAgICAg ICAgICBoYWx2ZXM6IFskdmVjaF9pZDsgMl0sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2 ZXM7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAqaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDAp ID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpoYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSkpKTsK LS0gICAgICAgICAgICAgICAgICAgICpoYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFu c211dGUoJGZ1bih0cmFuc211dGUoKmhhbHZlcy5nZXRfdW5jaGVja2VkKDEpKSkpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgVSB7IGhhbHZlcyB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlv biBjYWxsaW5nIGZ1biBmb3VyIHRpbWVzIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBxdWFydGVyczoK LS0gICAgKHF1YXJ0ZXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2 ZWNfaWQ6aWRlbnQsCi0tICAgICAkdmVjcV9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4gewotLSAg ICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6 dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0 ZXJzOiBbJHZlY3FfaWQ7IDRdLAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBxdWFydGVycyA9IFUgeyB2ZWM6IHNlbGYgfS5xdWFydGVyczsK LS0KLS0gICAgICAgICAgICAgICAgICAgICpxdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgwKSA9 IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSkpKTsK LS0gICAgICAgICAgICAgICAgICAgICpxdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRy YW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSkpKTsKLS0g ICAgICAgICAgICAgICAgICAgICpxdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgyKSA9IHRyYW5z bXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSkpKTsKLS0gICAg ICAgICAgICAgICAgICAgICpxdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgzKSA9IHRyYW5zbXV0 ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSkpKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgIFUgeyBxdWFydGVycyB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlv biBjYWxsaW5nIGZ1biBvbmNlIG9uIGEgdmVjdG9yIHR3aWNlIGFzIGxhcmdlOgotLSAgICAodHdp Y2UgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQs Ci0tICAgICAkdmVjdF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAk dHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6e3RyYW5zbXV0ZSwg dW5pbml0aWFsaXplZH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB2ZWM6IFskdmVjX2lkOyAyXSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICB0d2ljZTogJHZlY3RfaWQsCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICBsZXQgdHdpY2UgPSBVIHsgdmVjOiBbc2VsZiwgdW5pbml0aWFsaXpl ZCgpXSB9LnR3aWNlOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHR3aWNlID0gdHJhbnNtdXRl KCRmdW4odHJhbnNtdXRlKHR3aWNlKSkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgKihVIHsg dHdpY2UgfS52ZWMuZ2V0X3VuY2hlY2tlZCgwKSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGdlbl91 bmFyeV9pbXBsX3RhYmxlIHsKLS0gICAgKCR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDpp ZGVudCkgPT4gewotLSAgICAgICAgbWFjcm9fcnVsZXMhIGltcGxfdW5hcnkgewotLSAgICAgICAg ICAgICgkdmlkOmlkZW50OiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnlfISh2ZWMgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOwotLSAg ICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRbZ106ICRmdW46aWRlbnQpID0+ IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKGdlbiB8ICR0cmFpdF9pZCwgJHRyYWl0 X21ldGhvZCwgJHZpZCwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZp ZDppZGVudFskc2lkOmlkZW50OyAkc2M6ZXhwcl06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwg JHZpZCwgWyRzaWQ7ICRzY10sICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAg KCR2aWQ6aWRlbnRbc106ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7Ci0t ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtoID0+ICR2aWRfaDppZGVu dF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKGhhbHZl cyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9oLCAkZnVuKTsKLS0gICAg ICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3EgPT4gJHZpZF9xOmlkZW50XTog JGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEocXVhcnRlciB8 ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9xLCAkZnVuKTsKLS0gICAgICAg ICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3QgPT4gJHZpZF90OmlkZW50XTogJGZ1 bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEodHdpY2UgfCAkdHJh aXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfdCwgJGZ1bik7Ci0tICAgICAgICAgICAg fTsKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfdGVydGlh cnlfIHsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24gbWFwcGluZyAxOjEKLS0gICAgKHZlYyB8ICR0 cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKLS0gICAg ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNl bGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAg ICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZShzZWxmKSwgdHJhbnNtdXRl KHkpLCB0cmFuc211dGUoeikpKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9OwotLSAgICAoc2NhbGFyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJh aXRfbWV0aG9kOmlkZW50LAotLSAgICAgJHZlY19pZDppZGVudCwgWyRzaWQ6aWRlbnQ7ICRzY291 bnQ6ZXhwcl0sICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAk dmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRf bWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxh cnM6IFskc2lkOyAkc2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgeCA9IFUgeyB2ZWM6IHNlbGYgfS5zY2FsYXJzOwotLSAgICAgICAg ICAgICAgICAgICAgbGV0IHkgPSBVIHsgdmVjOiB5IH0uc2NhbGFyczsKLS0gICAgICAgICAgICAg ICAgICAgIGxldCB6ID0gVSB7IHZlYzogeiB9LnNjYWxhcnM7Ci0tICAgICAgICAgICAgICAgICAg ICBmb3IgKHgsICh5LCB6KSkgaW4gKCZtdXQgc2NhbGFycykuemlwKCZ5KS56aXAoJnopIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAqaSA9ICRmdW4oKmksICp5LCAqeik7Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBVIHsgdmVjOiB4IH0udmVjCi0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAg IC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIHR3aWNlIG9uIGVhY2ggb2YgdGhlIHZlY3Rv ciBoYWx2ZXM6Ci0tICAgIChoYWx2ZXMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6 aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAgICAkdmVjaF9pZDppZGVudCwgJGZ1bjppZGVudCkg PT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwg ejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAg ICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczogWyR2ZWNoX2lkOyAyXSwKLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeF9oYWx2ZXMgPSBV IHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHlfaGFsdmVz ID0gVSB7IHZlYzogeSB9LmhhbHZlczsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB6X2hhbHZl cyA9IFUgeyB2ZWM6IHogfS5oYWx2ZXM7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAqeF9oYWx2 ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bigKLS0gICAgICAgICAgICAg ICAgICAgICAgICB0cmFuc211dGUoKnhfaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6X2hhbHZlcy5nZXRfdW5jaGVj a2VkKDApKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLSAgICAgICAgICAgICAgICAgICAg KnhfaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAg ICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X2hhbHZlcy5nZXRfdW5jaGVja2VkKDEpKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfaGFsdmVzLmdldF91bmNoZWNr ZWQoMSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9oYWx2ZXMuZ2V0 X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgIFUgeyBoYWx2ZXM6IHhfaGFsdmVzIH0udmVjCi0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8vIGltcGxlbWVudGF0 aW9uIGNhbGxpbmcgZnVuIGZvdXIgdGltZXMgb24gZWFjaCBvZiB0aGUgdmVjdG9yIHF1YXJ0ZXJz OgotLSAgICAocXVhcnRlciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwg JHZlY19pZDppZGVudCwKLS0gICAgICR2ZWNxX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7Ci0t ICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxm KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB1bmlv biBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgcXVhcnRlcnM6IFskdmVjcV9pZDsgNF0sCi0tICAgICAgICAgICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHhfcXVhcnRlcnMgPSBVIHsg dmVjOiBzZWxmIH0ucXVhcnRlcnM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgeV9xdWFydGVy cyA9IFUgeyB2ZWM6IHkgfS5xdWFydGVyczsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB6X3F1 YXJ0ZXJzID0gVSB7IHZlYzogeiB9LnF1YXJ0ZXJzOwotLQotLSAgICAgICAgICAgICAgICAgICAg KnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bigKLS0gICAg ICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgw KSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91 bmNoZWNrZWQoMCkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9xdWFy dGVycy5nZXRfdW5jaGVja2VkKDApKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFu c211dGUoJGZ1bigKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRl cnMuZ2V0X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRl KCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAg IHRyYW5zbXV0ZSgqel9xdWFydGVycy5nZXRfdW5jaGVja2VkKDEpKSwKLS0gICAgICAgICAgICAg ICAgICAgICkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hl Y2tlZF9tdXQoMikgPSB0cmFuc211dGUoJGZ1bigKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9xdWFydGVycy5nZXRfdW5jaGVja2VkKDIp KSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgKnhf cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMykgPSB0cmFuc211dGUoJGZ1bigKLS0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNo ZWNrZWQoMykpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9xdWFydGVy cy5nZXRfdW5jaGVja2VkKDMpKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAg ICAgICAgICAgICAgICAgVSB7IHF1YXJ0ZXJzOiB4X3F1YXJ0ZXJzIH0udmVjCi0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8vIGlt cGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIG9uY2Ugb24gYSB2ZWN0b3IgdHdpY2UgYXMgbGFyZ2U6 Ci0tICAgICh0d2ljZSB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZl Y19pZDppZGVudCwKLS0gICAgICR2ZWN0X2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7Ci0tICAg ICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bWVtOjp7dHJhbnNtdXRlLCB1bmluaXRpYWxpemVkfTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogWyR2 ZWNfaWQ7IDJdLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHR3aWNlOiAkdmVjdF9pZCwKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCB4X3R3aWNl ID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKLS0gICAgICAgICAg ICAgICAgICAgIGxldCB5X3R3aWNlID0gVSB7IHZlYzogW3ksIHVuaW5pdGlhbGl6ZWQoKV0gfS50 d2ljZTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB6X3R3aWNlID0gVSB7IHZlYzogW3osIHVu aW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0d2ljZTog JHZlY3RfaWQgPQotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRyYW5z bXV0ZSh4X3R3aWNlKSwgdHJhbnNtdXRlKHlfdHdpY2UpLCB0cmFuc211dGUoel90d2ljZSkpKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICooVSB7IHR3aWNlIH0udmVjLmdldF91bmNoZWNrZWQo MCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBnZW5fdGVydGlhcnlfaW1wbF90YWJsZSB7Ci0tICAg ICgkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQpID0+IHsKLS0gICAgICAgIG1h Y3JvX3J1bGVzISBpbXBsX3RlcnRpYXJ5IHsKLS0gICAgICAgICAgICAoJHZpZDppZGVudDogJGZ1 bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEodmVjIHwgJHRy YWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAg ICAgICAgICAgICgkdmlkOmlkZW50WyRzaWQ6aWRlbnQ7ICRzYzpleHByXTogJGZ1bjppZGVudCkg PT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lk LCAkdHJhaXRfbWV0aG9kLCAkdmlkLCBbJHNpZDsgJHNjXSwgJGZ1bik7Ci0tICAgICAgICAgICAg fTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtzXTogJGZ1bjppZGVudCkgPT4gewotLSAgICAg ICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0 aG9kLCAkdmlkLCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlk ZW50W2ggPT4gJHZpZF9oOmlkZW50XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAg ICBpbXBsX3RlcnRpYXJ5XyEoaGFsdmVzIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlk LCAkdmlkX2gsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRl bnRbcSA9PiAkdmlkX3E6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAg IGltcGxfdGVydGlhcnlfIShxdWFydGVyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlk LCAkdmlkX3EsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRl bnRbdCA9PiAkdmlkX3Q6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAg IGltcGxfdGVydGlhcnlfISh0d2ljZSB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwg JHZpZF90LCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgfQotLSAgICB9OwotLX0K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9iaW5hcnlfIHsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24g bWFwcGluZyAxOjEKLS0gICAgKHZlYyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDpp ZGVudCwgJHZlY19pZDppZGVudCwKLS0gICAgICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGlt cGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06 OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0 ZShzZWxmKSwgdHJhbnNtdXRlKHkpKSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKHNjYWxhciB8ICR0cmFpdF9pZDppZGVudCwg JHRyYWl0X21ldGhvZDppZGVudCwKLS0gICAgICR2ZWNfaWQ6aWRlbnQsIFskc2lkOmlkZW50OyAk c2NvdW50OmV4cHJdLCAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBm b3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRy YWl0X21ldGhvZChzZWxmLCB5OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5z YWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJzOiBb JHNpZDsgJHNjb3VudF0sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHggPSBVIHsgdmVjOiBzZWxmIH0uc2NhbGFyczsKLS0gICAgICAgICAgICAg ICAgICAgIGxldCB5ID0gVSB7IHZlYzogeSB9LnNjYWxhcnM7Ci0tICAgICAgICAgICAgICAgICAg ICBmb3IgKHgsIHkpIGluIHguaXRlcl9tdXQoKS56aXAoJnkpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAqeCA9ICRmdW4oKngsICp5KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIFUgeyBzY2FsYXJzOiB4IH0udmVjCi0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8vIGltcGxlbWVudGF0 aW9uIGNhbGxpbmcgZnVuIHR3aWNlIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBoYWx2ZXM6Ci0tICAg IChoYWx2ZXMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6 aWRlbnQsCi0tICAgICAkdmVjaF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAg aW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1l bTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAgICAgICAgIGhh bHZlczogWyR2ZWNoX2lkOyAyXSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgeF9oYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwot LSAgICAgICAgICAgICAgICAgICAgbGV0IHlfaGFsdmVzID0gVSB7IHZlYzogeSB9LmhhbHZlczsK LS0KLS0gICAgICAgICAgICAgICAgICAgICp4X2hhbHZlcy5nZXRfdW5jaGVja2VkX211dCgwKSA9 IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9o YWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNt dXRlKCp5X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwKLS0gICAgICAgICAgICAgICAgICAgICkp OwotLSAgICAgICAgICAgICAgICAgICAgKnhfaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDEpID0g dHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X2hh bHZlcy5nZXRfdW5jaGVja2VkKDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211 dGUoKnlfaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICBVIHsgaGFsdmVzOiB4X2hhbHZlcyB9LnZlYwotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAg ICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBmb3VyIHRpbWVzIG9uIGVhY2ggb2YgdGhl IHZlY3RvciBxdWFydGVyczoKLS0gICAgKHF1YXJ0ZXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFp dF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAgICAkdmVjcV9pZDppZGVudCwgJGZ1 bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwg eTogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAg ICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0ZXJzOiBbJHZlY3FfaWQ7IDRdLAotLSAgICAgICAg ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4X3F1YXJ0ZXJz ID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0ZXJzOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHlf cXVhcnRlcnMgPSBVIHsgdmVjOiB5IH0ucXVhcnRlcnM7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2Vk KDApKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0 X3VuY2hlY2tlZCgwKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRm dW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91 bmNoZWNrZWQoMSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFy dGVycy5nZXRfdW5jaGVja2VkKDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMikgPSB0cmFu c211dGUoJGZ1bigKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRl cnMuZ2V0X3VuY2hlY2tlZCgyKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRl KCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgz KSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgq eF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSksCi0tICAgICAgICAgICAgICAg ICAgICApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIFUgeyBxdWFydGVyczogeF9xdWFydGVy cyB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBvbmNlIG9uIGEgdmVj dG9yIHR3aWNlIGFzIGxhcmdlOgotLSAgICAodHdpY2UgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFp dF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAgICAkdmVjdF9pZDppZGVudCwgJGZ1 bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwg eTogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6e3RyYW5zbXV0ZSwgdW5pbml0aWFsaXplZH07Ci0t Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB2ZWM6IFskdmVjX2lkOyAyXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0d2ljZTogJHZl Y3RfaWQsCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBs ZXQgeF90d2ljZSA9IFUgeyB2ZWM6IFtzZWxmLCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7Ci0t ICAgICAgICAgICAgICAgICAgICBsZXQgeV90d2ljZSA9IFUgeyB2ZWM6IFt5LCB1bmluaXRpYWxp emVkKCldIH0udHdpY2U7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2U6ICR2ZWN0X2lk ID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHhfdHdpY2UpLCB0cmFuc211dGUoeV90d2ljZSkp KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICooVSB7IHR3aWNlIH0udmVjLmdldF91bmNoZWNr ZWQoMCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBnZW5fYmluYXJ5X2ltcGxfdGFibGUgewotLSAg ICAoJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50KSA9PiB7Ci0tICAgICAgICBt YWNyb19ydWxlcyEgaW1wbF9iaW5hcnkgewotLSAgICAgICAgICAgICgkdmlkOmlkZW50OiAkZnVu OmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEodmVjIHwgJHRyYWl0 X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAg ICAgICAgICgkdmlkOmlkZW50WyRzaWQ6aWRlbnQ7ICRzYzpleHByXTogJGZ1bjppZGVudCkgPT4g ewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRy YWl0X21ldGhvZCwgJHZpZCwgWyRzaWQ7ICRzY10sICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0t ICAgICAgICAgICAgKCR2aWQ6aWRlbnRbc106ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAg ICAgICAgaW1wbF9iaW5hcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2 aWQsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRbaCA9 PiAkdmlkX2g6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5XyEoaGFsdmVzIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX2gs ICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRbcSA9PiAk dmlkX3E6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmlu YXJ5XyEocXVhcnRlciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9xLCAk ZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3QgPT4gJHZp ZF90OmlkZW50XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFy eV8hKHR3aWNlIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3QsICRmdW4p OwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxf YWRkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zs b2F0L211bF9hZGQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvbXVsX2FkZC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMTA5ICswLDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYG11bF9hZGRg Ci0tIyFbYWxsb3codW51c2VkKV0KLS11c2UgY3JhdGU6Oio7Ci0tCi0tLy8gRklYTUU6IDY0LWJp dCAxIGVsZW1lbnQgbXVsX2FkZAotLQotLXB1YihjcmF0ZSkgdHJhaXQgTXVsQWRkIHsKLS0gICAg Zm4gbXVsX2FkZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmOwotLX0KLS0KLS0jW2Nm Zyhub3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSldCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMp XQotLWV4dGVybiAiQyIgewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52MmYzMiJdCi0t ICAgIGZuIGZtYV92MmYzMih4OiBmMzJ4MiwgeTogZjMyeDIsIHo6IGYzMngyKSAtPiBmMzJ4MjsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjRmMzIiXQotLSAgICBmbiBmbWFfdjRmMzIo eDogZjMyeDQsIHk6IGYzMng0LCB6OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAgICNbbGlua19uYW1l ID0gImxsdm0uZm1hLnY4ZjMyIl0KLS0gICAgZm4gZm1hX3Y4ZjMyKHg6IGYzMng4LCB5OiBmMzJ4 OCwgejogZjMyeDgpIC0+IGYzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52MTZm MzIiXQotLSAgICBmbiBmbWFfdjE2ZjMyKHg6IGYzMngxNiwgeTogZjMyeDE2LCB6OiBmMzJ4MTYp IC0+IGYzMngxNjsKLS0gICAgLyogRklYTUUgNjQtYml0IHNpbmdsZSBlbGVtIHZlY3RvcnMKLS0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjFmNjQiXQotLSAgICBmbiBmbWFfdjFmNjQoeDog ZjY0eDEsIHk6IGY2NHgxLCB6OiBmNjR4MSkgLT4gZjY0eDE7Ci0tICAgICovCi0tICAgICNbbGlu a19uYW1lID0gImxsdm0uZm1hLnYyZjY0Il0KLS0gICAgZm4gZm1hX3YyZjY0KHg6IGY2NHgyLCB5 OiBmNjR4MiwgejogZjY0eDIpIC0+IGY2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZt YS52NGY2NCJdCi0tICAgIGZuIGZtYV92NGY2NCh4OiBmNjR4NCwgeTogZjY0eDQsIHo6IGY2NHg0 KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjhmNjQiXQotLSAgICBm biBmbWFfdjhmNjQoeDogZjY0eDgsIHk6IGY2NHg4LCB6OiBmNjR4OCkgLT4gZjY0eDg7Ci0tfQot LQotLWdlbl90ZXJ0aWFyeV9pbXBsX3RhYmxlIShNdWxBZGQsIG11bF9hZGQpOwotLQotLWNmZ19p ZiEgewotLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7Ci0tICAgICAgICAv LyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L2lzc3Vlcy8xNAotLSAgICAgICAgbWFjcm9fcnVsZXMhIGltcGxfYnJva2VuIHsKLS0gICAgICAg ICAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGwgTXVsQWRkIGZvciAk aWQgewotLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICAg ICBmbiBtdWxfYWRkKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYgKiB5ICsgegotLSAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAg IGltcGxfYnJva2VuIShmMzJ4Mik7Ci0tICAgICAgICBpbXBsX2Jyb2tlbiEoZjMyeDQpOwotLSAg ICAgICAgaW1wbF9icm9rZW4hKGYzMng4KTsKLS0gICAgICAgIGltcGxfYnJva2VuIShmMzJ4MTYp OwotLQotLSAgICAgICAgaW1wbF9icm9rZW4hKGY2NHgyKTsKLS0gICAgICAgIGltcGxfYnJva2Vu IShmNjR4NCk7Ci0tICAgICAgICBpbXBsX2Jyb2tlbiEoZjY0eDgpOwotLSAgICB9IGVsc2UgaWYg I1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikp XSB7Ci0tICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAg ICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9hdngy MTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2W2ggPT4gZjMyeDhd OiBTbGVlZl9mbWFmOF9hdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0 eDhbaCA9PiBmNjR4NF06IFNsZWVmX2ZtYWQ0X2F2eDIpOwotLQotLSAgICAgICAgICAgICAgICBp bXBsX3RlcnRpYXJ5IShmMzJ4NDogU2xlZWZfZm1hZjRfYXZ4MjEyOCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdGVydGlhcnkhKGYzMng4OiBTbGVlZl9mbWFmOF9hdngyKTsKLS0gICAgICAgICAg ICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IFNsZWVmX2ZtYWQyX2F2eDIxMjgpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogU2xlZWZfZm1hZDRfYXZ4Mik7Ci0tICAg ICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mbWFm NF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2W2ggPT4gZjMy eDhdOiBTbGVlZl9mbWFmOF9hdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShm NjR4OFtoID0+IGY2NHg0XTogU2xlZWZfZm1hZDRfYXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAg aW1wbF90ZXJ0aWFyeSEoZjMyeDQ6IFNsZWVmX2ZtYWY0X3NzZTQpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3RlcnRpYXJ5IShmMzJ4ODogU2xlZWZfZm1hZjhfYXZ4KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IFNsZWVmX2ZtYWQyX3NzZTQpOwotLSAgICAgICAgICAg ICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogU2xlZWZfZm1hZDRfYXZ4KTsKLS0gICAgICAgICAg ICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAg ICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZtYWY0X3Nz ZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06 IFNsZWVmX2ZtYWY0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4 OFtxID0+IGY2NHgyXTogU2xlZWZfZm1hZDJfc3NlNCk7Ci0tCi0tICAgICAgICAgICAgICAgIGlt cGxfdGVydGlhcnkhKGYzMng0OiBTbGVlZl9mbWFmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF90ZXJ0aWFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2ZtYWY0X3NzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogU2xlZWZfZm1hZDJfc3NlNCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9m bWFkMl9zc2U0KTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmMzJ4MjogZm1hX3YyZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0 aWFyeSEoZjMyeDE2OiBmbWFfdjE2ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFy eSEoZjY0eDg6IGZtYV92OGY2NCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkh KGYzMng0OiBmbWFfdjRmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4 ODogZm1hX3Y4ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IGZt YV92MmY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg0OiBmbWFfdjRm NjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAg IGltcGxfdGVydGlhcnkhKGYzMngyOiBmbWFfdjJmMzIpOwotLSAgICAgICAgaW1wbF90ZXJ0aWFy eSEoZjMyeDQ6IGZtYV92NGYzMik7Ci0tICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4ODogZm1h X3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNjogZm1hX3YxNmYzMik7Ci0t ICAgICAgICAvLyBpbXBsX3RlcnRpYXJ5IShmNjR4MTogZm1hX3YxZjY0KTsgLy8gRklYTUUgNjQt Yml0IGZtYWdsZSBlbGVtIHZlY3RvcnMKLS0gICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHgyOiBm bWFfdjJmNjQpOwotLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDQ6IGZtYV92NGY2NCk7Ci0t ICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4ODogZm1hX3Y4ZjY0KTsKLS0gICAgfQotLX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvbXVsX2FkZGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvbXVsX2FkZGUucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkZS5ycwkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGRlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSw2MCArMCwwIEBACi0tLy8hIEFwcHJveGltYXRpb24gZm9yIGZs b2F0aW5nLXBvaW50IGBtdWxfYWRkYAotLXVzZSBjcmF0ZTo6KjsKLS0KLS0vLyBGSVhNRTogNjQt Yml0IDEgZWxlbWVudCBtdWxfYWRkZQotLQotLXB1YihjcmF0ZSkgdHJhaXQgTXVsQWRkRSB7Ci0t ICAgIGZuIG11bF9hZGRlKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGY7Ci0tfQotLQot LSNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KLS0jW2FsbG93KGltcHJvcGVyX2N0 eXBlcyldCi0tZXh0ZXJuICJDIiB7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm11bGFkZC52 MmYzMiJdCi0tICAgIGZuIGZtdWxhZGRfdjJmMzIoeDogZjMyeDIsIHk6IGYzMngyLCB6OiBmMzJ4 MikgLT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm11bGFkZC52NGYzMiJdCi0t ICAgIGZuIGZtdWxhZGRfdjRmMzIoeDogZjMyeDQsIHk6IGYzMng0LCB6OiBmMzJ4NCkgLT4gZjMy eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm11bGFkZC52OGYzMiJdCi0tICAgIGZuIGZt dWxhZGRfdjhmMzIoeDogZjMyeDgsIHk6IGYzMng4LCB6OiBmMzJ4OCkgLT4gZjMyeDg7Ci0tICAg ICNbbGlua19uYW1lID0gImxsdm0uZm11bGFkZC52MTZmMzIiXQotLSAgICBmbiBmbXVsYWRkX3Yx NmYzMih4OiBmMzJ4MTYsIHk6IGYzMngxNiwgejogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8q IEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0b3JzCi0tICAgICNbbGlua19uYW1lID0gImxs dm0uZm11bGFkZC52MWY2NCJdCi0tICAgIGZuIGZtdWxhZGRfdjFmNjQoeDogZjY0eDEsIHk6IGY2 NHgxLCB6OiBmNjR4MSkgLT4gZjY0eDE7Ci0tICAgICovCi0tICAgICNbbGlua19uYW1lID0gImxs dm0uZm11bGFkZC52MmY2NCJdCi0tICAgIGZuIGZtdWxhZGRfdjJmNjQoeDogZjY0eDIsIHk6IGY2 NHgyLCB6OiBmNjR4MikgLT4gZjY0eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm11bGFk ZC52NGY2NCJdCi0tICAgIGZuIGZtdWxhZGRfdjRmNjQoeDogZjY0eDQsIHk6IGY2NHg0LCB6OiBm NjR4NCkgLT4gZjY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm11bGFkZC52OGY2NCJd Ci0tICAgIGZuIGZtdWxhZGRfdjhmNjQoeDogZjY0eDgsIHk6IGY2NHg4LCB6OiBmNjR4OCkgLT4g ZjY0eDg7Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX211bF9hZGRlIHsKLS0gICAgKCRpZDpp ZGVudCA6ICRmbjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBNdWxBZGRFIGZvciAkaWQgewot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIG11bF9hZGRlKHNlbGYsIHk6 IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFy Z2V0X2FyY2ggPSAiczM5MHgiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgeyB0cmFuc211dGUoJGZuKHRyYW5zbXV0ZShzZWxmKSwgdHJhbnNtdXRlKHkpLCB0cmFu c211dGUoeikpKSB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmco dGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAg ICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMTQKLS0gICAgICAgICAgICAgICAgICAgIHNlbGYgKiB5ICsgegot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9Owot LX0KLS0KLS1pbXBsX211bF9hZGRlIShmMzJ4MjogZm11bGFkZF92MmYzMik7Ci0taW1wbF9tdWxf YWRkZSEoZjMyeDQ6IGZtdWxhZGRfdjRmMzIpOwotLWltcGxfbXVsX2FkZGUhKGYzMng4OiBmbXVs YWRkX3Y4ZjMyKTsKLS1pbXBsX211bF9hZGRlIShmMzJ4MTY6IGZtdWxhZGRfdjE2ZjMyKTsKLS0v LyBpbXBsX211bF9hZGRlIShmNjR4MTogZm1hX3YxZjY0KTsgLy8gRklYTUUgNjQtYml0IGZtYWds ZSBlbGVtIHZlY3RvcnMKLS1pbXBsX211bF9hZGRlIShmNjR4MjogZm11bGFkZF92MmY2NCk7Ci0t aW1wbF9tdWxfYWRkZSEoZjY0eDQ6IGZtdWxhZGRfdjRmNjQpOwotLWltcGxfbXVsX2FkZGUhKGY2 NHg4OiBmbXVsYWRkX3Y4ZjY0KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9wb3dmLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDExMiArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZs b2F0aW5nLXBvaW50IGBwb3dmYAotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tLy8gRklYTUUgNjQt Yml0IHBvd2ZnbGUgZWxlbSB2ZWN0b3JzIG1pc3Bvd2ZnCi0tCi0tdXNlIGNyYXRlOjoqOwotLQot LXB1YihjcmF0ZSkgdHJhaXQgUG93ZiB7Ci0tICAgIGZuIHBvd2Yoc2VsZiwgeDogU2VsZikgLT4g U2VsZjsKLS19Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVybiAiQyIgewot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52MmYzMiJdCi0tICAgIGZuIHBvd2ZfdjJmMzIo eDogZjMyeDIsIHk6IGYzMngyKSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5w b3cudjRmMzIiXQotLSAgICBmbiBwb3dmX3Y0ZjMyKHg6IGYzMng0LCB5OiBmMzJ4NCkgLT4gZjMy eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnY4ZjMyIl0KLS0gICAgZm4gcG93Zl92 OGYzMih4OiBmMzJ4OCwgeTogZjMyeDgpIC0+IGYzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLnBvdy52MTZmMzIiXQotLSAgICBmbiBwb3dmX3YxNmYzMih4OiBmMzJ4MTYsIHk6IGYzMngx NikgLT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2NC1iaXQgcG93ZmdsZSBlbGVtIHZlY3RvcnMK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjFmNjQiXQotLSAgICBmbiBwb3dmX3YxZjY0 KHg6IGY2NHgxLCB5OiBmNjR4MSkgLT4gZjY0eDE7Ci0tICAgICAqLwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLnBvdy52MmY2NCJdCi0tICAgIGZuIHBvd2ZfdjJmNjQoeDogZjY0eDIsIHk6IGY2 NHgyKSAtPiBmNjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjRmNjQiXQotLSAg ICBmbiBwb3dmX3Y0ZjY0KHg6IGY2NHg0LCB5OiBmNjR4NCkgLT4gZjY0eDQ7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0ucG93LnY4ZjY0Il0KLS0gICAgZm4gcG93Zl92OGY2NCh4OiBmNjR4OCwg eTogZjY0eDgpIC0+IGY2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy5mMzIi XQotLSAgICBmbiBwb3dmX2YzMih4OiBmMzIsIHk6IGYzMikgLT4gZjMyOwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLnBvdy5mNjQiXQotLSAgICBmbiBwb3dmX2Y2NCh4OiBmNjQsIHk6IGY2NCkg LT4gZjY0OwotLX0KLS0KLS1nZW5fYmluYXJ5X2ltcGxfdGFibGUhKFBvd2YsIHBvd2YpOwotLQot LWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7Ci0tICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy8xNAotLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW2YzMjsgMl06IHBv d2ZfZjMyKTsKLS0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NFtmMzI7IDRdOiBwb3dmX2YzMik7 Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDhbZjMyOyA4XTogcG93Zl9mMzIpOwotLSAgICAg ICAgaW1wbF9iaW5hcnkhKGYzMngxNltmMzI7IDE2XTogcG93Zl9mMzIpOwotLQotLSAgICAgICAg aW1wbF9iaW5hcnkhKGY2NHgyW2Y2NDsgMl06IHBvd2ZfZjY0KTsKLS0gICAgICAgIGltcGxfYmlu YXJ5IShmNjR4NFtmNjQ7IDRdOiBwb3dmX2Y2NCk7Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjY0 eDhbZjY0OyA4XTogcG93Zl9mNjQpOwotLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9h cmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1c2Ug c2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmco dGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3Bvd2Y4X3UxMGF2 eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNs ZWVmX3Bvd2Q0X3UxMGF2eDIpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMy eDQ6IFNsZWVmX3Bvd2Y0X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFy eSEoZjMyeDg6IFNsZWVmX3Bvd2Y4X3UxMGF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX2Jp bmFyeSEoZjY0eDI6IFNsZWVmX3Bvd2QyX3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBp bXBsX2JpbmFyeSEoZjY0eDQ6IFNsZWVmX3Bvd2Q0X3UxMGF2eDIpOwotLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAg ICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOwot LSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9w b3dmOF91MTBhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDhbaCA9PiBm NjR4NF06IFNsZWVmX3Bvd2Q0X3UxMGF2eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfYmlu YXJ5IShmMzJ4NDogU2xlZWZfcG93ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmMzJ4ODogU2xlZWZfcG93ZjhfdTEwYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1w bF9iaW5hcnkhKGY2NHgyOiBTbGVlZl9wb3dkMl91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF9iaW5hcnkhKGY2NHg0OiBTbGVlZl9wb3dkNF91MTBhdngpOwotLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAg ICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTQp OwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVl Zl9wb3dmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4W3Eg PT4gZjY0eDJdOiBTbGVlZl9wb3dkMl91MTBzc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1w bF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF9iaW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBTbGVlZl9wb3dkMl91MTBzc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9w b3dkMl91MTBzc2U0KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1 cmUgPSAic3NlMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4Mlt0ID0+ IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmlu YXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3Bvd2QyX3UxMHNz ZTIpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IFNsZWVmX3Bvd2Y0 X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDhbaCA9PiBmMzJ4 NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEo ZjY0eDI6IFNsZWVmX3Bvd2QyX3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFy eSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3Bvd2QyX3UxMHNzZTIpOwotLSAgICAgICAgICAg IH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MltmMzI7IDJdOiBw b3dmX2YzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NDogcG93Zl92NGYz Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4ODogcG93Zl92OGYzMik7Ci0t ICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTY6IHBvd2ZfdjE2ZjMyKTsKLS0KLS0g ICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBwb3dmX3YyZjY0KTsKLS0gICAgICAg ICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0OiBwb3dmX3Y0ZjY0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF9iaW5hcnkhKGY2NHg4OiBwb3dmX3Y4ZjY0KTsKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbZjMyOyAy XTogcG93Zl9mMzIpOwotLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBwb3dmX3Y0ZjMyKTsK LS0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4ODogcG93Zl92OGYzMik7Ci0tICAgICAgICBpbXBs X2JpbmFyeSEoZjMyeDE2OiBwb3dmX3YxNmYzMik7Ci0tCi0tICAgICAgICBpbXBsX2JpbmFyeSEo ZjY0eDI6IHBvd2ZfdjJmNjQpOwotLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0OiBwb3dmX3Y0 ZjY0KTsKLS0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4ODogcG93Zl92OGY2NCk7Ci0tICAgIH0K LS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0L3Npbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vbWF0aC9mbG9hdC9zaW4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW4ucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9zaW4ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDEwMyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBzaW5gCi0t IyFbYWxsb3codW51c2VkKV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgc2lu Ci0tCi0tdXNlIGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgU2luIHsKLS0gICAgZm4g c2luKHNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1l eHRlcm4gIkMiIHsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjJmMzIiXQotLSAgICBm biBzaW5fdjJmMzIoeDogZjMyeDIpIC0+IGYzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LnNpbi52NGYzMiJdCi0tICAgIGZuIHNpbl92NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAg ICNbbGlua19uYW1lID0gImxsdm0uc2luLnY4ZjMyIl0KLS0gICAgZm4gc2luX3Y4ZjMyKHg6IGYz Mng4KSAtPiBmMzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjE2ZjMyIl0KLS0g ICAgZm4gc2luX3YxNmYzMih4OiBmMzJ4MTYpIC0+IGYzMngxNjsKLS0gICAgLyogRklYTUUgNjQt Yml0IHNpbmdsZSBlbGVtIHZlY3RvcnMKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjFm NjQiXQotLSAgICBmbiBzaW5fdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgxOwotLSAgICAgKi8KLS0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjJmNjQiXQotLSAgICBmbiBzaW5fdjJmNjQoeDog ZjY0eDIpIC0+IGY2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52NGY2NCJdCi0t ICAgIGZuIHNpbl92NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uc2luLnY4ZjY0Il0KLS0gICAgZm4gc2luX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsK LS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4uZjMyIl0KLS0gICAgZm4gc2luX2YzMih4 OiBmMzIpIC0+IGYzMjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4uZjY0Il0KLS0gICAg Zm4gc2luX2Y2NCh4OiBmNjQpIC0+IGY2NDsKLS19Ci0tCi0tZ2VuX3VuYXJ5X2ltcGxfdGFibGUh KFNpbiwgc2luKTsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAi czM5MHgiKV0gewotLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKLS0gICAgICAgIGltcGxfdW5hcnkhKGYz MngyW2YzMjsgMl06IHNpbl9mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0 XTogc2luX2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBzaW5fZjMy KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltmMzI7IDE2XTogc2luX2YzMik7Ci0tCi0t ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBzaW5fZjY0KTsKLS0gICAgICAgIGlt cGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06IHNpbl9mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDhbZjY0OyA4XTogc2luX2Y2NCk7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0 X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAgICAgIHVz ZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMGF2eDIxMjgpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NpbmY4X3UxMGF2 eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xl ZWZfc2luZDRfdTEwYXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0 OiBTbGVlZl9zaW5mNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDg6IFNsZWVmX3NpbmY4X3UxMGF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4MjogU2xlZWZfc2luZDJfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHg0OiBTbGVlZl9zaW5kNF91MTBhdngyKTsKLS0gICAgICAgICAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NpbmY4X3Ux MGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBT bGVlZl9zaW5kNF91MTBhdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 NDogU2xlZWZfc2luZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz Mng4OiBTbGVlZl9zaW5mOF91MTBhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4MjogU2xlZWZfc2luZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg0OiBTbGVlZl9zaW5kNF91MTBhdngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luZjRfdTEwc3NlNCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfc2luZjRfdTEwc3Nl NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVl Zl9zaW5kMl91MTBzc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6 IFNsZWVmX3NpbmY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 OFtoID0+IGYzMng0XTogU2xlZWZfc2luZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zaW5kMl91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NpbmQyX3UxMHNzZTQpOwotLSAg ICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2Yz MjsgMl06IHNpbl9mMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IHNp bl92MTZmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogc2luX3Y4ZjY0 KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IHNpbl92NGYzMik7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBzaW5fdjhmMzIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mjogc2luX3YyZjY0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDQ6IHNpbl92NGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLSAgICB9IGVsc2UgewotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc2lu X2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogc2luX3Y0ZjMyKTsKLS0gICAgICAg IGltcGxfdW5hcnkhKGYzMng4OiBzaW5fdjhmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2OiBzaW5fdjE2ZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBzaW5fdjJm NjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IHNpbl92NGY2NCk7Ci0tICAgICAgICBp bXBsX3VuYXJ5IShmNjR4ODogc2luX3Y4ZjY0KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX2Nv c19waS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9zaW5fY29zX3BpLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX2Nvc19waS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGkucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDE4OCArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50 IGBzaW5fY29zYAotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IDEgZWxl bSB2ZWN0b3JzIHNpbl9jb3MKLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFp dCBTaW5Db3NQaTogU2l6ZWQgewotLSAgICB0eXBlIE91dHB1dDsKLS0gICAgZm4gc2luX2Nvc19w aShzZWxmKSAtPiBTZWxmOjpPdXRwdXQ7Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZiB7 Ci0tICAgICgkdmlkOmlkZW50LCAkUEk6cGF0aCkgPT4gewotLSAgICAgICAgaW1wbCBTaW5Db3NQ aSBmb3IgJHZpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAt PiBTZWxmOjpPdXRwdXQgewotLSAgICAgICAgICAgICAgICBsZXQgdiA9IHNlbGYgKiBTZWxmOjpz cGxhdCgkUEkpOwotLSAgICAgICAgICAgICAgICAodi5zaW4oKSwgdi5jb3MoKSkKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX2Rl ZjMyIHsKLS0gICAgKCR2aWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxfZGVmISgkdmlkLCBj cmF0ZTo6ZjMyOjpjb25zdHM6OlBJKTsKLS0gICAgfTsKLS19Ci0tbWFjcm9fcnVsZXMhIGltcGxf ZGVmNjQgewotLSAgICAoJHZpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9kZWYhKCR2aWQs IGNyYXRlOjpmNjQ6OmNvbnN0czo6UEkpOwotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEg aW1wbF91bmFyeV90IHsKLS0gICAgKCR2aWQ6aWRlbnQ6ICRmdW46aWRlbnQpID0+IHsKLS0gICAg ICAgIGltcGwgU2luQ29zUGkgZm9yICR2aWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0g KFNlbGYsIFNlbGYpOwotLSAgICAgICAgICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6 T3V0cHV0IHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB0cmFuc211 dGUoJGZ1bih0cmFuc211dGUoc2VsZikpKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAoJHZpZDppZGVudFt0ID0+ICR2aWRfdDpp ZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgU2luQ29zUGkgZm9yICR2aWQg ewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOwotLSAgICAgICAgICAg IGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0cHV0IHsKLS0gICAgICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp7dHJhbnNtdXRl LCB1bmluaXRpYWxpemVkfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIHZlYzogWyR2aWQ7IDJdLAotLSAgICAgICAgICAgICAgICAg ICAgICAgIHR3aWNlOiAkdmlkX3QsCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICBsZXQgdHdpY2UgPSBVIHsgdmVjOiBbc2VsZiwgdW5pbml0aWFsaXplZCgp XSB9LnR3aWNlOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHR3aWNlID0gdHJhbnNtdXRlKCRm dW4odHJhbnNtdXRlKHR3aWNlKSkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gUiB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICgkdmlkX3QsICR2aWRfdCksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgdmVjczogKFskdmlkOyAyXSwgWyR2aWQ7IDJdKSwKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIGxldCByID0gUiB7IHR3aWNl IH0udmVjczsKLS0gICAgICAgICAgICAgICAgICAgICgqci4wLmdldF91bmNoZWNrZWQoMCksICpy LjAuZ2V0X3VuY2hlY2tlZCgxKSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKCR2aWQ6aWRlbnRbaCA9PiAkdmlkX2g6aWRlbnRd OiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIFNpbkNvc1BpIGZvciAkdmlkIHsKLS0g ICAgICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKLS0gICAgICAgICAgICBmbiBz aW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7Ci0tICAgICAgICAgICAgICAgIHVuc2Fm ZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLQot LSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg dmVjOiAkdmlkLAotLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczogWyR2aWRfaDsgMl0s Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgaGFs dmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKLS0KLS0gICAgICAgICAgICAgICAgICAgIGxl dCByZXNfMDogKCR2aWRfaCwgJHZpZF9oKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqaGFs dmVzLmdldF91bmNoZWNrZWQoMCkpKSk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgcmVzXzE6 ICgkdmlkX2gsICR2aWRfaCkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKmhhbHZlcy5nZXRf dW5jaGVja2VkKDEpKSkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gUiB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiAoJHZpZCwgJHZpZCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgaGFsdmVzOiAoWyR2aWRfaDsgMl0sIFskdmlkX2g7IDJdKSwKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIFIgeyBoYWx2ZXM6IChbcmVzXzAu MCwgcmVzXzEuMF0sIFtyZXNfMC4xLCByZXNfMS4xXSkgfS5yZXN1bHQKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKCR2aWQ6aWRl bnRbcSA9PiAkdmlkX3E6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIFNp bkNvc1BpIGZvciAkdmlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxm KTsKLS0gICAgICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7Ci0t ICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlOwotLQotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmlkLAotLSAgICAgICAgICAgICAgICAgICAgICAg IHF1YXJ0ZXJzOiBbJHZpZF9xOyA0XSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAgICAgICAgIGxldCBxdWFydGVycyA9IFUgeyB2ZWM6IHNlbGYgfS5xdWFydGVyczsK LS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCByZXNfMDogKCR2aWRfcSwgJHZpZF9xKSA9IHRy YW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSkpKTsKLS0g ICAgICAgICAgICAgICAgICAgIGxldCByZXNfMTogKCR2aWRfcSwgJHZpZF9xKSA9IHRyYW5zbXV0 ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSkpKTsKLS0gICAgICAg ICAgICAgICAgICAgIGxldCByZXNfMjogKCR2aWRfcSwgJHZpZF9xKSA9IHRyYW5zbXV0ZSgkZnVu KHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSkpKTsKLS0gICAgICAgICAgICAg ICAgICAgIGxldCByZXNfMzogKCR2aWRfcSwgJHZpZF9xKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5z bXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSkpKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgIHVuaW9uIFIgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogKCR2aWQsICR2 aWQpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0ZXJzOiAoWyR2aWRfcTsgNF0sIFsk dmlkX3E7IDRdKSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg IFIgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0ZXJzOiAoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtyZXNfMC4wLCByZXNfMS4wLCByZXNfMi4wLCByZXNfMy4wXSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc18wLjEsIHJlc18xLjEsIHJlc18yLjEsIHJl c18zLjFdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICksCi0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICAucmVzdWx0Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLWNmZ19pZiEgewotLSAg ICBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1z eXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsK LS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luY29z cGlmNF91MDVhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4MTZb aCA9PiBmMzJ4OF06IFNsZWVmX3NpbmNvc3BpZjhfdTA1YXZ4Mik7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnlfdCEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmNvc3BpZDRfdTA1YXZ4 Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDQ6IFNsZWVmX3NpbmNv c3BpZjRfdTA1YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDg6 IFNsZWVmX3NpbmNvc3BpZjhfdTA1YXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlf dCEoZjY0eDI6IFNsZWVmX3NpbmNvc3BpZDJfdTA1YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnlfdCEoZjY0eDQ6IFNsZWVmX3NpbmNvc3BpZDRfdTA1YXZ4Mik7Ci0tICAgICAg ICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3Bp ZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDE2W2ggPT4g ZjMyeDhdOiBTbGVlZl9zaW5jb3NwaWY4X3UwNWF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnlfdCEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmNvc3BpZDRfdTA1YXZ4KTsKLS0K LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4NDogU2xlZWZfc2luY29zcGlmNF91 MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4ODogU2xlZWZfc2lu Y29zcGlmOF91MDVhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHgyOiBT bGVlZl9zaW5jb3NwaWQyX3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3Qh KGY2NHg0OiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlm ICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnlfdCEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVl Zl9zaW5jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2 NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zaW5jb3NwaWQyX3UwNXNzZTQpOwotLQotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng0OiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNzZTQpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9z aW5jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHgy OiBTbGVlZl9zaW5jb3NwaWQyX3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 X3QhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9zaW5jb3NwaWQyX3UwNXNzZTQpOwotLSAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngyKTsKLS0g ICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOwotLSAgICAgICAgICAgICAgICBpbXBs X2RlZjMyIShmMzJ4OCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7Ci0t Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKLS0gICAgICAgICAgICAgICAg aW1wbF9kZWY2NCEoZjY0eDQpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAgICAgaW1w bF9kZWYzMiEoZjMyeDIpOwotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOwotLSAgICAgICAg aW1wbF9kZWYzMiEoZjMyeDgpOwotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKLS0KLS0g ICAgICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKLS0gICAgICAgIGltcGxfZGVmNjQhKGY2NHg0KTsK LS0gICAgICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX3Bp LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L3Npbl9waS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0L3Npbl9waS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zs b2F0L3Npbl9waS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs ODcgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc2luX3BpYAotLSMhW2Fs bG93KHVudXNlZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIHNpbl9waQot LQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IFNpblBpIHsKLS0gICAgZm4g c2luX3BpKHNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShTaW5Q aSwgc2luX3BpKTsKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWYgewotLSAgICAoJHZpZDppZGVu dCwgJFBJOnBhdGgpID0+IHsKLS0gICAgICAgIGltcGwgU2luUGkgZm9yICR2aWQgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNpbl9waShzZWxmKSAtPiBTZWxmIHsK LS0gICAgICAgICAgICAgICAgKHNlbGYgKiBTZWxmOjpzcGxhdCgkUEkpKS5zaW4oKQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tbWFjcm9fcnVsZXMhIGltcGxfZGVm MzIgewotLSAgICAoJHZpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNy YXRlOjpmMzI6OmNvbnN0czo6UEkpOwotLSAgICB9OwotLX0KLS1tYWNyb19ydWxlcyEgaW1wbF9k ZWY2NCB7Ci0tICAgICgkdmlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2RlZiEoJHZpZCwg Y3JhdGU6OmY2NDo6Y29uc3RzOjpQSSk7Ci0tICAgIH07Ci0tfQotLQotLWNmZ19pZiEgewotLSAg ICBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1z eXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsK LS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRf dTA1YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYz Mng4XTogU2xlZWZfc2lucGlmOF91MDVhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbnBpZDRfdTA1YXZ4Mik7Ci0tCi0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zaW5waWY0X3UwNWF2eDIxMjgpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc2lucGlmOF91MDVhdngy KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbnBpZDJfdTA1 YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zaW5w aWQ0X3UwNWF2eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVy ZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYz Mng0XTogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5waWY4X3UwNWF2eCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5waWQ0X3UwNWF2 eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zaW5waWY0 X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc2lu cGlmOF91MDVhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZf c2lucGlkMl91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNs ZWVmX3NpbnBpZDRfdTA1YXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3Np bnBpZDJfdTA1c3NlNCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBT bGVlZl9zaW5waWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 OFtoID0+IGYzMng0XTogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbnBpZDJfdTA1c3NlNCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9zaW5waWQyX3UwNXNzZTQp OwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYz MngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOwotLSAgICAgICAgICAg ICAgICBpbXBsX2RlZjMyIShmMzJ4OCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYz MngxNik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKLS0gICAgICAg ICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDQpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0 IShmNjR4OCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAg ICAgICAgaW1wbF9kZWYzMiEoZjMyeDIpOwotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOwot LSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDgpOwotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2 KTsKLS0KLS0gICAgICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKLS0gICAgICAgIGltcGxfZGVmNjQh KGY2NHg0KTsKLS0gICAgICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKLS0gICAgfQotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvc3FydC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC9zcXJ0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL21hdGgvZmxvYXQvc3FydC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L3NxcnQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDEwMyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBzcXJ0YAotLSMhW2Fs bG93KHVudXNlZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIHNxcnQKLS0K LS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBTcXJ0IHsKLS0gICAgZm4gc3Fy dChzZWxmKSAtPiBTZWxmOwotLX0KLS0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCi0tZXh0 ZXJuICJDIiB7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC52MmYzMiJdCi0tICAgIGZu IHNxcnRfdjJmMzIoeDogZjMyeDIpIC0+IGYzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LnNxcnQudjRmMzIiXQotLSAgICBmbiBzcXJ0X3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKLS0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnY4ZjMyIl0KLS0gICAgZm4gc3FydF92OGYzMih4 OiBmMzJ4OCkgLT4gZjMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC52MTZmMzIi XQotLSAgICBmbiBzcXJ0X3YxNmYzMih4OiBmMzJ4MTYpIC0+IGYzMngxNjsKLS0gICAgLyogRklY TUUgNjQtYml0IHNxcnRnbGUgZWxlbSB2ZWN0b3JzCi0tICAgICNbbGlua19uYW1lID0gImxsdm0u c3FydC52MWY2NCJdCi0tICAgIGZuIHNxcnRfdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgxOwotLSAg ICAgKi8KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnYyZjY0Il0KLS0gICAgZm4gc3Fy dF92MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc3Fy dC52NGY2NCJdCi0tICAgIGZuIHNxcnRfdjRmNjQoeDogZjY0eDQpIC0+IGY2NHg0OwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjhmNjQiXQotLSAgICBmbiBzcXJ0X3Y4ZjY0KHg6IGY2 NHg4KSAtPiBmNjR4ODsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LmYzMiJdCi0t ICAgIGZuIHNxcnRfZjMyKHg6IGYzMikgLT4gZjMyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LnNxcnQuZjY0Il0KLS0gICAgZm4gc3FydF9mNjQoeDogZjY0KSAtPiBmNjQ7Ci0tfQotLQotLWdl bl91bmFyeV9pbXBsX3RhYmxlIShTcXJ0LCBzcXJ0KTsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYg I1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewotLSAgICAgICAgLy8gRklYTUU6IGh0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKLS0g ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IHNxcnRfZjMyKTsKLS0gICAgICAgIGlt cGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IHNxcnRfZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkh KGYzMng4W2YzMjsgOF06IHNxcnRfZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltm MzI7IDE2XTogc3FydF9mMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDJbZjY0OyAy XTogc3FydF9mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZjY0OyA0XTogc3FydF9m NjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZjY0OyA4XTogc3FydF9mNjQpOwotLSAg ICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAi c2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2Zn X2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9z cXJ0ZjRfYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+ IGYzMng4XTogU2xlZWZfc3FydGY4X2F2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc3FydGQ0X2F2eDIpOwotLQotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X2F2eDIxMjgpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc3FydGY4X2F2eDIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX2F2eDIxMjgpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc3FydGQ0X2F2eDIpOwotLSAgICAg ICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3Nz ZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNs ZWVmX3NxcnRmOF9hdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+ IGY2NHg0XTogU2xlZWZfc3FydGQ0X2F2eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng4OiBTbGVlZl9zcXJ0ZjhfYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDI6IFNsZWVmX3NxcnRkMl9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IFNsZWVmX3NxcnRkNF9hdngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3NzZTQpOwotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3Nx cnRkMl9zc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVm X3NxcnRmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBm MzJ4NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IFNsZWVmX3NxcnRkMl9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NxcnRkMl9zc2U0KTsKLS0gICAgICAgICAgICB9IGVs c2UgewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzcXJ0X2Yz Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogc3FydF92MTZmMzIpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogc3FydF92OGY2NCk7Ci0tCi0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBzcXJ0X3Y0ZjMyKTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IHNxcnRfdjhmMzIpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4Mjogc3FydF92MmY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg0OiBzcXJ0X3Y0ZjY0KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzcXJ0X2YzMik7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogc3FydF92NGYzMik7Ci0tICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4ODogc3FydF92OGYzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6 IHNxcnRfdjE2ZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBzcXJ0X3YyZjY0 KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBzcXJ0X3Y0ZjY0KTsKLS0gICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4OiBzcXJ0X3Y4ZjY0KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydGUu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv c3FydGUucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9zcXJ0ZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L3NxcnRlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2NyAr MCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBzcXJ0YAotLSMhW2FsbG93KHVu dXNlZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIHNxcnRlCi0tCi0tdXNl IGNyYXRlOjpsbHZtOjpzaW1kX2ZzcXJ0OwotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUp IHRyYWl0IFNxcnRlIHsKLS0gICAgZm4gc3FydGUoc2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tZ2Vu X3VuYXJ5X2ltcGxfdGFibGUhKFNxcnRlLCBzcXJ0ZSk7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlm ICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIp KV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAg ICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3UzNWF2 eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06 IFNsZWVmX3NxcnRmOF91MzVhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NxcnRkNF91MzVhdngyKTsKLS0KLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF91MzVhdngyMTI4KTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NxcnRmOF91MzVhdngyKTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl91MzVhdngyMTI4KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX3NxcnRkNF91MzVhdngy KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4Iild IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVm X3NxcnRmNF91MzVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2gg PT4gZjMyeDhdOiBTbGVlZl9zcXJ0ZjhfdTM1YXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NxcnRkNF91MzVhdngpOwotLQotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X3UzNXNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc3FydGY4X3UzNWF2eCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfdTM1c3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4 KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4y IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNs ZWVmX3NxcnRmNF91MzVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2 W3EgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfdTM1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zcXJ0ZDJfdTM1c3NlNCk7Ci0tCi0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfdTM1c3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9z cXJ0ZjRfdTM1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVl Zl9zcXJ0ZDJfdTM1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2gg PT4gZjY0eDJdOiBTbGVlZl9zcXJ0ZDJfdTM1c3NlNCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZ106IHNpbWRfZnNxcnQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZ106IHNpbWRfZnNxcnQpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtnXTogc2ltZF9mc3FydCk7Ci0tCi0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4MltnXTogc2ltZF9mc3FydCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg0W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltnXTogc2ltZF9m c3FydCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtnXTogc2ltZF9mc3FydCk7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtnXTogc2ltZF9mc3FydCk7Ci0tICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTZbZ106IHNpbWRfZnNxcnQpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDJbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZ106IHNpbWRf ZnNxcnQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZ106IHNpbWRfZnNxcnQpOwotLSAg ICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vbWF0aC9mbG9hdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vbWF0aC9mbG9hdC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE4ICsw LDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgbWF0aCBvcGVyYXRpb25zLgotLSMh W2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQotLQotLSNbbWFjcm9fdXNlXQotLXB1 YihjcmF0ZSkgbW9kIG1hY3JvczsKLS1wdWIoY3JhdGUpIG1vZCBhYnM7Ci0tcHViKGNyYXRlKSBt b2QgY29zOwotLXB1YihjcmF0ZSkgbW9kIGNvc19waTsKLS1wdWIoY3JhdGUpIG1vZCBleHA7Ci0t cHViKGNyYXRlKSBtb2QgbG47Ci0tcHViKGNyYXRlKSBtb2QgbXVsX2FkZDsKLS1wdWIoY3JhdGUp IG1vZCBtdWxfYWRkZTsKLS1wdWIoY3JhdGUpIG1vZCBwb3dmOwotLXB1YihjcmF0ZSkgbW9kIHNp bjsKLS1wdWIoY3JhdGUpIG1vZCBzaW5fY29zX3BpOwotLXB1YihjcmF0ZSkgbW9kIHNpbl9waTsK LS1wdWIoY3JhdGUpIG1vZCBzcXJ0OwotLXB1YihjcmF0ZSkgbW9kIHNxcnRlOwotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoLnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDMgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCBtYXRoIG9wZXJhdGlvbnMKLS0KLS1w dWIoY3JhdGUpIG1vZCBmbG9hdDsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3BvaW50ZXJfc2l6ZWRfaW50LnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjggKzAsMCBAQAotLS8vISBQcm92 aWRlcyBgaXNpemVgIGFuZCBgdXNpemVgCi0tCi0tdXNlIGNmZ19pZjo6Y2ZnX2lmOwotLQotLWNm Z19pZiEgewotLSAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI4IildIHsKLS0g ICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpODsKLS0gICAgICAgIHB1YihjcmF0ZSkg dHlwZSB1c2l6ZV8gPSB1ODsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dp ZHRoID0gIjE2IildIHsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpMTY7Ci0t ICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0gdTE2OwotLSAgICB9IGVsc2UgaWYgI1tj ZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0gewotLSAgICAgICAgcHViKGNyYXRlKSB0 eXBlIGlzaXplXyA9IGkzMjsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1MzI7 Ci0tCi0tICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7 Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0gaTY0OwotLSAgICAgICAgcHViKGNy YXRlKSB0eXBlIHVzaXplXyA9IHU2NDsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2lu dGVyX3dpZHRoID0gIjY0IildIHsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBp NjQ7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0gdTY0OwotLSAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMTI4IildIHsKLS0gICAgICAgIHB1Yihj cmF0ZSkgdHlwZSBpc2l6ZV8gPSBpMTI4OwotLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIHVzaXpl XyA9IHUxMjg7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBw b3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9h YXJjaDY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2svYWFyY2g2NC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYWFyY2g2NC5ycwkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYWFyY2g2NC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsODEgKzAsMCBAQAotLS8vISBNYXNrIHJlZHVjdGlvbnMg aW1wbGVtZW50YXRpb24gZm9yIGBhYXJjaDY0YCB0YXJnZXRzCi0tCi0tLy8vIDEyOC1iaXQgd2lk ZSB2ZWN0b3JzCi0tbWFjcm9fcnVsZXMhIGFhcmNoNjRfMTI4X25lb25faW1wbCB7Ci0tICAgICgk aWQ6aWRlbnQsICR2bWluOmlkZW50LCAkdm1heDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBB bGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJn ZXRfZmVhdHVyZShlbmFibGUgPSAibmVvbiIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwo c2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YWFyY2g2 NDo6JHZtaW47Ci0tICAgICAgICAgICAgICAgICR2bWluKGNyYXRlOjptZW06OnRyYW5zbXV0ZShz ZWxmKSkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55 IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0 X2ZlYXR1cmUoZW5hYmxlID0gIm5lb24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNl bGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFhcmNoNjQ6 OiR2bWF4OwotLSAgICAgICAgICAgICAgICAkdm1heChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs ZikpICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8v LyA2NC1iaXQgd2lkZSB2ZWN0b3JzCi0tbWFjcm9fcnVsZXMhIGFhcmNoNjRfNjRfbmVvbl9pbXBs IHsKLS0gICAgKCRpZDppZGVudCwgJHZlYzEyODppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBB bGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJn ZXRfZmVhdHVyZShlbmFibGUgPSAibmVvbiIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwo c2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIC8vIER1cGxpY2F0ZXMgdGhlIDY0LWJp dCB2ZWN0b3IgaW50byBhIDEyOC1iaXQgb25lIGFuZAotLSAgICAgICAgICAgICAgICAvLyBjYWxs cyBhbGwgb24gdGhhdC4KLS0gICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAg ICAgICAgICBoYWx2ZXM6ICgkaWQsICRpZCksCi0tICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2 ZWMxMjgsCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgVSB7IGhhbHZlczog KHNlbGYsIHNlbGYpIH0udmVjLmFsbCgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAibmVvbiIpXQotLSAgICAgICAgICAgIHVu c2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewot LSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGlkLCAkaWQpLAotLSAgICAgICAgICAgICAg ICAgICAgdmVjOiAkdmVjMTI4LAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg IFUgeyBoYWx2ZXM6IChzZWxmLCBzZWxmKSB9LnZlYy5hbnkoKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIE1hc2sgcmVkdWN0aW9uIGltcGxlbWVudGF0 aW9uIGZvciBgYWFyY2g2NGAgdGFyZ2V0cwotLW1hY3JvX3J1bGVzISBpbXBsX21hc2tfcmVkdWN0 aW9ucyB7Ci0tICAgIC8vIDY0LWJpdCB3aWRlIG1hc2tzCi0tICAgIChtOHg4KSA9PiB7Ci0tICAg ICAgICBhYXJjaDY0XzY0X25lb25faW1wbCEobTh4OCwgbTh4MTYpOwotLSAgICB9OwotLSAgICAo bTE2eDQpID0+IHsKLS0gICAgICAgIGFhcmNoNjRfNjRfbmVvbl9pbXBsIShtMTZ4NCwgbTE2eDgp OwotLSAgICB9OwotLSAgICAobTMyeDIpID0+IHsKLS0gICAgICAgIGFhcmNoNjRfNjRfbmVvbl9p bXBsIShtMzJ4MiwgbTMyeDQpOwotLSAgICB9OwotLSAgICAvLyAxMjgtYml0IHdpZGUgbWFza3MK LS0gICAgKG04eDE2KSA9PiB7Ci0tICAgICAgICBhYXJjaDY0XzEyOF9uZW9uX2ltcGwhKG04eDE2 LCB2bWludnFfdTgsIHZtYXh2cV91OCk7Ci0tICAgIH07Ci0tICAgIChtMTZ4OCkgPT4gewotLSAg ICAgICAgYWFyY2g2NF8xMjhfbmVvbl9pbXBsIShtMTZ4OCwgdm1pbnZxX3UxNiwgdm1heHZxX3Ux Nik7Ci0tICAgIH07Ci0tICAgIChtMzJ4NCkgPT4gewotLSAgICAgICAgYWFyY2g2NF8xMjhfbmVv bl9pbXBsIShtMzJ4NCwgdm1pbnZxX3UzMiwgdm1heHZxX3UzMik7Ci0tICAgIH07Ci0tICAgIC8v IEZhbGxiYWNrIHRvIExMVk0ncyBkZWZhdWx0IGNvZGUtZ2VuZXJhdGlvbjoKLS0gICAgKCRpZDpp ZGVudCkgPT4gewotLSAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKLS0gICAgfTsKLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2svYXJtLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsNTYgKzAsMCBAQAotLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1w bGVtZW50YXRpb24gZm9yIGBhcm1gIHRhcmdldHMKLS0KLS0vLy8gSW1wbGVtZW50YXRpb24gZm9y IEFSTSArIHY3ICsgTkVPTiBmb3IgNjQtYml0IG9yIDEyOC1iaXQgd2lkZSB2ZWN0b3JzIHdpdGgK LS0vLy8gbW9yZSB0aGFuIHR3byBlbGVtZW50cy4KLS1tYWNyb19ydWxlcyEgYXJtXzEyOF92N19u ZW9uX2ltcGwgewotLSAgICAoJGlkOmlkZW50LCAkaGFsZjppZGVudCwgJHZwbWluOmlkZW50LCAk dnBtYXg6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInY3 LG5lb24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFybTo6JHZwbWluOwotLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICB1bmlvbiBV IHsKLS0gICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCRoYWxmLCAkaGFsZiksCi0tICAgICAg ICAgICAgICAgICAgICB2ZWM6ICRpZCwKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKLS0gICAgICAgICAgICAg ICAgbGV0IGg6ICRoYWxmID0gdHJhbnNtdXRlKCR2cG1pbih0cmFuc211dGUoaGFsdmVzLjApLCB0 cmFuc211dGUoaGFsdmVzLjEpKSk7Ci0tICAgICAgICAgICAgICAgIGguYWxsKCkKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJ2 NyxuZW9uIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphcm06OiR2cG1heDsKLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgdW5pb24g VSB7Ci0tICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaGFsZiwgJGhhbGYpLAotLSAgICAg ICAgICAgICAgICAgICAgdmVjOiAkaWQsCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7Ci0tICAgICAgICAgICAg ICAgIGxldCBoOiAkaGFsZiA9IHRyYW5zbXV0ZSgkdnBtYXgodHJhbnNtdXRlKGhhbHZlcy4wKSwg dHJhbnNtdXRlKGhhbHZlcy4xKSkpOwotLSAgICAgICAgICAgICAgICBoLmFueSgpCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gTWFzayByZWR1Y3Rpb24g aW1wbGVtZW50YXRpb24gZm9yIGBhcm1gIHRhcmdldHMKLS1tYWNyb19ydWxlcyEgaW1wbF9tYXNr X3JlZHVjdGlvbnMgewotLSAgICAvLyAxMjgtYml0IHdpZGUgbWFza3MKLS0gICAgKG04eDE2KSA9 PiB7Ci0tICAgICAgICBhcm1fMTI4X3Y3X25lb25faW1wbCEobTh4MTYsIG04eDgsIHZwbWluX3U4 LCB2cG1heF91OCk7Ci0tICAgIH07Ci0tICAgIChtMTZ4OCkgPT4gewotLSAgICAgICAgYXJtXzEy OF92N19uZW9uX2ltcGwhKG0xNng4LCBtMTZ4NCwgdnBtaW5fdTE2LCB2cG1heF91MTYpOwotLSAg ICB9OwotLSAgICAobTMyeDQpID0+IHsKLS0gICAgICAgIGFybV8xMjhfdjdfbmVvbl9pbXBsISht MzJ4NCwgbTMyeDIsIHZwbWluX3UzMiwgdnBtYXhfdTMyKTsKLS0gICAgfTsKLS0gICAgLy8gRmFs bGJhY2sgdG8gTExWTSdzIGRlZmF1bHQgY29kZS1nZW5lcmF0aW9uOgotLSAgICAoJGlkOmlkZW50 KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOwotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlv bnMvbWFzay9mYWxsYmFjay5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDggKzAsMCBAQAotLS8vISBEZWZh dWx0IG1hc2sgcmVkdWN0aW9uIGltcGxlbWVudGF0aW9ucy4KLS0KLS0vLy8gRGVmYXVsdCBtYXNr IHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISBpbXBsX21hc2tfcmVkdWN0 aW9ucyB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRp ZCk7Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFj a19pbXBsLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMvbWFzay9mYWxsYmFja19pbXBsLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFja19pbXBsLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMzcgKzAsMCBAQAotLS8vISBEZWZhdWx0IGltcGxlbWVu dGF0aW9uIG9mIGEgbWFzayByZWR1Y3Rpb24gZm9yIGFueSB0YXJnZXQuCi0tCi0tbWFjcm9fcnVs ZXMhIGZhbGxiYWNrX3RvX290aGVyX2ltcGwgewotLSAgICAoJGlkOmlkZW50LCAkb3RoZXI6aWRl bnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAg ICAgICAgICAgIGxldCBtOiAkb3RoZXIgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0t ICAgICAgICAgICAgICAgIG0uYWxsKCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg ICAgICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBsZXQg bTogJG90aGVyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAg ICBtLmFueSgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0v Ly8gRmFsbGJhY2sgaW1wbGVtZW50YXRpb24uCi0tbWFjcm9fcnVsZXMhIGZhbGxiYWNrX2ltcGwg ewotLSAgICAvLyAxNi1iaXQgd2lkZSBtYXNrczoKLS0gICAgKG04eDIpID0+IHsKLS0gICAgICAg IGltcGwgQWxsIGZvciBtOHgyIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBsZXQgaTog dTE2ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICBpID09 IHUxNjo6bWF4X3ZhbHVlKCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBp bXBsIEFueSBmb3IgbTh4MiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg dW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgbGV0IGk6IHUx NiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgaSAhPSAw Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyAzMi1iaXQgd2lk ZSBtYXNrcwotLSAgICAobTh4NCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDQgewot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikg LT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIGxldCBpOiB1MzIgPSBjcmF0ZTo6bWVtOjp0cmFu c211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgIGkgPT0gdTMyOjptYXhfdmFsdWUoKQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciBtOHg0IHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICBsZXQgaTogdTMyID0gY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICBpICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tICAgIChtMTZ4MikgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9f b3RoZXJfaW1wbCEobTE2eDIsIG04eDQpOwotLSAgICB9OwotLSAgICAvLyA2NC1iaXQgd2lkZSBt YXNrczoKLS0gICAgKG04eDgpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciBtOHg4IHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICBsZXQgaTogdTY0ID0gY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICBpID09IHU2NDo6bWF4X3ZhbHVlKCkKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgbTh4OCB7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBi b29sIHsKLS0gICAgICAgICAgICAgICAgbGV0IGk6IHU2NCA9IGNyYXRlOjptZW06OnRyYW5zbXV0 ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgaSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLSAgICAobTE2eDQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290 aGVyX2ltcGwhKG0xNng0LCBtOHg4KTsKLS0gICAgfTsKLS0gICAgKG0zMngyKSA9PiB7Ci0tICAg ICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMzJ4MiwgbTE2eDQpOwotLSAgICB9OwotLSAg ICAvLyBGSVhNRTogNjR4MSBtYXhrCi0tICAgIC8vIDEyOC1iaXQgd2lkZSBtYXNrczoKLS0gICAg KG04eDE2KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgbTh4MTYgewotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0t ICAgICAgICAgICAgICAgIGxldCBpOiB1MTI4ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYp OwotLSAgICAgICAgICAgICAgICBpID09IHUxMjg6Om1heF92YWx1ZSgpCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDE2IHsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewot LSAgICAgICAgICAgICAgICBsZXQgaTogdTEyOCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KTsKLS0gICAgICAgICAgICAgICAgaSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLSAgICAobTE2eDgpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2lt cGwhKG0xNng4LCBtOHgxNik7Ci0tICAgIH07Ci0tICAgIChtMzJ4NCkgPT4gewotLSAgICAgICAg ZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTMyeDQsIG0xNng4KTsKLS0gICAgfTsKLS0gICAgKG02 NHgyKSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtNjR4MiwgbTMyeDQp OwotLSAgICB9OwotLSAgICAobTEyOHgxKSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhl cl9pbXBsIShtMTI4eDEsIG02NHgyKTsKLS0gICAgfTsKLS0gICAgLy8gMjU2LWJpdCB3aWRlIG1h c2tzCi0tICAgIChtOHgzMikgPT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDMyIHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICBsZXQgaTogW3UxMjg7IDJdID0gY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICBsZXQgbzogW3UxMjg7IDJdID0gW3Ux Mjg6Om1heF92YWx1ZSgpOyAyXTsKLS0gICAgICAgICAgICAgICAgaSA9PSBvCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDMyIHsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wg ewotLSAgICAgICAgICAgICAgICBsZXQgaTogW3UxMjg7IDJdID0gY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICBsZXQgbzogW3UxMjg7IDJdID0gWzA7IDJdOwot LSAgICAgICAgICAgICAgICBpICE9IG8KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tICAgIChtMTZ4MTYpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwh KG0xNngxNiwgbTh4MzIpOwotLSAgICB9OwotLSAgICAobTMyeDgpID0+IHsKLS0gICAgICAgIGZh bGxiYWNrX3RvX290aGVyX2ltcGwhKG0zMng4LCBtMTZ4MTYpOwotLSAgICB9OwotLSAgICAobTY0 eDQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG02NHg0LCBtMzJ4OCk7 Ci0tICAgIH07Ci0tICAgIChtMTI4eDIpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVy X2ltcGwhKG0xMjh4MiwgbTY0eDQpOwotLSAgICB9OwotLSAgICAvLyA1MTItYml0IHdpZGUgbWFz a3MKLS0gICAgKG04eDY0KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgbTh4NjQgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4g Ym9vbCB7Ci0tICAgICAgICAgICAgICAgIGxldCBpOiBbdTEyODsgNF0gPSBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgIGxldCBvOiBbdTEyODsgNF0gPSBbdTEy ODo6bWF4X3ZhbHVlKCk7IDRdOwotLSAgICAgICAgICAgICAgICBpID09IG8KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgbTh4NjQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7 Ci0tICAgICAgICAgICAgICAgIGxldCBpOiBbdTEyODsgNF0gPSBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgIGxldCBvOiBbdTEyODsgNF0gPSBbMDsgNF07Ci0t ICAgICAgICAgICAgICAgIGkgIT0gbwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fTsKLS0gICAgKG0xNngzMikgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEo bTE2eDMyLCBtOHg2NCk7Ci0tICAgIH07Ci0tICAgIChtMzJ4MTYpID0+IHsKLS0gICAgICAgIGZh bGxiYWNrX3RvX290aGVyX2ltcGwhKG0zMngxNiwgbTE2eDMyKTsKLS0gICAgfTsKLS0gICAgKG02 NHg4KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtNjR4OCwgbTMyeDE2 KTsKLS0gICAgfTsKLS0gICAgKG0xMjh4NCkgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3Ro ZXJfaW1wbCEobTEyOHg0LCBtNjR4OCk7Ci0tICAgIH07Ci0tICAgIC8vIE1hc2tzIHdpdGggcG9p bnRlci1zaXplZCBlbGVtZW50czY0Ci0tICAgIChtc2l6ZXgyKSA9PiB7Ci0tICAgICAgICBjZmdf aWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIp XSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDIsIG02 NHgyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGgg PSAiMzIiKV0gewotLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6 ZXgyLCBtMzJ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgY29t cGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAobXNpemV4NCkgPT4gewotLSAgICAg ICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGgg PSAiNjQiKV0gewotLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6 ZXg0LCBtNjR4NCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVy X3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1w bCEobXNpemV4NCwgbTMyeDQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAg ICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKG1zaXpleDgpID0+IHsK LS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVy X3dpZHRoID0gIjY0IildIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1w bCEobXNpemV4OCwgbTY0eDgpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRf cG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290 aGVyX2ltcGwhKG1zaXpleDgsIG0zMng4KTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAg ICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lk dGgiKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3Jv X3J1bGVzISByZWN1cnNlX2hhbGYgewotLSAgICAoJHZpZDppZGVudCwgJHZpZF9oOmlkZW50KSA9 PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgJHZpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkdmlkX2gsICR2 aWRfaCksCi0tICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2aWQsCi0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7 Ci0tICAgICAgICAgICAgICAgIGhhbHZlcy4wLmFsbCgpICYmIGhhbHZlcy4xLmFsbCgpCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICR2aWQgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4g Ym9vbCB7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAg aGFsdmVzOiAoJHZpZF9oLCAkdmlkX2gpLAotLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmlk LAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsg dmVjOiBzZWxmIH0uaGFsdmVzOwotLSAgICAgICAgICAgICAgICBoYWx2ZXMuMC5hbnkoKSB8fCBo YWx2ZXMuMS5hbnkoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2sveDg2L2F2eC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDk1ICswLDAgQEAKLS0vLyEgTWFz ayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFyZ2V0 cyB3aXRoIGBBVlhgCi0tCi0tLy8vIGB4ODZgL2B4ODZfNjRgIDI1Ni1iaXQgYEFWWGAgaW1wbGVt ZW50YXRpb24KLS0vLy8gRklYTUU6IGl0IG1pZ2h0IGJlIGZhc3RlciBoZXJlIHRvIGRvIHR3byBg X21tX21vdm1hc2tfZXBpOGAKLS0jW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0KLS1tYWNy b19ydWxlcyEgeDg2X204eDMyX2F2eF9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAg ICAgICAgaW1wbCBBbGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAiYXZ4IildCi0tICAgICAgICAgICAgdW5z YWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2Ojpf bW0yNTZfdGVzdGNfc2kyNTY7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g Ing4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21t MjU2X3Rlc3RjX3NpMjU2OwotLSAgICAgICAgICAgICAgICBfbW0yNTZfdGVzdGNfc2kyNTYoY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpLCBjcmF0ZTo6bWVtOjp0cmFuc211dGUoJGlkOjpzcGxh dCh0cnVlKSkpICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBs IEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3Rh cmdldF9mZWF0dXJlKGVuYWJsZSA9ICJhdngiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55 KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4 ODYiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl90ZXN0 el9zaTI1NjsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0Iild Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfdGVzdHpf c2kyNTY7Ci0tICAgICAgICAgICAgICAgIF9tbTI1Nl90ZXN0el9zaTI1NihjcmF0ZTo6bWVtOjp0 cmFuc211dGUoc2VsZiksIGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMAotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIGB4ODZgL2B4ODZfNjRg IDI1Ni1iaXQgbTMyeDggYEFWWGAgaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X20z Mng4X2F2eF9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwg Zm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRf ZmVhdHVyZShlbmFibGUgPSAic3NlIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxm KSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2Iild Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tf cHM7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNrX3Bz OwotLSAgICAgICAgICAgICAgICAvLyBfbW0yNTZfbW92ZW1hc2tfcHMoYSkgY3JlYXRlcyBhIDhi aXQgbWFzayBjb250YWluaW5nIHRoZQotLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmlj YW50IGJpdCBvZiBlYWNoIGxhbmUgb2YgYGFgLiBJZiBhbGwgYml0cyBhcmUKLS0gICAgICAgICAg ICAgICAgLy8gc2V0LCB0aGVuIGFsbCA4IGxhbmVzIG9mIHRoZSBtYXNrIGFyZSB0cnVlLgotLSAg ICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1hc2tfcHMoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNl bGYpKSA9PSAwYl8xMTExXzExMTFfaTMyCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIildCi0tICAgICAgICAgICAgdW5z YWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2Ojpf bW0yNTZfbW92ZW1hc2tfcHM7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g Ing4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21t MjU2X21vdmVtYXNrX3BzOwotLQotLSAgICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1hc2tfcHMo Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gYHg4NmAvYHg4Nl82NGAgMjU2LWJpdCBtNjR4NCBg QVZYYCBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZfbTY0eDRfYXZ4X2ltcGwgewot LSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9 ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAg ICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19wZDsKLS0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfcGQ7Ci0tICAgICAgICAgICAg ICAgIC8vIF9tbTI1Nl9tb3ZlbWFza19wZChhKSBjcmVhdGVzIGEgNGJpdCBtYXNrIGNvbnRhaW5p bmcgdGhlCi0tICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2gg bGFuZSBvZiBgYWAuIElmIGFsbCBiaXRzIGFyZQotLSAgICAgICAgICAgICAgICAvLyBzZXQsIHRo ZW4gYWxsIDQgbGFuZXMgb2YgdGhlIG1hc2sgYXJlIHRydWUuCi0tICAgICAgICAgICAgICAgIF9t bTI1Nl9tb3ZlbWFza19wZChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpID09IDBiXzExMTFf aTMyCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRp ZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVy ZShlbmFibGUgPSAic3NlIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBi b29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfcGQ7Ci0t ICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNrX3BkOwotLQot LSAgICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1hc2tfcGQoY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHNlbGYpKSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay94ODYvYXZ4Mi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4Mi5ycwky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIucnMJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM1ICswLDAgQEAKLS0vLyEg TWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFy Z2V0cyB3aXRoIGBBVlgyYC4KLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vLyB4ODYveDg2XzY0 IDI1Ni1iaXQgbTh4MzIgQVZYMiBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZfbTh4 MzJfYXZ4Ml9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwg Zm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRf ZmVhdHVyZShlbmFibGUgPSAic3NlMiIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2Vs ZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIp XQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNr X2VwaTg7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQot LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNr X2VwaTg7Ci0tICAgICAgICAgICAgICAgIC8vIF9tbTI1Nl9tb3ZlbWFza19lcGk4KGEpIGNyZWF0 ZXMgYSAzMmJpdCBtYXNrIGNvbnRhaW5pbmcgdGhlCi0tICAgICAgICAgICAgICAgIC8vIG1vc3Qg c2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggYnl0ZSBvZiBgYWAuIElmIGFsbAotLSAgICAgICAgICAg ICAgICAvLyBiaXRzIGFyZSBzZXQsIHRoZW4gYWxsIDMyIGxhbmVzIG9mIHRoZSBtYXNrIGFyZQot LSAgICAgICAgICAgICAgICAvLyB0cnVlLgotLSAgICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1h c2tfZXBpOChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpID09IC0xX2kzMgotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNz ZTIiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4OwotLSAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4OwotLQotLSAgICAgICAg ICAgICAgICBfbW0yNTZfbW92ZW1hc2tfZXBpOChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikp ICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9t YXNrL3g4Ni9zc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMvbWFzay94ODYvc3NlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlLnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNSArMCwwIEBACi0tLy8hIE1hc2sgcmVkdWN0 aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0aCBg U1NFYC4KLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vLyBgeDg2YC9geDg2XzY0YCAxMjgtYml0 IGBtMzJ4NGAgYFNTRWAgaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X20zMng0X3Nz ZV9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yICRp ZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVy ZShlbmFibGUgPSAic3NlIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBi b29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfcHM7Ci0tICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX3BzOwotLSAgICAgICAg ICAgICAgICAvLyBfbW1fbW92ZW1hc2tfcHMoYSkgY3JlYXRlcyBhIDRiaXQgbWFzayBjb250YWlu aW5nIHRoZQotLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBlYWNo IGxhbmUgb2YgYGFgLiBJZiBhbGwKLS0gICAgICAgICAgICAgICAgLy8gYml0cyBhcmUgc2V0LCB0 aGVuIGFsbCA0IGxhbmVzIG9mIHRoZSBtYXNrIGFyZQotLSAgICAgICAgICAgICAgICAvLyB0cnVl LgotLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfcHMoY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHNlbGYpKSA9PSAwYl8xMTExX2kzMgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg ICAgIGltcGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQotLSAgICAgICAgICAgIHVuc2Fm ZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9h cmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21t X21vdmVtYXNrX3BzOwotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZf NjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3Zl bWFza19wczsKLS0KLS0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX3BzKGNyYXRlOjptZW06 OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZTIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlMi5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2 L3NzZTIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9z c2UyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2OCArMCww IEBACi0tLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4 ODZfNjRgIHRhcmdldHMgd2l0aCBgU1NFMmAuCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS0vLy8g YHg4NmAvYHg4Nl82NGAgMTI4LWJpdCBtNjR4MiBgU1NFMmAgaW1wbGVtZW50YXRpb24KLS1tYWNy b19ydWxlcyEgeDg2X202NHgyX3NzZTJfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0g ICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQotLSAgICAgICAgICAgIHVu c2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdl dF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6 X21tX21vdmVtYXNrX3BkOwotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4 ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9t b3ZlbWFza19wZDsKLS0gICAgICAgICAgICAgICAgLy8gX21tX21vdmVtYXNrX3BkKGEpIGNyZWF0 ZXMgYSAyYml0IG1hc2sgY29udGFpbmluZyB0aGUKLS0gICAgICAgICAgICAgICAgLy8gbW9zdCBz aWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9mIGBhYC4gSWYgYWxsCi0tICAgICAgICAgICAg ICAgIC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwgMiBsYW5lcyBvZiB0aGUgbWFzayBhcmUKLS0g ICAgICAgICAgICAgICAgLy8gdHJ1ZS4KLS0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX3Bk KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTFfaTMyCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIild Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfcGQ7Ci0tICAgICAgICAgICAgICAgICNbY2Zn KHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFy Y2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX3BkOwotLQotLSAgICAgICAgICAgICAgICBfbW1fbW92 ZW1hc2tfcGQoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAwCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gYHg4NmAvYHg4Nl82NGAgMTI4LWJp dCBtOHgxNiBgU1NFMmAgaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X204eDE2X3Nz ZTJfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1 cmUoZW5hYmxlID0gInNzZTIiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19lcGk4Owot LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3ZlbWFza19lcGk4OwotLSAg ICAgICAgICAgICAgICAvLyBfbW1fbW92ZW1hc2tfZXBpOChhKSBjcmVhdGVzIGEgMTZiaXQgbWFz ayBjb250YWluaW5nIHRoZQotLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJp dCBvZiBlYWNoIGJ5dGUgb2YgYGFgLiBJZiBhbGwKLS0gICAgICAgICAgICAgICAgLy8gYml0cyBh cmUgc2V0LCB0aGVuIGFsbCAxNiBsYW5lcyBvZiB0aGUgbWFzayBhcmUKLS0gICAgICAgICAgICAg ICAgLy8gdHJ1ZS4KLS0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX2VwaTgoY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHNlbGYpKSA9PSBpMzI6OmZyb20odTE2OjptYXhfdmFsdWUoKSkKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9 ICJzc2UyIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0g ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfZXBpODsKLS0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfZXBpODsKLS0KLS0gICAgICAgICAg ICAgICAgX21tX21vdmVtYXNrX2VwaTgoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAw Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94 ODYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlv bnMvbWFzay94ODYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2sveDg2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSwyMTYgKzAsMCBAQAotLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24g Zm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzCi0tCi0tI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAic3NlIildCi0tI1ttYWNyb191c2VdCi0tbW9kIHNzZTsKLS0KLS0jW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJzc2UyIildCi0tI1ttYWNyb191c2VdCi0tbW9kIHNzZTI7Ci0tCi0tI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IildCi0tI1ttYWNyb191c2VdCi0tbW9kIGF2eDsKLS0KLS0jW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildCi0tI1ttYWNyb191c2VdCi0tbW9kIGF2eDI7Ci0t Ci0tLy8vIHg4NiA2NC1iaXQgbTh4OCBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZf bTh4OF9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgZmFsbGJhY2tfaW1w bCEoJGlkKTsKLS0gICAgfTsKLS19Ci0tCi0tLy8vIHg4NiAxMjgtYml0IG04eDE2IGltcGxlbWVu dGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tOHgxNl9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkg PT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2Zl YXR1cmUgPSAic3NlMiIpXSB7Ci0tICAgICAgICAgICAgICAgIHg4Nl9tOHgxNl9zc2UyX2ltcGwh KCRpZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tf aW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQot LS8vLyB4ODYgMTI4LWJpdCBtMzJ4NCBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZf bTMyeDRfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGNmZ19pZiEgewot LSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZSIpXSB7Ci0tICAgICAg ICAgICAgICAgIHg4Nl9tMzJ4NF9zc2VfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9IGVsc2Ug ewotLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOwotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIHg4NiAxMjgtYml0IG02NHgyIGltcGxl bWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tNjR4Ml9pbXBsIHsKLS0gICAgKCRpZDppZGVu dCkgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlMiIpXSB7Ci0tICAgICAgICAgICAgICAgIHg4Nl9tNjR4Ml9zc2UyX2lt cGwhKCRpZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0g InNzZSIpXSB7Ci0tICAgICAgICAgICAgICAgIHg4Nl9tMzJ4NF9zc2VfaW1wbCEoJGlkKTsKLS0g ICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQp OwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIHg4NiAy NTYtYml0IG04eDMyIGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tOHgzMl9pbXBs IHsKLS0gICAgKCRpZDppZGVudCwgJGhhbGZfaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGNmZ19p ZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewot LSAgICAgICAgICAgICAgICB4ODZfbTh4MzJfYXZ4Ml9pbXBsISgkaWQpOwotLSAgICAgICAgICAg IH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAg ICAgICB4ODZfbTh4MzJfYXZ4X2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNb Y2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0gewotLSAgICAgICAgICAgICAgICByZWN1cnNl X2hhbGYhKCRpZCwgJGhhbGZfaWQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAg ICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLS0KLS0vLy8geDg2IDI1Ni1iaXQgbTMyeDggaW1wbGVtZW50YXRpb24KLS1t YWNyb19ydWxlcyEgeDg2X20zMng4X2ltcGwgewotLSAgICAoJGlkOmlkZW50LCAkaGFsZl9pZDpp ZGVudCkgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgeDg2X20zMng4X2F2eF9p bXBsISgkaWQpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9 ICJzc2UiKV0gewotLSAgICAgICAgICAgICAgICByZWN1cnNlX2hhbGYhKCRpZCwgJGhhbGZfaWQp OwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwh KCRpZCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8g eDg2IDI1Ni1iaXQgbTY0eDQgaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X202NHg0 X2ltcGwgewotLSAgICAoJGlkOmlkZW50LCAkaGFsZl9pZDppZGVudCkgPT4gewotLSAgICAgICAg Y2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4Iild IHsKLS0gICAgICAgICAgICAgICAgeDg2X202NHg0X2F2eF9pbXBsISgkaWQpOwotLSAgICAgICAg ICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UiKV0gewotLSAgICAgICAg ICAgICAgICByZWN1cnNlX2hhbGYhKCRpZCwgJGhhbGZfaWQpOwotLSAgICAgICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gRmFsbGJhY2sgaW1wbGVtZW50YXRp b24uCi0tbWFjcm9fcnVsZXMhIHg4Nl9pbnRyX2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7 Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FsbDsKLS0gICAgICAgICAgICAgICAgc2lt ZF9yZWR1Y2VfYWxsKHNlbGYuMCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAg ICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Omxsdm06OnNpbWRfcmVkdWNlX2FueTsKLS0gICAgICAgICAgICAgICAgc2ltZF9yZWR1Y2Vf YW55KHNlbGYuMCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQot LS8vLyBNYXNrIHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRg IHRhcmdldHMKLS1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMgewotLSAgICAvLyA2 NC1iaXQgd2lkZSBtYXNrcwotLSAgICAobTh4OCkgPT4gewotLSAgICAgICAgeDg2X204eDhfaW1w bCEobTh4OCk7Ci0tICAgIH07Ci0tICAgIChtMTZ4NCkgPT4gewotLSAgICAgICAgeDg2X204eDhf aW1wbCEobTE2eDQpOwotLSAgICB9OwotLSAgICAobTMyeDIpID0+IHsKLS0gICAgICAgIHg4Nl9t OHg4X2ltcGwhKG0zMngyKTsKLS0gICAgfTsKLS0gICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzCi0t ICAgIChtOHgxNikgPT4gewotLSAgICAgICAgeDg2X204eDE2X2ltcGwhKG04eDE2KTsKLS0gICAg fTsKLS0gICAgKG0xNng4KSA9PiB7Ci0tICAgICAgICB4ODZfbTh4MTZfaW1wbCEobTE2eDgpOwot LSAgICB9OwotLSAgICAobTMyeDQpID0+IHsKLS0gICAgICAgIHg4Nl9tMzJ4NF9pbXBsIShtMzJ4 NCk7Ci0tICAgIH07Ci0tICAgIChtNjR4MikgPT4gewotLSAgICAgICAgeDg2X202NHgyX2ltcGwh KG02NHgyKTsKLS0gICAgfTsKLS0gICAgKG0xMjh4MSkgPT4gewotLSAgICAgICAgeDg2X2ludHJf aW1wbCEobTEyOHgxKTsKLS0gICAgfTsKLS0gICAgLy8gMjU2LWJpdCB3aWRlIG1hc2tzOgotLSAg ICAobTh4MzIpID0+IHsKLS0gICAgICAgIHg4Nl9tOHgzMl9pbXBsIShtOHgzMiwgbTh4MTYpOwot LSAgICB9OwotLSAgICAobTE2eDE2KSA9PiB7Ci0tICAgICAgICB4ODZfbTh4MzJfaW1wbCEobTE2 eDE2LCBtMTZ4OCk7Ci0tICAgIH07Ci0tICAgIChtMzJ4OCkgPT4gewotLSAgICAgICAgeDg2X20z Mng4X2ltcGwhKG0zMng4LCBtMzJ4NCk7Ci0tICAgIH07Ci0tICAgIChtNjR4NCkgPT4gewotLSAg ICAgICAgeDg2X202NHg0X2ltcGwhKG02NHg0LCBtNjR4Mik7Ci0tICAgIH07Ci0tICAgIChtMTI4 eDIpID0+IHsKLS0gICAgICAgIHg4Nl9pbnRyX2ltcGwhKG0xMjh4Mik7Ci0tICAgIH07Ci0tICAg IChtc2l6ZXgyKSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2Nm Zyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxi YWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDIsIG02NHgyKTsKLS0gICAgICAgICAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0gewotLSAgICAgICAgICAgICAg ICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXgyLCBtMzJ4Mik7Ci0tICAgICAgICAgICAg fSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRh cmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9 OwotLSAgICAobXNpemV4NCkgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAg aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0gewotLSAgICAgICAgICAgICAg ICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg0LCBtNjR4NCk7Ci0tICAgICAgICAgICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAg ICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4NCwgbTMyeDQpOwotLSAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBv cnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgfTsKLS0gICAgKG1zaXpleDgpID0+IHsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAg ICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKLS0gICAgICAg ICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4OCwgbTY0eDgpOwotLSAgICAg ICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0t ICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDgsIG0zMng4KTsK LS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgi dW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tCi0tICAgIC8vIEZhbGxiYWNrIHRvIExMVk0ncyBkZWZhdWx0IGNv ZGUtZ2VuZXJhdGlvbjoKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgZmFsbGJhY2tf aW1wbCEoJGlkKTsKLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2OSArMCwwIEBACi0tLy8hIENvZGUgZ2Vu ZXJhdGlvbiB3b3JrYXJvdW5kIGZvciBgYWxsKClgIG1hc2sgaG9yaXpvbnRhbCByZWR1Y3Rpb24u Ci0tLy8hCi0tLy8hIFdvcmtzIGFyb3VuZCBbTExWTSBidWcgMzY3MDJdLgotLS8vIQotLS8vISBb TExWTSBidWcgMzY3MDJdOiBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTM2 NzAyCi0tIyFbYWxsb3codW51c2VkX21hY3JvcyldCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLXB1 YihjcmF0ZSkgdHJhaXQgQWxsOiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7Ci0tICAgIHVuc2FmZSBm biBhbGwoc2VsZikgLT4gYm9vbDsKLS19Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBBbnk6IGNyYXRl OjptYXJrZXI6OlNpemVkIHsKLS0gICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sOwotLX0K LS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgZmFsbGJhY2tfaW1wbDsKLS0KLS1jZmdfaWYhIHsKLS0g ICAgaWYgI1tjZmcoYW55KHRhcmdldF9hcmNoID0gIng4NiIsIHRhcmdldF9hcmNoID0gIng4Nl82 NCIpKV0gewotLSAgICAgICAgI1ttYWNyb191c2VdCi0tICAgICAgICBtb2QgeDg2OwotLSAgICB9 IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFybSIsIHRhcmdldF9mZWF0dXJlID0g InY3IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwK LS0gICAgICAgICAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJj b3JlX25lb24pKSldIHsKLS0gICAgICAgICNbbWFjcm9fdXNlXQotLSAgICAgICAgbW9kIGFybTsK LS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwgdGFyZ2V0 X2ZlYXR1cmUgPSAibmVvbiIpKV0gewotLSAgICAgICAgI1ttYWNyb191c2VdCi0tICAgICAgICBt b2QgYWFyY2g2NDsKLS0gICAgfSBlbHNlIHsKLS0gICAgICAgICNbbWFjcm9fdXNlXQotLSAgICAg ICAgbW9kIGZhbGxiYWNrOwotLSAgICB9Ci0tfQotLQotLWltcGxfbWFza19yZWR1Y3Rpb25zISht OHgyKTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4NCk7Ci0taW1wbF9tYXNrX3JlZHVjdGlv bnMhKG04eDgpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHgxNik7Ci0taW1wbF9tYXNrX3Jl ZHVjdGlvbnMhKG04eDMyKTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4NjQpOwotLQotLWlt cGxfbWFza19yZWR1Y3Rpb25zIShtMTZ4Mik7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xNng0 KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDgpOwotLWltcGxfbWFza19yZWR1Y3Rpb25z IShtMTZ4MTYpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTZ4MzIpOwotLQotLWltcGxfbWFz a19yZWR1Y3Rpb25zIShtMzJ4Mik7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0zMng0KTsKLS1p bXBsX21hc2tfcmVkdWN0aW9ucyEobTMyeDgpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMzJ4 MTYpOwotLQotLS8vIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCi0tLy8gaW1w bF9tYXNrX3JlZHVjdGlvbnMhKG02NHgxKTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTY0eDIp OwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtNjR4NCk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMh KG02NHg4KTsKLS0KLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTEyOHgxKTsKLS1pbXBsX21hc2tf cmVkdWN0aW9ucyEobTEyOHgyKTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTEyOHg0KTsKLS0K LS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobXNpemV4Mik7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMh KG1zaXpleDQpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtc2l6ZXg4KTsKLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSArMCwwIEBACi0tcHViKGNyYXRlKSBtb2Qg bWFzazsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3NodWZmbGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3NodWZmbGUucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vc2h1ZmZsZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxlLnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNTAgKzAsMCBAQAotLS8vISBJ bXBsZW1lbnRhdGlvbnMgb2YgdGhlIGBTaHVmZmxlUmVzdWx0YCB0cmFpdCBmb3IgdGhlIGRpZmZl cmVudCBudW1iZXJzIG9mCi0tLy8hIGxhbmVzIGFuZCB2ZWN0b3IgZWxlbWVudCB0eXBlcy4KLS0K LS11c2UgY3JhdGU6Om1hc2tzOjoqOwotLXVzZSBjcmF0ZTo6c2VhbGVkOjp7U2VhbCwgU2h1ZmZs ZX07Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfc2h1ZmZsZSB7Ci0tICAgICgkYXJyYXk6dHksICRi YXNlOnR5LCAkb3V0OnR5KSA9PiB7Ci0tICAgICAgICBpbXBsIFNlYWw8JGFycmF5PiBmb3IgJGJh c2Uge30KLS0gICAgICAgIGltcGwgU2h1ZmZsZTwkYXJyYXk+IGZvciAkYmFzZSB7Ci0tICAgICAg ICAgICAgdHlwZSBPdXRwdXQgPSAkb3V0OwotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1p bXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4MiB9Ci0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDQgfQotLWltcGxf c2h1ZmZsZSEgeyBbdTMyOyA4XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHg4IH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMTZdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDE2IH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMzJdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDMyIH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNjRdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDY0IH0KLS0KLS1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMl0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4MiB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDRdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDQgfQotLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyA4XSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHg4IH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMTZdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDE2IH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMzJdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDMyIH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgNjRdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDY0IH0KLS0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMl0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4MiB9Ci0taW1wbF9zaHVm ZmxlISB7IFt1MzI7IDRdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDQgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA4XSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHg4IH0KLS1pbXBsX3NodWZmbGUh IHsgW3UzMjsgMTZdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDE2IH0KLS1pbXBsX3NodWZmbGUh IHsgW3UzMjsgMzJdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDMyIH0KLS1pbXBsX3NodWZmbGUh IHsgW3UzMjsgNjRdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDY0IH0KLS0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMl0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNngyIH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgNF0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNng0IH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgOF0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNng4IH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMTZdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4MTYgfQotLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAzMl0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNngzMiB9Ci0tCi0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4MiB9Ci0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4NCB9Ci0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4OCB9Ci0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDE2IH0KLS1p bXBsX3NodWZmbGUhIHsgW3UzMjsgMzJdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4MzIgfQot LQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2eDIg fQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2eDQg fQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2eDgg fQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIG0xNiwgY3JhdGU6OmNvZGVnZW46Om0xNngx NiB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpMzIsIGNyYXRlOjpjb2RlZ2VuOjpp MzJ4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpMzIsIGNyYXRlOjpjb2RlZ2VuOjpp MzJ4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBpMzIsIGNyYXRlOjpjb2RlZ2VuOjpp MzJ4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgaTMyLCBjcmF0ZTo6Y29kZWdlbjo6 aTMyeDE2IH0KLS0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHUzMiwgY3JhdGU6OmNvZGVn ZW46OnUzMngyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIHUzMiwgY3JhdGU6OmNvZGVn ZW46OnUzMng0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIHUzMiwgY3JhdGU6OmNvZGVn ZW46OnUzMng4IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCB1MzIsIGNyYXRlOjpjb2Rl Z2VuOjp1MzJ4MTYgfQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgZjMyLCBjcmF0ZTo6 Y29kZWdlbjo6ZjMyeDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgZjMyLCBjcmF0ZTo6 Y29kZWdlbjo6ZjMyeDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgZjMyLCBjcmF0ZTo6 Y29kZWdlbjo6ZjMyeDggfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIGYzMiwgY3JhdGU6 OmNvZGVnZW46OmYzMngxNiB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtMzIsIGNy YXRlOjpjb2RlZ2VuOjptMzJ4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtMzIsIGNy YXRlOjpjb2RlZ2VuOjptMzJ4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBtMzIsIGNy YXRlOjpjb2RlZ2VuOjptMzJ4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgbTMyLCBj cmF0ZTo6Y29kZWdlbjo6bTMyeDE2IH0KLS0KLS0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVt ZW50IHZlY3RvcgotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29kZWdl bjo6aTY0eDEgfQotLSovCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpNjQsIGNyYXRlOjpj b2RlZ2VuOjppNjR4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpNjQsIGNyYXRlOjpj b2RlZ2VuOjppNjR4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBpNjQsIGNyYXRlOjpj b2RlZ2VuOjppNjR4OCB9Ci0tCi0tLyogRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0 b3IKLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgx IH0KLS0qLwotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTY0LCBjcmF0ZTo6Y29kZWdlbjo6 dTY0eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTY0LCBjcmF0ZTo6Y29kZWdlbjo6 dTY0eDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdTY0LCBjcmF0ZTo6Y29kZWdlbjo6 dTY0eDggfQotLQotLS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCi0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjppNjR4MSB9Ci0tKi8K LS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGY2NCwgY3JhdGU6OmNvZGVnZW46OmY2NHgyIH0K LS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGY2NCwgY3JhdGU6OmNvZGVnZW46OmY2NHg0IH0K LS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGY2NCwgY3JhdGU6OmNvZGVnZW46OmY2NHg4IH0K LS0KLS0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcgotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDEgfQotLSovCi0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDJdLCBtNjQsIGNyYXRlOjpjb2RlZ2VuOjptNjR4MiB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDRdLCBtNjQsIGNyYXRlOjpjb2RlZ2VuOjptNjR4NCB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDhdLCBtNjQsIGNyYXRlOjpjb2RlZ2VuOjptNjR4OCB9Ci0tCi0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpc2l6ZSwgY3JhdGU6OmNvZGVnZW46OmlzaXpleDIgfQot LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaXNpemUsIGNyYXRlOjpjb2RlZ2VuOjppc2l6ZXg0 IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGlzaXplLCBjcmF0ZTo6Y29kZWdlbjo6aXNp emV4OCB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1c2l6ZSwgY3JhdGU6OmNvZGVn ZW46OnVzaXpleDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdXNpemUsIGNyYXRlOjpj b2RlZ2VuOjp1c2l6ZXg0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIHVzaXplLCBjcmF0 ZTo6Y29kZWdlbjo6dXNpemV4OCB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtc2l6 ZSwgY3JhdGU6OmNvZGVnZW46Om1zaXpleDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwg bXNpemUsIGNyYXRlOjpjb2RlZ2VuOjptc2l6ZXg0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsg OF0sIG1zaXplLCBjcmF0ZTo6Y29kZWdlbjo6bXNpemV4OCB9Ci0tCi0taW1wbDxUPiBTZWFsPFt1 MzI7IDJdPiBmb3IgKmNvbnN0IFQge30KLS1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgMl0+IGZvciAq Y29uc3QgVCB7Ci0tICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46OmNwdHJ4MjxUPjsK LS19Ci0taW1wbDxUPiBTZWFsPFt1MzI7IDRdPiBmb3IgKmNvbnN0IFQge30KLS1pbXBsPFQ+IFNo dWZmbGU8W3UzMjsgNF0+IGZvciAqY29uc3QgVCB7Ci0tICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6 OmNvZGVnZW46OmNwdHJ4NDxUPjsKLS19Ci0taW1wbDxUPiBTZWFsPFt1MzI7IDhdPiBmb3IgKmNv bnN0IFQge30KLS1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgOF0+IGZvciAqY29uc3QgVCB7Ci0tICAg IHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46OmNwdHJ4ODxUPjsKLS19Ci0tCi0taW1wbDxU PiBTZWFsPFt1MzI7IDJdPiBmb3IgKm11dCBUIHt9Ci0taW1wbDxUPiBTaHVmZmxlPFt1MzI7IDJd PiBmb3IgKm11dCBUIHsKLS0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6bXB0cngy PFQ+OwotLX0KLS1pbXBsPFQ+IFNlYWw8W3UzMjsgNF0+IGZvciAqbXV0IFQge30KLS1pbXBsPFQ+ IFNodWZmbGU8W3UzMjsgNF0+IGZvciAqbXV0IFQgewotLSAgICB0eXBlIE91dHB1dCA9IGNyYXRl Ojpjb2RlZ2VuOjptcHRyeDQ8VD47Ci0tfQotLWltcGw8VD4gU2VhbDxbdTMyOyA4XT4gZm9yICpt dXQgVCB7fQotLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyA4XT4gZm9yICptdXQgVCB7Ci0tICAgIHR5 cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46Om1wdHJ4ODxUPjsKLS19Ci0tCi0taW1wbF9zaHVm ZmxlISB7IFt1MzI7IDFdLCBpMTI4LCBjcmF0ZTo6Y29kZWdlbjo6aTEyOHgxIH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMl0sIGkxMjgsIGNyYXRlOjpjb2RlZ2VuOjppMTI4eDIgfQotLWltcGxf c2h1ZmZsZSEgeyBbdTMyOyA0XSwgaTEyOCwgY3JhdGU6OmNvZGVnZW46OmkxMjh4NCB9Ci0tCi0t aW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCB1MTI4LCBjcmF0ZTo6Y29kZWdlbjo6dTEyOHgxIH0K LS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHUxMjgsIGNyYXRlOjpjb2RlZ2VuOjp1MTI4eDIg fQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTEyOCwgY3JhdGU6OmNvZGVnZW46OnUxMjh4 NCB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCBtMTI4LCBjcmF0ZTo6Y29kZWdlbjo6 bTEyOHgxIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG0xMjgsIGNyYXRlOjpjb2RlZ2Vu OjptMTI4eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTEyOCwgY3JhdGU6OmNvZGVn ZW46Om0xMjh4NCB9Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9zaHVmZmxlMV9keW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL3NodWZmbGUxX2R5bi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxlMV9keW4ucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vc2h1ZmZsZTFfZHluLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSw0MDggKzAsMCBAQAotLS8vISBTaHVmZmxlIHZlY3RvciBsYW5lcyB3aXRoIHJ1bi10 aW1lIGluZGljZXMuCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLXB1YiB0cmFpdCBTaHVmZmxlMUR5 biB7Ci0tICAgIHR5cGUgSW5kaWNlczsKLS0gICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIF86IFNl bGY6OkluZGljZXMpIC0+IFNlbGY7Ci0tfQotLQotLS8vIEZhbGxiYWNrIGltcGxlbWVudGF0aW9u Ci0tbWFjcm9fcnVsZXMhIGltcGxfZmFsbGJhY2sgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0t ICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgSW5k aWNlcyA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2h1 ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICBsZXQgbXV0IHJlc3VsdCA9IFNlbGY6OnNwbGF0KDApOwotLSAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgcmVz dWx0ID0gcmVzdWx0LnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGluZGljZXMuZXh0cmFjdChpKSBh cyB1c2l6ZSkpOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHJlc3VsdAot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMh IGltcGxfc2h1ZmZsZTFfZHluIHsKLS0gICAgKHU4eDgpID0+IHsKLS0gICAgICAgIGNmZ19pZiEg ewotLSAgICAgICAgICAgIGlmICNbY2ZnKGFsbCgKLS0gICAgICAgICAgICAgICAgYW55KAotLSAg ICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gImFhcmNoNjQiLCB0YXJnZXRfZmVh dHVyZSA9ICJuZW9uIiksCi0tICAgICAgICAgICAgICAgICAgICBhbGwodGFyZ2V0X2FyY2ggPSAi ZG9lc25vdGV4aXN0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjciLAotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iKQotLSAgICAgICAgICAgICAgICApLAotLSAg ICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24pCi0t ICAgICAgICAgICAgKQotLSAgICAgICAgICAgICldIHsKLS0gICAgICAgICAgICAgICAgaW1wbCBT aHVmZmxlMUR5biBmb3IgdTh4OCB7Ci0tICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMg PSBTZWxmOwotLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAg ICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2Vs ZiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2 NCIpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YWFyY2g2NDo6 dnRibDFfdTg7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAi ZG9lc25vdGV4aXN0IildCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNo Ojphcm06OnZ0YmwxX3U4OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg c2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGlsZWQgd2l0aAotLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIG5lb24gZW5hYmxlZCBhdCBjb21waWxlLXRpbWUgYW5kIGNhbiB0aGVyZWZv cmUgb25seQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1biBvbiBDUFVzIHRoYXQgaGF2 ZSBpdCBlbmFibGVkLgotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFuc211dGUoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2dGJsMV91OChtZW06OnRyYW5zbXV0ZShzZWxmLjApLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoaW5kaWNlcy4wKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX2ZhbGxi YWNrISh1OHg4KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICh1 OHgxNikgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcoYWxs KGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAic3NzZTMiKSldIHsKLS0gICAg ICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4MTYgewotLSAgICAgICAgICAgICAg ICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKLS0gICAgICAgICAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNl bGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6eDg2OjpfbW1fc2h1ZmZsZV9lcGk4OwotLSAgICAgICAgICAgICAgICAgICAgICAgICNb Y2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fc2h1ZmZsZV9lcGk4OwotLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGlsZWQg d2l0aAotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNzc2UzIGVuYWJsZWQgYXQgY29tcGls ZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAv LyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KLS0gICAgICAgICAgICAgICAgICAg ICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1kKG1lbTo6dHJh bnNtdXRlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NodWZmbGVfZXBp OChtZW06OnRyYW5zbXV0ZShzZWxmLjApLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzKSkKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFhcmNoNjQiLCB0YXJnZXRfZmVhdHVy ZSA9ICJuZW9uIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFueShmZWF0dXJl ID0gImNvcmVfYXJjaCIsIGxpYmNvcmVfbmVvbikpKV0gewotLSAgICAgICAgICAgICAgICBpbXBs IFNodWZmbGUxRHluIGZvciB1OHgxNiB7Ci0tICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGlj ZXMgPSBTZWxmOwotLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg ICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphYXJjaDY0 Ojp2cXRibDFxX3U4OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc2Fm ZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGlsZWQgd2l0aAotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIG5lb24gZW5hYmxlZCBhdCBjb21waWxlLXRpbWUgYW5kIGNhbiB0aGVyZWZvcmUg b25seQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1biBvbiBDUFVzIHRoYXQgaGF2ZSBp dCBlbmFibGVkLgotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFuc211dGUoCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2cXRibDFxX3U4KG1lbTo6dHJhbnNtdXRlKHNlbGYuMCksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNt dXRlKGluZGljZXMuMCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJk b2Vzbm90ZXhpc3QiLCB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVfbmVvbikp KV0gewotLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1OHgxNiB7Ci0tICAg ICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOwotLSAgICAgICAgICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwg aW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjphcmNoOjphcm06OnZ0YmwyX3U4OwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGlsZWQgd2l0 aAotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lb24gZW5hYmxlZCBhdCBjb21waWxlLXRp bWUgYW5kIGNhbiB0aGVyZWZvcmUgb25seQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1 biBvbiBDUFVzIHRoYXQgaGF2ZSBpdCBlbmFibGVkLgotLSAgICAgICAgICAgICAgICAgICAgICAg IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgajogdTh4MTYsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzOiAodTh4OCwgdTh4OCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChpMCwgaTEpID0gVSB7 IGo6IHkgfS5zOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcjAgPSB2dGJs Ml91OCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbTo6dHJhbnNtdXRlKHgp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRl KGkwKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgcjEgPSB2dGJsMl91OCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1lbTo6dHJhbnNtdXRlKHgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGkxKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IFUgeyBzOiAocjAs IHIxKSB9Lmo7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFu c211dGUocikpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAg ICAgICAgICAgaW1wbF9mYWxsYmFjayEodTh4MTYpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS0gICAgKHUxNng4KSA9PiB7Ci0tICAgICAgICBpbXBsIFNodWZmbGUxRHlu IGZvciB1MTZ4OCB7Ci0tICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNl czogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCBpbmRpY2Vz OiB1OHg4ID0gKGluZGljZXMgKiAyKS5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgIGxldCBpbmRp Y2VzOiB1OHgxNiA9IHNodWZmbGUhKGluZGljZXMsIFswLCAwLCAxLCAxLCAyLCAyLCAzLCAzLCA0 LCA0LCA1LCA1LCA2LCA2LCA3LCA3XSk7Ci0tICAgICAgICAgICAgICAgIGxldCB2ID0gdTh4MTY6 Om5ldygwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxKTsKLS0g ICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzICsgdjsKLS0gICAgICAgICAgICAg ICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGxldCBzOiB1OHgxNiA9IGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRy YW5zbXV0ZShzLnNodWZmbGUxX2R5bihpbmRpY2VzKSkKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKHUzMng0KSA9PiB7Ci0tICAg ICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyhhbGwoYW55KHRhcmdldF9hcmNo ID0gIng4NiIsIHRhcmdldF9hcmNoID0gIng4Nl82NCIpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICB0YXJnZXRfZmVhdHVyZSA9ICJhdngiKSldIHsKLS0gICAgICAgICAgICAgICAgaW1wbCBT aHVmZmxlMUR5biBmb3IgdTMyeDQgewotLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2Vz ID0gU2VsZjsKLS0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIp XQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2Ojp7X21tX3Bl cm11dGV2YXJfcHN9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNo ID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6 eDg2XzY0Ojp7X21tX3Blcm11dGV2YXJfcHN9OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5z bXV0ZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9wZXJtdXRldmFyX3Bz KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5z bXV0ZShzZWxmLjApLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRl OjptZW06OnRyYW5zbXV0ZShpbmRpY2VzLjApCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZv ciB1MzJ4NCB7Ci0tICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOwotLSAg ICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICAgICBmbiBzaHVm ZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4eDQgPSAoaW5kaWNlcyAqIDQpLmNhc3Qo KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4MTYgPSBzaHVmZmxl ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlcywKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgWzAsIDAsIDAsIDAsIDEsIDEsIDEsIDEsIDIsIDIsIDIsIDIsIDMsIDMs IDMsIDNdCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdiA9IHU4eDE2OjpuZXcoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs IDEsIDIsIDMsIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMKLS0gICAgICAgICAg ICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzID0g aW5kaWNlcyArIHY7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHM6IHU4eDE2ID1jcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHMuc2h1ZmZsZTFfZHluKGluZGljZXMpKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKHU2NHgyKSA9PiB7Ci0tICAgICAgICBjZmdfaWYh IHsKLS0gICAgICAgICAgICBpZiAjW2NmZyhhbGwoYW55KHRhcmdldF9hcmNoID0gIng4NiIsIHRh cmdldF9hcmNoID0gIng4Nl82NCIpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRf ZmVhdHVyZSA9ICJhdngiKSldIHsKLS0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBm b3IgdTY0eDIgewotLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKLS0g ICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1 ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2Ojp7X21tX3Blcm11dGV2YXJfcGR9 OwotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIp XQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0Ojp7X21t X3Blcm11dGV2YXJfcGR9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIF9tbV9wZXJtdXRl dmFyX3BkIHVzZXMgdGhlIF9zZWNvbmRfIGJpdCBvZiBlYWNoCi0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gZWxlbWVudCB0byBwZXJmb3JtIHRoZSBzZWxlY3Rpb24sIHRoYXQgaXM6IDBiMDAg PT4gMCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyAwYjEwID0+IDE6Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzIDw8IDE7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3Bl cm11dGV2YXJfcGQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlKHNlbGYpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzKQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxl MUR5biBmb3IgdTY0eDIgewotLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2Vs ZjsKLS0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzOiB1OHgyID0gKGluZGljZXMgKiA4 KS5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4eDE2ID0g c2h1ZmZsZSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXMsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAxLCAxLCAx LCAxLCAxLCAxLCAxXQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSB1OHgxNjo6bmV3KAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5k aWNlcyA9IGluZGljZXMgKyB2OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiB1OHgxNiA9Y3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRy YW5zbXV0ZShzLnNodWZmbGUxX2R5bihpbmRpY2VzKSkKLS0gICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICh1MTI4eDEpID0+IHsKLS0gICAgICAg IGltcGwgU2h1ZmZsZTFEeW4gZm9yIHUxMjh4MSB7Ci0tICAgICAgICAgICAgdHlwZSBJbmRpY2Vz ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaHVmZmxl MV9keW4oc2VsZiwgX2luZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAg ICAgICAgICBzZWxmCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAo JGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2ZhbGxiYWNrISgkaWQpOwotLSAgICB9Owot LX0KLS0KLS1pbXBsX3NodWZmbGUxX2R5biEodTh4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHU4 eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1OHg4KTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTh4 MTYpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1OHgzMik7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHU4 eDY0KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5biEodTE2eDIpOwotLWltcGxfc2h1ZmZsZTFfZHlu ISh1MTZ4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxNng4KTsKLS1pbXBsX3NodWZmbGUxX2R5 biEodTE2eDE2KTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTE2eDMyKTsKLS0KLS1pbXBsX3NodWZm bGUxX2R5biEodTMyeDIpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1MzJ4NCk7Ci0taW1wbF9zaHVm ZmxlMV9keW4hKHUzMng4KTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTMyeDE2KTsKLS0KLS1pbXBs X3NodWZmbGUxX2R5biEodTY0eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1NjR4NCk7Ci0taW1w bF9zaHVmZmxlMV9keW4hKHU2NHg4KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5biEodXNpemV4Mik7 Ci0taW1wbF9zaHVmZmxlMV9keW4hKHVzaXpleDQpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1c2l6 ZXg4KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5biEodTEyOHgxKTsKLS1pbXBsX3NodWZmbGUxX2R5 biEodTEyOHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTEyOHg0KTsKLS0KLS0vLyBJbXBsZW1l bnRhdGlvbiBmb3Igbm9uLXVuc2lnbmVkIHZlY3RvciB0eXBlcwotLW1hY3JvX3J1bGVzISBpbXBs X3NodWZmbGUxX2R5bl9ub25fdSB7Ci0tICAgICgkaWQ6aWRlbnQsICR1aWQ6aWRlbnQpID0+IHsK LS0gICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBJ bmRpY2VzID0gJHVpZDsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBz aHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdTogJHVpZCA9 IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgIGNyYXRl OjptZW06OnRyYW5zbXV0ZSh1LnNodWZmbGUxX2R5bihpbmRpY2VzKSkKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0taW1wbF9z aHVmZmxlMV9keW5fbm9uX3UhKGk4eDIsIHU4eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91 IShpOHg0LCB1OHg0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4OCwgdTh4OCk7Ci0t aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDE2LCB1OHgxNik7Ci0taW1wbF9zaHVmZmxlMV9k eW5fbm9uX3UhKGk4eDMyLCB1OHgzMik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDY0 LCB1OHg2NCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxNngyLCB1MTZ4Mik7Ci0t aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxNng0LCB1MTZ4NCk7Ci0taW1wbF9zaHVmZmxlMV9k eW5fbm9uX3UhKGkxNng4LCB1MTZ4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxNngx NiwgdTE2eDE2KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTE2eDMyLCB1MTZ4MzIpOwot LQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMzJ4MiwgdTMyeDIpOwotLWltcGxfc2h1ZmZs ZTFfZHluX25vbl91IShpMzJ4NCwgdTMyeDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShp MzJ4OCwgdTMyeDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMzJ4MTYsIHUzMngxNik7 Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk2NHgyLCB1NjR4Mik7Ci0taW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKGk2NHg0LCB1NjR4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3Uh KGk2NHg4LCB1NjR4OCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGlzaXpleDIsIHVz aXpleDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpc2l6ZXg0LCB1c2l6ZXg0KTsKLS1p bXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaXNpemV4OCwgdXNpemV4OCk7Ci0tCi0taW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKGkxMjh4MSwgdTEyOHgxKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25f dSEoaTEyOHgyLCB1MTI4eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTI4eDQsIHUx Mjh4NCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDIsIHU4eDIpOwotLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShtOHg0LCB1OHg0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25f dSEobTh4OCwgdTh4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDE2LCB1OHgxNik7 Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDMyLCB1OHgzMik7Ci0taW1wbF9zaHVmZmxl MV9keW5fbm9uX3UhKG04eDY0LCB1OHg2NCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3Uh KG0xNngyLCB1MTZ4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNng0LCB1MTZ4NCk7 Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNng4LCB1MTZ4OCk7Ci0taW1wbF9zaHVmZmxl MV9keW5fbm9uX3UhKG0xNngxNiwgdTE2eDE2KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEo bTE2eDMyLCB1MTZ4MzIpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMzJ4MiwgdTMy eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMzJ4NCwgdTMyeDQpOwotLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShtMzJ4OCwgdTMyeDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91 IShtMzJ4MTYsIHUzMngxNik7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG02NHgyLCB1 NjR4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG02NHg0LCB1NjR4NCk7Ci0taW1wbF9z aHVmZmxlMV9keW5fbm9uX3UhKG02NHg4LCB1NjR4OCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5f bm9uX3UhKG1zaXpleDIsIHVzaXpleDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtc2l6 ZXg0LCB1c2l6ZXg0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobXNpemV4OCwgdXNpemV4 OCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xMjh4MSwgdTEyOHgxKTsKLS1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEobTEyOHgyLCB1MTI4eDIpOwotLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShtMTI4eDQsIHUxMjh4NCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGYz MngyLCB1MzJ4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGYzMng0LCB1MzJ4NCk7Ci0t aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGYzMng4LCB1MzJ4OCk7Ci0taW1wbF9zaHVmZmxlMV9k eW5fbm9uX3UhKGYzMngxNiwgdTMyeDE2KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEo ZjY0eDIsIHU2NHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjY0eDQsIHU2NHg0KTsK LS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjY0eDgsIHU2NHg4KTsKLS0KLS0vLyBJbXBsZW1l bnRhdGlvbiBmb3Igbm9uLXVuc2lnbmVkIHZlY3RvciB0eXBlcwotLW1hY3JvX3J1bGVzISBpbXBs X3NodWZmbGUxX2R5bl9wdHIgewotLSAgICAoJGlkOmlkZW50LCAkdWlkOmlkZW50KSA9PiB7Ci0t ICAgICAgICBpbXBsPFQ+IFNodWZmbGUxRHluIGZvciAkaWQ8VD4gewotLSAgICAgICAgICAgIHR5 cGUgSW5kaWNlcyA9ICR1aWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgbGV0IHU6ICR1 aWQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICBj cmF0ZTo6bWVtOjp0cmFuc211dGUodS5zaHVmZmxlMV9keW4oaW5kaWNlcykpCi0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLWlt cGxfc2h1ZmZsZTFfZHluX3B0ciEoY3B0cngyLCB1c2l6ZXgyKTsKLS1pbXBsX3NodWZmbGUxX2R5 bl9wdHIhKGNwdHJ4NCwgdXNpemV4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fcHRyIShjcHRyeDgs IHVzaXpleDgpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEobXB0cngyLCB1c2l6ZXgyKTsK LS1pbXBsX3NodWZmbGUxX2R5bl9wdHIhKG1wdHJ4NCwgdXNpemV4NCk7Ci0taW1wbF9zaHVmZmxl MV9keW5fcHRyIShtcHRyeDgsIHVzaXpleDgpOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zd2FwX2J5dGVzLnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3N3YXBfYnl0ZXMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDE0OSArMCwwIEBACi0tLy8hIEhvcml6b250YWwgc3dhcCBieXRlcyBy ZWR1Y3Rpb25zLgotLQotLS8vIEZJWE1FOiBpbnZlc3RpZ2F0ZSB1c2luZyBgbGx2bS5ic3dhcGAK LS0vLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzE5Ci0tCi0tdXNlIGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgU3dhcEJ5dGVz IHsKLS0gICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmOwotLX0KLS0KLS1tYWNyb19ydWxl cyEgaW1wbF9zd2FwX2J5dGVzIHsKLS0gICAgKHYxNjogJCgkaWQ6aWRlbnQsKSspID0+IHsKLS0g ICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7Ci0tICAgICAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAgICAgc2h1ZmZsZSEoc2VsZiwgWzEsIDBdKQot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgKSsKLS0gICAgfTsK LS0gICAgKHYzMjogJCgkaWQ6aWRlbnQsKSspID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAg ICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7Ci0tICAgICAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQotLSAg ICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXM6IHU4 eDQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHJlc3VsdDogdTh4NCA9IHNodWZmbGUhKGJ5dGVzLCBbMywgMiwgMSwgMF0pOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShyZXN1bHQpCi0tICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0t ICAgICAgICApKwotLSAgICB9OwotLSAgICAodjY0OiAkKCRpZDppZGVudCwpKykgPT4gewotLSAg ICAgICAgJCgKLS0gICAgICAgICAgICBpbXBsIFN3YXBCeXRlcyBmb3IgJGlkIHsKLS0gICAgICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojp1c2Vs ZXNzX3RyYW5zbXV0ZSldCi0tICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBieXRlczogdTh4OCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1OHg4ID0gc2h1ZmZsZSEoCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzLCBbNywgNiwgNSwgNCwgMywgMiwgMSwgMF0K LS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGNy YXRlOjptZW06OnRyYW5zbXV0ZShyZXN1bHQpCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICApKwotLSAgICB9OwotLSAg ICAodjEyODogJCgkaWQ6aWRlbnQsKSspID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAg aW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7Ci0tICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQotLSAgICAg ICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXM6IHU4eDE2 ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCByZXN1bHQ6IHU4eDE2ID0gc2h1ZmZsZSEoYnl0ZXMsIFsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgNywgNiwgNSwgNCwgMywgMiwgMSwgMAotLSAgICAgICAgICAgICAgICAg ICAgICAgIF0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0 ZShyZXN1bHQpCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICApKwotLSAgICB9OwotLSAgICAodjI1NjogJCgkaWQ6aWRl bnQsKSspID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9y ICRpZCB7Ci0tICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQotLSAgICAgICAgICAgICAgICBmbiBzd2Fw X2J5dGVzKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXM6IHU4eDMyID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDMy ID0gc2h1ZmZsZSEoYnl0ZXMsIFsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEsIDMw LCAyOSwgMjgsIDI3LCAyNiwgMjUsIDI0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAy MywgMjIsIDIxLCAyMCwgMTksIDE4LCAxNywgMTYsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksICA4LAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAgMAotLSAgICAgICAgICAgICAgICAg ICAgICAgIF0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0 ZShyZXN1bHQpCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICApKwotLSAgICB9OwotLSAgICAodjUxMjogJCgkaWQ6aWRl bnQsKSspID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9y ICRpZCB7Ci0tICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQotLSAgICAgICAgICAgICAgICBmbiBzd2Fw X2J5dGVzKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXM6IHU4eDY0ID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDY0 ID0gc2h1ZmZsZSEoYnl0ZXMsIFsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNjMsIDYy LCA2MSwgNjAsIDU5LCA1OCwgNTcsIDU2LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA1 NSwgNTQsIDUzLCA1MiwgNTEsIDUwLCA0OSwgNDgsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDQ3LCA0NiwgNDUsIDQ0LCA0MywgNDIsIDQxLCA0MCwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgMzksIDM4LCAzNywgMzYsIDM1LCAzNCwgMzMsIDMyLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAzMSwgMzAsIDI5LCAyOCwgMjcsIDI2LCAyNSwgMjQsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDIzLCAyMiwgMjEsIDIwLCAxOSwgMTgsIDE3LCAxNiwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgIDgsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsICAw Ci0tICAgICAgICAgICAgICAgICAgICAgICAgXSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHJlc3VsdCkKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICkrCi0tICAgIH07Ci0t fQotLQotLWltcGxfc3dhcF9ieXRlcyEodjE2OiB1OHgyLCBpOHgyLCk7Ci0taW1wbF9zd2FwX2J5 dGVzISh2MzI6IHU4eDQsIGk4eDQsIHUxNngyLCBpMTZ4MiwpOwotLS8vIEZJWE1FOiA2NC1iaXQg c2luZ2xlIGVsZW1lbnQgdmVjdG9yCi0taW1wbF9zd2FwX2J5dGVzISh2NjQ6IHU4eDgsIGk4eDgs IHUxNng0LCBpMTZ4NCwgdTMyeDIsIGkzMngyIC8qIHU2NHgxLCBpNjR4MSwgKi8sKTsKLS0KLS1p bXBsX3N3YXBfYnl0ZXMhKHYxMjg6IHU4eDE2LCBpOHgxNiwgdTE2eDgsIGkxNng4LCB1MzJ4NCwg aTMyeDQsIHU2NHgyLCBpNjR4MiwgdTEyOHgxLCBpMTI4eDEsKTsKLS1pbXBsX3N3YXBfYnl0ZXMh KHYyNTY6IHU4eDMyLCBpOHgzMiwgdTE2eDE2LCBpMTZ4MTYsIHUzMng4LCBpMzJ4OCwgdTY0eDQs IGk2NHg0LCB1MTI4eDIsIGkxMjh4MiwpOwotLQotLWltcGxfc3dhcF9ieXRlcyEodjUxMjogdTh4 NjQsIGk4eDY0LCB1MTZ4MzIsIGkxNngzMiwgdTMyeDE2LCBpMzJ4MTYsIHU2NHg4LCBpNjR4OCwg dTEyOHg0LCBpMTI4eDQsKTsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X3Bv aW50ZXJfd2lkdGggPSAiOCIpXSB7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYxNjogaXNp emV4MiwgdXNpemV4MiwpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MzI6IGlzaXpleDQs IHVzaXpleDQsKTsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjY0OiBpc2l6ZXg4LCB1c2l6 ZXg4LCk7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIxNiIp XSB7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYzMjogaXNpemV4MiwgdXNpemV4MiwpOwot LSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2NjQ6IGlzaXpleDQsIHVzaXpleDQsKTsKLS0gICAg ICAgIGltcGxfc3dhcF9ieXRlcyEodjEyODogaXNpemV4OCwgdXNpemV4OCwpOwotLSAgICB9IGVs c2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0gewotLSAgICAgICAgaW1w bF9zd2FwX2J5dGVzISh2NjQ6IGlzaXpleDIsIHVzaXpleDIsKTsKLS0gICAgICAgIGltcGxfc3dh cF9ieXRlcyEodjEyODogaXNpemV4NCwgdXNpemV4NCwpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5 dGVzISh2MjU2OiBpc2l6ZXg4LCB1c2l6ZXg4LCk7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJn ZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYx Mjg6IGlzaXpleDIsIHVzaXpleDIsKTsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjI1Njog aXNpemV4NCwgdXNpemV4NCwpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2NTEyOiBpc2l6 ZXg4LCB1c2l6ZXg4LCk7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBjb21waWxlX2Vycm9yISgi dW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgfQotLX0KLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxMjgucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxMjgucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjEyOC5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi92MTI4LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICsw MzAwCi1AQCAtMSw0NiArMCwwIEBACi0tLy8hIEludGVybmFsIDEyOC1iaXQgd2lkZSB2ZWN0b3Ig dHlwZXMKLS0KLS11c2UgY3JhdGU6Om1hc2tzOjoqOwotLQotLSNbcnVzdGZtdDo6c2tpcF0KLS1p bXBsX3NpbWRfYXJyYXkhKAotLSAgICBbaTg7IDE2XTogaTh4MTYgfAotLSAgICBpOCwgaTgsIGk4 LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBp OCwgaTgsIGk4LCBpOAotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJheSEo Ci0tICAgIFt1ODsgMTZdOiB1OHgxNiB8Ci0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwg dTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4Ci0t KTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW204OyAxNl06 IG04eDE2IHwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAg ICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgKLS0pOwotLQotLWltcGxfc2lt ZF9hcnJheSEoW2kxNjsgOF06IGkxNng4IHwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwg aTE2LCBpMTYpOwotLWltcGxfc2ltZF9hcnJheSEoW3UxNjsgOF06IHUxNng4IHwgdTE2LCB1MTYs IHUxNiwgdTE2LCB1MTYsIHUxNiwgdTE2LCB1MTYpOwotLWltcGxfc2ltZF9hcnJheSEoW20xNjsg OF06IG0xNng4IHwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYpOwotLQot LWltcGxfc2ltZF9hcnJheSEoW2kzMjsgNF06IGkzMng0IHwgaTMyLCBpMzIsIGkzMiwgaTMyKTsK LS1pbXBsX3NpbWRfYXJyYXkhKFt1MzI7IDRdOiB1MzJ4NCB8IHUzMiwgdTMyLCB1MzIsIHUzMik7 Ci0taW1wbF9zaW1kX2FycmF5IShbZjMyOyA0XTogZjMyeDQgfCBmMzIsIGYzMiwgZjMyLCBmMzIp OwotLWltcGxfc2ltZF9hcnJheSEoW20zMjsgNF06IG0zMng0IHwgaTMyLCBpMzIsIGkzMiwgaTMy KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpNjQ7IDJdOiBpNjR4MiB8IGk2NCwgaTY0KTsKLS1p bXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDJdOiB1NjR4MiB8IHU2NCwgdTY0KTsKLS1pbXBsX3NpbWRf YXJyYXkhKFtmNjQ7IDJdOiBmNjR4MiB8IGY2NCwgZjY0KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFtt NjQ7IDJdOiBtNjR4MiB8IGk2NCwgaTY0KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpMTI4OyAx XTogaTEyOHgxIHwgaTEyOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTEyODsgMV06IHUxMjh4MSB8 IHUxMjgpOwotLWltcGxfc2ltZF9hcnJheSEoW20xMjg7IDFdOiBtMTI4eDEgfCBpMTI4KTsKLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxNi5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjE2LnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxNi5ycwkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi92MTYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDcgKzAsMCBAQAotLS8vISBJbnRlcm5hbCAxNi1iaXQgd2lkZSB2ZWN0b3Ig dHlwZXMKLS0KLS11c2UgY3JhdGU6Om1hc2tzOjoqOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2k4 OyAyXTogaTh4MiB8IGk4LCBpOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTg7IDJdOiB1OHgyIHwg dTgsIHU4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttODsgMl06IG04eDIgfCBpOCwgaTgpOwotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjI1Ni5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjI1Ni5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MjU2LnJzCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDc4ICswLDAgQEAKLS0vLyEgSW50ZXJuYWwgMjU2LWJpdCB3aWRlIHZl Y3RvciB0eXBlcwotLQotLXVzZSBjcmF0ZTo6bWFza3M6Oio7Ci0tCi0tI1tydXN0Zm10Ojpza2lw XQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFtpODsgMzJdOiBpOHgzMiB8Ci0tICAgIGk4LCBp OCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0t ICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBp OCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOAotLSk7Ci0t I1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFt1ODsgMzJdOiB1OHgz MiB8Ci0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgs IHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwK LS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgs IHU4LCB1OAotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAg IFttODsgMzJdOiBtOHgzMiB8Ci0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4 LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBp OCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4 LAotLSAgICBpOCwgaTgsIGk4LCBpOAotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2lt ZF9hcnJheSEoCi0tICAgIFtpMTY7IDE2XTogaTE2eDE2IHwKLS0gICAgaTE2LCBpMTYsIGkxNiwg aTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwK LS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9z aW1kX2FycmF5ISgKLS0gICAgW3UxNjsgMTZdOiB1MTZ4MTYgfAotLSAgICB1MTYsIHUxNiwgdTE2 LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2 LAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBs X3NpbWRfYXJyYXkhKAotLSAgICBbbTE2OyAxNl06IG0xNngxNiB8Ci0tICAgIGkxNiwgaTE2LCBp MTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBp MTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNgotLSk7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShb aTMyOyA4XTogaTMyeDggfCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMik7 Ci0taW1wbF9zaW1kX2FycmF5IShbdTMyOyA4XTogdTMyeDggfCB1MzIsIHUzMiwgdTMyLCB1MzIs IHUzMiwgdTMyLCB1MzIsIHUzMik7Ci0taW1wbF9zaW1kX2FycmF5IShbZjMyOyA4XTogZjMyeDgg fCBmMzIsIGYzMiwgZjMyLCBmMzIsIGYzMiwgZjMyLCBmMzIsIGYzMik7Ci0taW1wbF9zaW1kX2Fy cmF5IShbbTMyOyA4XTogbTMyeDggfCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIs IGkzMik7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTY0OyA0XTogaTY0eDQgfCBpNjQsIGk2NCwg aTY0LCBpNjQpOwotLWltcGxfc2ltZF9hcnJheSEoW3U2NDsgNF06IHU2NHg0IHwgdTY0LCB1NjQs IHU2NCwgdTY0KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFtmNjQ7IDRdOiBmNjR4NCB8IGY2NCwgZjY0 LCBmNjQsIGY2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbbTY0OyA0XTogbTY0eDQgfCBpNjQsIGk2 NCwgaTY0LCBpNjQpOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2kxMjg7IDJdOiBpMTI4eDIgfCBp MTI4LCBpMTI4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1MTI4OyAyXTogdTEyOHgyIHwgdTEyOCwg dTEyOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbbTEyODsgMl06IG0xMjh4MiB8IGkxMjgsIGkxMjgp OwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v djMyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MzIucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjMyLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YzMi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMTEgKzAsMCBAQAotLS8vISBJbnRlcm5hbCAzMi1iaXQgd2lkZSB2 ZWN0b3IgdHlwZXMKLS0KLS11c2UgY3JhdGU6Om1hc2tzOjoqOwotLQotLWltcGxfc2ltZF9hcnJh eSEoW2k4OyA0XTogaTh4NCB8IGk4LCBpOCwgaTgsIGk4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1 ODsgNF06IHU4eDQgfCB1OCwgdTgsIHU4LCB1OCk7Ci0taW1wbF9zaW1kX2FycmF5IShbbTg7IDRd OiBtOHg0IHwgaTgsIGk4LCBpOCwgaTgpOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2kxNjsgMl06 IGkxNngyIHwgaTE2LCBpMTYpOwotLWltcGxfc2ltZF9hcnJheSEoW3UxNjsgMl06IHUxNngyIHwg dTE2LCB1MTYpOwotLWltcGxfc2ltZF9hcnJheSEoW20xNjsgMl06IG0xNngyIHwgaTE2LCBpMTYp OwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v djUxMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjUxMi5y cwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NTEyLnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y1MTIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE0NSArMCwwIEBACi0tLy8hIEludGVybmFsIDUxMi1iaXQg d2lkZSB2ZWN0b3IgdHlwZXMKLS0KLS11c2UgY3JhdGU6Om1hc2tzOjoqOwotLQotLSNbcnVzdGZt dDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbaTg7IDY0XTogaTh4NjQgfAotLSAg ICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgs IGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4 LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgs Ci0tCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgs IGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwK LS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgs IGk4LCBpOAotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAg IFt1ODsgNjRdOiB1OHg2NCB8Ci0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4 LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1 OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4 LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0KLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4 LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgs Ci0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4 LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0t aW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW204OyA2NF06IG04eDY0IHwKLS0gICAgaTgsIGk4LCBp OCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAg aTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBp OCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLQotLSAgICBp OCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4 LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBp OCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgKLS0p OwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbaTE2OyAzMl06 IGkxNngzMiB8Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwg aTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwK LS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAg IGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2Ci0tKTsKLS0jW3J1 c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW3UxNjsgMzJdOiB1MTZ4MzIg fAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKLS0g ICAgdTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCi0tICAgIHUx NiwgdTE2LCB1MTYsIHUxNiwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1MTYsIHUx NiwgdTE2LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1MTYsIHUxNgotLSk7Ci0tI1tydXN0Zm10Ojpz a2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFttMTY7IDMyXTogbTE2eDMyIHwKLS0gICAg aTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwg aTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwg aTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwg aTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYKLS0pOwotLQotLSNbcnVzdGZtdDo6c2tpcF0K LS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbaTMyOyAxNl06IGkzMngxNiB8Ci0tICAgIGkzMiwg aTMyLCBpMzIsIGkzMiwKLS0gICAgaTMyLCBpMzIsIGkzMiwgaTMyLAotLSAgICBpMzIsIGkzMiwg aTMyLCBpMzIsCi0tICAgIGkzMiwgaTMyLCBpMzIsIGkzMgotLSk7Ci0tI1tydXN0Zm10Ojpza2lw XQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFt1MzI7IDE2XTogdTMyeDE2IHwKLS0gICAgdTMy LCB1MzIsIHUzMiwgdTMyLAotLSAgICB1MzIsIHUzMiwgdTMyLCB1MzIsCi0tICAgIHUzMiwgdTMy LCB1MzIsIHUzMiwKLS0gICAgdTMyLCB1MzIsIHUzMiwgdTMyCi0tKTsKLS0jW3J1c3RmbXQ6OnNr aXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW2YzMjsgMTZdOiBmMzJ4MTYgfAotLSAgICBm MzIsIGYzMiwgZjMyLCBmMzIsCi0tICAgIGYzMiwgZjMyLCBmMzIsIGYzMiwKLS0gICAgZjMyLCBm MzIsIGYzMiwgZjMyLAotLSAgICBmMzIsIGYzMiwgZjMyLCBmMzIKLS0pOwotLSNbcnVzdGZtdDo6 c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbbTMyOyAxNl06IG0zMngxNiB8Ci0tICAg IGkzMiwgaTMyLCBpMzIsIGkzMiwKLS0gICAgaTMyLCBpMzIsIGkzMiwgaTMyLAotLSAgICBpMzIs IGkzMiwgaTMyLCBpMzIsCi0tICAgIGkzMiwgaTMyLCBpMzIsIGkzMgotLSk7Ci0tCi0taW1wbF9z aW1kX2FycmF5IShbaTY0OyA4XTogaTY0eDggfCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0 LCBpNjQsIGk2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTY0OyA4XTogdTY0eDggfCB1NjQsIHU2 NCwgdTY0LCB1NjQsIHU2NCwgdTY0LCB1NjQsIHU2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbZjY0 OyA4XTogZjY0eDggfCBmNjQsIGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQsIGY2NCk7Ci0t aW1wbF9zaW1kX2FycmF5IShbbTY0OyA4XTogbTY0eDggfCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2 NCwgaTY0LCBpNjQsIGk2NCk7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTEyODsgNF06IGkxMjh4 NCB8IGkxMjgsIGkxMjgsIGkxMjgsIGkxMjgpOwotLWltcGxfc2ltZF9hcnJheSEoW3UxMjg7IDRd OiB1MTI4eDQgfCB1MTI4LCB1MTI4LCB1MTI4LCB1MTI4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFtt MTI4OyA0XTogbTEyOHg0IHwgaTEyOCwgaTEyOCwgaTEyOCwgaTEyOCk7Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NjQucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y2NC5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NjQucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vdjY0LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwyMSArMCwwIEBACi0tLy8hIEludGVybmFsIDY0LWJpdCB3aWRlIHZlY3RvciB0eXBlcwotLQot LXVzZSBjcmF0ZTo6bWFza3M6Oio7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTg7IDhdOiBpOHg4 IHwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1 ODsgOF06IHU4eDggfCB1OCwgdTgsIHU4LCB1OCwgdTgsIHU4LCB1OCwgdTgpOwotLWltcGxfc2lt ZF9hcnJheSEoW204OyA4XTogbTh4OCB8IGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCk7 Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTE2OyA0XTogaTE2eDQgfCBpMTYsIGkxNiwgaTE2LCBp MTYpOwotLWltcGxfc2ltZF9hcnJheSEoW3UxNjsgNF06IHUxNng0IHwgdTE2LCB1MTYsIHUxNiwg dTE2KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttMTY7IDRdOiBtMTZ4NCB8IGkxNiwgaTE2LCBpMTYs IGkxNik7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTMyOyAyXTogaTMyeDIgfCBpMzIsIGkzMik7 Ci0taW1wbF9zaW1kX2FycmF5IShbdTMyOyAyXTogdTMyeDIgfCB1MzIsIHUzMik7Ci0taW1wbF9z aW1kX2FycmF5IShbZjMyOyAyXTogZjMyeDIgfCBmMzIsIGYzMik7Ci0taW1wbF9zaW1kX2FycmF5 IShbbTMyOyAyXTogbTMyeDIgfCBpMzIsIGkzMik7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTY0 OyAxXTogaTY0eDEgfCBpNjQpOwotLWltcGxfc2ltZF9hcnJheSEoW3U2NDsgMV06IHU2NHgxIHwg dTY0KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFtmNjQ7IDFdOiBmNjR4MSB8IGY2NCk7Ci0taW1wbF9z aW1kX2FycmF5IShbbTY0OyAxXTogbTY0eDEgfCBpNjQpOwotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlB0ci5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlB0ci5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92UHRyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3ZQdHIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM1 ICswLDAgQEAKLS0vLyEgUG9pbnRlciB2ZWN0b3IgdHlwZXMKLS0KLS1tYWNyb19ydWxlcyEgaW1w bF9zaW1kX3B0ciB7Ci0tICAgIChbJHB0cl90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICR0dXBs ZV9pZDppZGVudCB8ICR0eTppZGVudAotLSAgICAgfCAkKCR0eXM6dHkpLCopID0+IHsKLS0gICAg ICAgICNbZGVyaXZlKENvcHksIENsb25lKV0KLS0gICAgICAgICNbcmVwcihzaW1kKV0KLS0gICAg ICAgIHB1YiBzdHJ1Y3QgJHR1cGxlX2lkPCR0eT4oJChwdWIoY3JhdGUpICR0eXMpLCopOwotLSAg ICAgICAgLy9eXl5eXl5eIGxlYWtlZCB0aHJvdWdoIFNpbWRBcnJheQotLQotLSAgICAgICAgaW1w bDwkdHk+IGNyYXRlOjpzZWFsZWQ6OlNlYWwgZm9yIFskcHRyX3R5OyAkZWxlbV9jb3VudF0ge30K LS0gICAgICAgIGltcGw8JHR5PiBjcmF0ZTo6c2VhbGVkOjpTaW1kQXJyYXkgZm9yIFskcHRyX3R5 OyAkZWxlbV9jb3VudF0gewotLSAgICAgICAgICAgIHR5cGUgVHVwbGUgPSAkdHVwbGVfaWQ8JHB0 cl90eT47Ci0tICAgICAgICAgICAgdHlwZSBUID0gJHB0cl90eTsKLS0gICAgICAgICAgICBjb25z dCBOOiB1c2l6ZSA9ICRlbGVtX2NvdW50OwotLSAgICAgICAgICAgIHR5cGUgTlQgPSBbdTMyOyAk ZWxlbV9jb3VudF07Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPCR0eT4gY3JhdGU6OnNl YWxlZDo6U2VhbCBmb3IgJHR1cGxlX2lkPCRwdHJfdHk+IHt9Ci0tICAgICAgICBpbXBsPCR0eT4g Y3JhdGU6OnNlYWxlZDo6U2ltZCBmb3IgJHR1cGxlX2lkPCRwdHJfdHk+IHsKLS0gICAgICAgICAg ICB0eXBlIEVsZW1lbnQgPSAkcHRyX3R5OwotLSAgICAgICAgICAgIGNvbnN0IExBTkVTOiB1c2l6 ZSA9ICRlbGVtX2NvdW50OwotLSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBlID0gW3UzMjsgJGVs ZW1fY291bnRdOwotLSAgICAgICAgfQotLQotLSAgICB9Ci0tfQotLQotLWltcGxfc2ltZF9wdHIh KFsqY29uc3QgVDsgMl06IGNwdHJ4MiB8IFQgfCBULCBUKTsKLS1pbXBsX3NpbWRfcHRyIShbKmNv bnN0IFQ7IDRdOiBjcHRyeDQgfCBUIHwgVCwgVCwgVCwgVCk7Ci0taW1wbF9zaW1kX3B0ciEoWypj b25zdCBUOyA4XTogY3B0cng4IHwgVCB8IFQsIFQsIFQsIFQsIFQsIFQsIFQsIFQpOwotLQotLWlt cGxfc2ltZF9wdHIhKFsqbXV0IFQ7IDJdOiBtcHRyeDIgfCBUIHwgVCwgVCk7Ci0taW1wbF9zaW1k X3B0ciEoWyptdXQgVDsgNF06IG1wdHJ4NCB8IFQgfCBULCBULCBULCBUKTsKLS1pbXBsX3NpbWRf cHRyIShbKm11dCBUOyA4XTogbXB0cng4IHwgVCB8IFQsIFQsIFQsIFQsIFQsIFQsIFQsIFQpOwot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlNp emUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZTaXplLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZTaXplLnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZTaXplLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNiArMCwwIEBACi0tLy8hIFZlY3RvciB0eXBlcyB3aXRo IHBvaW50ZXItc2l6ZWQgZWxlbWVudHMKLS0KLS11c2UgY3JhdGU6OmNvZGVnZW46OnBvaW50ZXJf c2l6ZWRfaW50Ojp7aXNpemVfLCB1c2l6ZV99OwotLXVzZSBjcmF0ZTo6bWFza3M6Oio7Ci0tCi0t aW1wbF9zaW1kX2FycmF5IShbaXNpemU7IDJdOiBpc2l6ZXgyIHwgaXNpemVfLCBpc2l6ZV8pOwot LWltcGxfc2ltZF9hcnJheSEoW3VzaXplOyAyXTogdXNpemV4MiB8IHVzaXplXywgdXNpemVfKTsK LS1pbXBsX3NpbWRfYXJyYXkhKFttc2l6ZTsgMl06IG1zaXpleDIgfCBpc2l6ZV8sIGlzaXplXyk7 Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaXNpemU7IDRdOiBpc2l6ZXg0IHwgaXNpemVfLCBpc2l6 ZV8sIGlzaXplXywgaXNpemVfKTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1c2l6ZTsgNF06IHVzaXpl eDQgfCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8pOwotLWltcGxfc2ltZF9hcnJheSEo W21zaXplOyA0XTogbXNpemV4NCB8IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXyk7Ci0t Ci0taW1wbF9zaW1kX2FycmF5IShbaXNpemU7IDhdOiBpc2l6ZXg4IHwgaXNpemVfLCBpc2l6ZV8s IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8pOwotLWltcGxf c2ltZF9hcnJheSEoW3VzaXplOyA4XTogdXNpemV4OCB8IHVzaXplXywgdXNpemVfLCB1c2l6ZV8s IHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXywgdXNpemVfKTsKLS1pbXBsX3NpbWRfYXJy YXkhKFttc2l6ZTsgOF06IG1zaXpleDggfCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8s IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXyk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4ucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4ucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDYyICswLDAgQEAKLS0vLyEgQ29kZS1n ZW5lcmF0aW9uIHV0aWxpdGllcwotLQotLXB1YihjcmF0ZSkgbW9kIGJpdF9tYW5pcDsKLS1wdWIo Y3JhdGUpIG1vZCBsbHZtOwotLXB1YihjcmF0ZSkgbW9kIG1hdGg7Ci0tcHViKGNyYXRlKSBtb2Qg cmVkdWN0aW9uczsKLS1wdWIoY3JhdGUpIG1vZCBzaHVmZmxlOwotLXB1YihjcmF0ZSkgbW9kIHNo dWZmbGUxX2R5bjsKLS1wdWIoY3JhdGUpIG1vZCBzd2FwX2J5dGVzOwotLQotLW1hY3JvX3J1bGVz ISBpbXBsX3NpbWRfYXJyYXkgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXToKLS0gICAgICR0dXBsZV9pZDppZGVudCB8ICQoJGVsZW1fdHlzOmlkZW50KSwqKSA9PiB7 Ci0tICAgICAgICAjW2Rlcml2ZShDb3B5LCBDbG9uZSldCi0tICAgICAgICAjW3JlcHIoc2ltZCld Ci0tICAgICAgICBwdWIgc3RydWN0ICR0dXBsZV9pZCgkKHB1YihjcmF0ZSkgJGVsZW1fdHlzKSwq KTsKLS0gICAgICAgIC8vXl5eXl5eXiBsZWFrZWQgdGhyb3VnaCBTaW1kQXJyYXkKLS0KLS0gICAg ICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2VhbCBmb3IgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0g e30KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2ltZEFycmF5IGZvciBbJGVsZW1f dHk7ICRlbGVtX2NvdW50XSB7Ci0tICAgICAgICAgICAgdHlwZSBUdXBsZSA9ICR0dXBsZV9pZDsK LS0gICAgICAgICAgICB0eXBlIFQgPSAkZWxlbV90eTsKLS0gICAgICAgICAgICBjb25zdCBOOiB1 c2l6ZSA9ICRlbGVtX2NvdW50OwotLSAgICAgICAgICAgIHR5cGUgTlQgPSBbdTMyOyAkZWxlbV9j b3VudF07Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6OlNlYWwg Zm9yICR0dXBsZV9pZCB7fQotLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpTaW1kIGZvciAk dHVwbGVfaWQgewotLSAgICAgICAgICAgIHR5cGUgRWxlbWVudCA9ICRlbGVtX3R5OwotLSAgICAg ICAgICAgIGNvbnN0IExBTkVTOiB1c2l6ZSA9ICRlbGVtX2NvdW50OwotLSAgICAgICAgICAgIHR5 cGUgTGFuZXNUeXBlID0gW3UzMjsgJGVsZW1fY291bnRdOwotLSAgICAgICAgfQotLQotLSAgICB9 Ci0tfQotLQotLXB1YihjcmF0ZSkgbW9kIHBvaW50ZXJfc2l6ZWRfaW50OwotLQotLXB1YihjcmF0 ZSkgbW9kIHYxNjsKLS1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MTY6Oio7Ci0tCi0tcHViKGNyYXRl KSBtb2QgdjMyOwotLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnYzMjo6KjsKLS0KLS1wdWIoY3JhdGUp IG1vZCB2NjQ7Ci0tcHViKGNyYXRlKSB1c2Ugc2VsZjo6djY0OjoqOwotLQotLXB1YihjcmF0ZSkg bW9kIHYxMjg7Ci0tcHViKGNyYXRlKSB1c2Ugc2VsZjo6djEyODo6KjsKLS0KLS1wdWIoY3JhdGUp IG1vZCB2MjU2OwotLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnYyNTY6Oio7Ci0tCi0tcHViKGNyYXRl KSBtb2QgdjUxMjsKLS1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2NTEyOjoqOwotLQotLXB1YihjcmF0 ZSkgbW9kIHZTaXplOwotLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnZTaXplOjoqOwotLQotLXB1Yihj cmF0ZSkgbW9kIHZQdHI7Ci0tcHViKGNyYXRlKSB1c2Ugc2VsZjo6dlB0cjo6KjsKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9saWIucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9saWIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2xpYi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbGliLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNDggKzAsMCBAQAotLS8vISAjIFBvcnRh YmxlIHBhY2tlZCBTSU1EIHZlY3RvcnMKLS0vLyEKLS0vLyEgVGhpcyBjcmF0ZSBpcyBwcm9wb3Nl ZCBmb3Igc3RhYmlsaXphdGlvbiBhcyBgc3RkOjpwYWNrZWRfc2ltZGAgaW4gW1JGQzIzNjY6Ci0t Ly8hIGBzdGQ6OnNpbWRgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8y MzY2KSAuCi0tLy8hCi0tLy8hIFRoZSBleGFtcGxlcyBhdmFpbGFibGUgaW4gdGhlCi0tLy8hIFtg ZXhhbXBsZXMvYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzKQotLS8vISBzdWItZGlyZWN0b3J5IG9mIHRoZSBjcmF0 ZSBzaG93Y2FzZSBob3cgdG8gdXNlIHRoZSBsaWJyYXJ5IGluIHByYWN0aWNlLgotLS8vIQotLS8v ISAjIyBUYWJsZSBvZiBjb250ZW50cwotLS8vIQotLS8vISAtIFtJbnRyb2R1Y3Rpb25dKCNpbnRy b2R1Y3Rpb24pCi0tLy8hIC0gW1ZlY3RvciB0eXBlc10oI3ZlY3Rvci10eXBlcykKLS0vLyEgLSBb Q29uZGl0aW9uYWwgb3BlcmF0aW9uc10oI2NvbmRpdGlvbmFsLW9wZXJhdGlvbnMpCi0tLy8hIC0g W0NvbnZlcnNpb25zXSgjY29udmVyc2lvbnMpCi0tLy8hIC0gW0hhcmR3YXJlIEZlYXR1cmVzXSgj aGFyZHdhcmUtZmVhdHVyZXMpCi0tLy8hIC0gW1BlcmZvcm1hbmNlIGd1aWRlXShodHRwczovL3J1 c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLykKLS0vLyEK LS0vLyEgIyMgSW50cm9kdWN0aW9uCi0tLy8hCi0tLy8hIFRoaXMgY3JhdGUgZXhwb3J0cyBbYFNp bWQ8W1Q7IE5dPmBdW2BTaW1kYF06IGEgcGFja2VkIHZlY3RvciBvZiBgTmAKLS0vLyEgZWxlbWVu dHMgb2YgdHlwZSBgVGAgYXMgd2VsbCBhcyBtYW55IHR5cGUgYWxpYXNlcyBmb3IgdGhpcyB0eXBl OiBmb3IKLS0vLyEgZXhhbXBsZSwgW2BmMzJ4NGBdLCB3aGljaCBpcyBqdXN0IGFuIGFsaWFzIGZv ciBgU2ltZDxbZjMyOyA0XT5gLgotLS8vIQotLS8vISBUaGUgb3BlcmF0aW9ucyBvbiBwYWNrZWQg dmVjdG9ycyBhcmUsIGJ5IGRlZmF1bHQsICJ2ZXJ0aWNhbCIsIHRoYXQgaXMsIHRoZXkKLS0vLyEg YXJlIGFwcGxpZWQgdG8gZWFjaCB2ZWN0b3IgbGFuZSBpbiBpc29sYXRpb24gb2YgdGhlIG90aGVy czoKLS0vLyEKLS0vLyEgYGBgCi0tLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOwotLS8vISBsZXQg YSA9IGkzMng0OjpuZXcoMSwgMiwgMywgNCk7Ci0tLy8hIGxldCBiID0gaTMyeDQ6Om5ldyg1LCA2 LCA3LCA4KTsKLS0vLyEgYXNzZXJ0X2VxIShhICsgYiwgaTMyeDQ6Om5ldyg2LCA4LCAxMCwgMTIp KTsKLS0vLyEgYGBgCi0tLy8hCi0tLy8hIE1hbnkgImhvcml6b250YWwiIG9wZXJhdGlvbnMgYXJl IGFsc28gcHJvdmlkZWQ6Ci0tLy8hCi0tLy8hIGBgYAotLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6 KjsKLS0vLyEgIyBsZXQgYSA9IGkzMng0OjpuZXcoMSwgMiwgMywgNCk7Ci0tLy8hIGFzc2VydF9l cSEoYS53cmFwcGluZ19zdW0oKSwgMTApOwotLS8vISBgYGAKLS0vLyEKLS0vLyEgSW4gdmlydHVh bGx5IGFsbCBhcmNoaXRlY3R1cmVzIHZlcnRpY2FsIG9wZXJhdGlvbnMgYXJlIGZhc3QsIHdoaWxl Ci0tLy8hIGhvcml6b250YWwgb3BlcmF0aW9ucyBhcmUsIGJ5IGNvbXBhcmlzb24sIG11Y2ggc2xv d2VyLiBUaGF0IGlzLCB0aGUKLS0vLyEgbW9zdCBwb3J0YWJseS1lZmZpY2llbnQgd2F5IG9mIHBl cmZvcm1pbmcgYSByZWR1Y3Rpb24gb3ZlciBhIHNsaWNlCi0tLy8hIGlzIHRvIGNvbGxlY3QgdGhl IHJlc3VsdHMgaW50byBhIHZlY3RvciB1c2luZyB2ZXJ0aWNhbCBvcGVyYXRpb25zLAotLS8vISBh bmQgcGVyZm9ybWluZyBhIHNpbmdsZSBob3Jpem9udGFsIG9wZXJhdGlvbiBhdCB0aGUgZW5kOgot LS8vIQotLS8vISBgYGAKLS0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7Ci0tLy8hIGZuIHJlZHVj ZSh4OiAmW2kzMl0pIC0+IGkzMiB7Ci0tLy8hICAgICBhc3NlcnRfZXEhKHgubGVuKCkgJSA0LCAw KTsKLS0vLyEgICAgIGxldCBtdXQgc3VtID0gaTMyeDQ6OnNwbGF0KDApOyAvLyBbMCwgMCwgMCwg MF0KLS0vLyEgICAgIGZvciBpIGluICgwLi54LmxlbigpKS5zdGVwX2J5KDQpIHsKLS0vLyEgICAg ICAgICBzdW0gKz0gaTMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ4W2kuLl0pOwotLS8vISAg ICAgfQotLS8vISAgICAgc3VtLndyYXBwaW5nX3N1bSgpCi0tLy8hIH0KLS0vLyEKLS0vLyEgbGV0 IHggPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgN107Ci0tLy8hIGFzc2VydF9lcSEocmVkdWNlKCZ4 KSwgMjgpOwotLS8vISBgYGAKLS0vLyEKLS0vLyEgIyMgVmVjdG9yIHR5cGVzCi0tLy8hCi0tLy8h IFRoZSB2ZWN0b3IgdHlwZSBhbGlhc2VzIGFyZSBuYW1lZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxv d2luZyBzY2hlbWU6Ci0tLy8hCi0tLy8hID4gYHtlbGVtZW50X3R5cGV9eHtudW1iZXJfb2ZfbGFu ZXN9ID09IFNpbWQ8W2VsZW1lbnRfdHlwZTsKLS0vLyEgbnVtYmVyX29mX2xhbmVzXT5gCi0tLy8h Ci0tLy8hIHdoZXJlIHRoZSBmb2xsb3dpbmcgZWxlbWVudCB0eXBlcyBhcmUgc3VwcG9ydGVkOgot LS8vIQotLS8vISAqIGBpe2VsZW1lbnRfd2lkdGh9YDogc2lnbmVkIGludGVnZXIKLS0vLyEgKiBg dXtlbGVtZW50X3dpZHRofWA6IHVuc2lnbmVkIGludGVnZXIKLS0vLyEgKiBgZntlbGVtZW50X3dp ZHRofWA6IGZsb2F0Ci0tLy8hICogYG17ZWxlbWVudF93aWR0aH1gOiBtYXNrIChzZWUgYmVsb3cp Ci0tLy8hICogYCp7Y29uc3QsbXV0fSBUYDogYGNvbnN0YCBhbmQgYG11dGAgcG9pbnRlcnMKLS0v LyEKLS0vLyEgIyMgQmFzaWMgb3BlcmF0aW9ucwotLS8vIQotLS8vISBgYGAKLS0vLyEgIyB1c2Ug cGFja2VkX3NpbWQ6Oio7Ci0tLy8hIC8vIFNldHMgYWxsIGVsZW1lbnRzIHRvIGAwYDoKLS0vLyEg bGV0IGEgPSBpMzJ4NDo6c3BsYXQoMCk7Ci0tLy8hCi0tLy8hIC8vIFJlYWRzIGEgdmVjdG9yIGZy b20gYSBzbGljZToKLS0vLyEgbGV0IG11dCBhcnIgPSBbMCwgMCwgMCwgMSwgMiwgMywgNCwgNV07 Ci0tLy8hIGxldCBiID0gaTMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZhcnIpOwotLS8vIQot LS8vISAvLyBSZWFkcyB0aGUgNC10aCBlbGVtZW50IG9mIGEgdmVjdG9yOgotLS8vISBhc3NlcnRf ZXEhKGIuZXh0cmFjdCgzKSwgMSk7Ci0tLy8hCi0tLy8hIC8vIFJldHVybnMgYSBuZXcgdmVjdG9y IHdoZXJlIHRoZSA0LXRoIGVsZW1lbnQgaXMgcmVwbGFjZWQgd2l0aCBgMWA6Ci0tLy8hIGxldCBh ID0gYS5yZXBsYWNlKDMsIDEpOwotLS8vISBhc3NlcnRfZXEhKGEsIGIpOwotLS8vIQotLS8vISAv LyBXcml0ZXMgYSB2ZWN0b3IgdG8gYSBzbGljZToKLS0vLyEgbGV0IGEgPSBhLnJlcGxhY2UoMiwg MSk7Ci0tLy8hIGEud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgYXJyWzQuLl0pOwotLS8v ISBhc3NlcnRfZXEhKGFyciwgWzAsIDAsIDAsIDEsIDAsIDAsIDEsIDFdKTsKLS0vLyEgYGBgCi0t Ly8hCi0tLy8hICMjIENvbmRpdGlvbmFsIG9wZXJhdGlvbnMKLS0vLyEKLS0vLyEgT25lIG9mdGVu IG5lZWRzIHRvIHBlcmZvcm0gYW4gb3BlcmF0aW9uIG9uIHNvbWUgbGFuZXMgb2YgdGhlIHZlY3Rv ci4gVmVjdG9yCi0tLy8hIG1hc2tzLCBsaWtlIGBtMzJ4NGAsIGFsbG93IHNlbGVjdGluZyBvbiB3 aGljaCB2ZWN0b3IgbGFuZXMgYW4gb3BlcmF0aW9uIGlzCi0tLy8hIHRvIGJlIHBlcmZvcm1lZDoK LS0vLyEKLS0vLyEgYGBgCi0tLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOwotLS8vISBsZXQgYSA9 IGkzMng0OjpuZXcoMSwgMSwgMiwgMik7Ci0tLy8hCi0tLy8hIC8vIEFkZCBgMWAgdG8gdGhlIGZp cnN0IHR3byBsYW5lcyBvZiB0aGUgdmVjdG9yLgotLS8vISBsZXQgbSA9IG0xNng0OjpuZXcodHJ1 ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKLS0vLyEgbGV0IGEgPSBtLnNlbGVjdChhICsgMSwgYSk7 Ci0tLy8hIGFzc2VydF9lcSEoYSwgaTMyeDQ6OnNwbGF0KDIpKTsKLS0vLyEgYGBgCi0tLy8hCi0t Ly8hIFRoZSBlbGVtZW50cyBvZiBhIHZlY3RvciBtYXNrIGFyZSBlaXRoZXIgYHRydWVgIG9yIGBm YWxzZWAuIEhlcmUgYHRydWVgCi0tLy8hIG1lYW5zIHRoYXQgYSBsYW5lIGlzICJzZWxlY3RlZCIs IHdoaWxlIGBmYWxzZWAgbWVhbnMgdGhhdCBhIGxhbmUgaXMgbm90Ci0tLy8hIHNlbGVjdGVkLgot LS8vIQotLS8vISBBbGwgdmVjdG9yIG1hc2tzIGltcGxlbWVudCBhIGBtYXNrLnNlbGVjdChhOiBU LCBiOiBUKSAtPiBUYCBtZXRob2QgdGhhdAotLS8vISB3b3JrcyBvbiBhbGwgdmVjdG9ycyB0aGF0 IGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVzIGFzIHRoZSBtYXNrLiBUaGUKLS0vLyEgcmVz dWx0aW5nIHZlY3RvciBjb250YWlucyB0aGUgZWxlbWVudHMgb2YgYGFgIGZvciB0aG9zZSBsYW5l cyBmb3Igd2hpY2ggdGhlCi0tLy8hIG1hc2sgaXMgYHRydWVgLCBhbmQgdGhlIGVsZW1lbnRzIG9m IGBiYCBvdGhlcndpc2UuCi0tLy8hCi0tLy8hIFRoZSBleGFtcGxlIGNvbnN0cnVjdHMgYSBtYXNr IHdpdGggdGhlIGZpcnN0IHR3byBsYW5lcyBzZXQgdG8gYHRydWVgIGFuZAotLS8vISB0aGUgbGFz dCB0d28gbGFuZXMgc2V0IHRvIGBmYWxzZWAuIFRoaXMgc2VsZWN0cyB0aGUgZmlyc3QgdHdvIGxh bmVzIG9mIGBhICsKLS0vLyEgMWAgYW5kIHRoZSBsYXN0IHR3byBsYW5lcyBvZiBgYWAsIHByb2R1 Y2luZyBhIHZlY3RvciB3aGVyZSB0aGUgZmlyc3QgdHdvCi0tLy8hIGxhbmVzIGhhdmUgYmVlbiBp bmNyZW1lbnRlZCBieSBgMWAuCi0tLy8hCi0tLy8hID4gbm90ZTogbWFzayBgc2VsZWN0YCBjYW4g YmUgdXNlZCBvbiB2ZWN0b3IgdHlwZXMgdGhhdCBoYXZlIHRoZSBzYW1lIG51bWJlcgotLS8vISA+ IG9mIGxhbmVzIGFzIHRoZSBtYXNrLiBUaGUgZXhhbXBsZSBzaG93cyB0aGlzIGJ5IHVzaW5nIFtg bTE2eDRgXSBpbnN0ZWFkCi0tLy8hID4gb2YgW2BtMzJ4NGBdLiBJdCBpcyBfdHlwaWNhbGx5XyBt b3JlIHBlcmZvcm1hbnQgdG8gdXNlIGEgbWFzayBlbGVtZW50Ci0tLy8hID4gd2lkdGggZXF1YWwg dG8gdGhlIGVsZW1lbnQgd2lkdGggb2YgdGhlIHZlY3RvcnMgYmVpbmcgb3BlcmF0ZWQgdXBvbi4K LS0vLyEgPiBUaGlzIGlzLCBob3dldmVyLCBub3QgdHJ1ZSBmb3IgNTEyLWJpdCB3aWRlIHZlY3Rv cnMgd2hlbiB0YXJnZXRpbmcKLS0vLyEgPiBBVlgtNTEyLCB3aGVyZSB0aGUgbW9zdCBlZmZpY2ll bnQgbWFza3MgdXNlIG9ubHkgMS1iaXQgcGVyIGVsZW1lbnQuCi0tLy8hCi0tLy8hIEFsbCB2ZXJ0 aWNhbCBjb21wYXJpc29uIG9wZXJhdGlvbnMgcmV0dXJucyBtYXNrczoKLS0vLyEKLS0vLyEgYGBg Ci0tLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOwotLS8vISBsZXQgYSA9IGkzMng0OjpuZXcoMSwg MSwgMywgMyk7Ci0tLy8hIGxldCBiID0gaTMyeDQ6Om5ldygyLCAyLCAwLCAwKTsKLS0vLyEKLS0v LyEgLy8gZ2U6ID49IChHcmVhdGVyIEVlcXVhbDsgc2VlIGFsc28gbHQsIGxlLCBndCwgZXEsIG5l KS4KLS0vLyEgbGV0IG0gPSBhLmdlKGkzMng0OjpzcGxhdCgyKSk7Ci0tLy8hCi0tLy8hIGlmIG0u YW55KCkgewotLS8vISAgICAgLy8gYWxsIC8gYW55IC8gbm9uZSBhbGxvdyBjb2hlcmVudCBjb250 cm9sIGZsb3cKLS0vLyEgICAgIGxldCBkID0gbS5zZWxlY3QoYSwgYik7Ci0tLy8hICAgICBhc3Nl cnRfZXEhKGQsIGkzMng0OjpuZXcoMiwgMiwgMywgMykpOwotLS8vISB9Ci0tLy8hIGBgYAotLS8v IQotLS8vISAjIyBDb252ZXJzaW9ucwotLS8vIQotLS8vISAqICoqbG9zc2xlc3Mgd2lkZW5pbmcg Y29udmVyc2lvbnMqKjogW2BGcm9tYF0vW2BJbnRvYF0gYXJlIGltcGxlbWVudGVkIGZvcgotLS8v ISAgIHZlY3RvcnMgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMgd2hlbiB0aGUgY29udmVy c2lvbiBpcyB2YWx1ZQotLS8vISBwcmVzZXJ2aW5nICAgKHNhbWUgYXMgaW4gYHN0ZGApLgotLS8v IQotLS8vISAqICoqc2FmZSBiaXR3aXNlIGNvbnZlcnNpb25zKio6IFRoZSBjYXJnbyBmZWF0dXJl IGBpbnRvX2JpdHNgIHByb3ZpZGVzIHRoZQotLS8vISAgIGBJbnRvQml0cy9Gcm9tQml0c2AgdHJh aXRzIChgeC5pbnRvX2JpdHMoKWApLiBUaGVzZSBwZXJmb3JtIHNhZmUgYml0d2lzZQotLS8vISAg IGB0cmFuc211dGVgcyB3aGVuIGFsbCBiaXQgcGF0dGVybnMgb2YgdGhlIHNvdXJjZSB0eXBlIGFy ZSB2YWxpZCBiaXQKLS0vLyEgICBwYXR0ZXJucyBvZiB0aGUgdGFyZ2V0IHR5cGUgYW5kIGFyZSBh bHNvIGltcGxlbWVudGVkIGZvciB0aGUKLS0vLyEgICBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgdmVj dG9yIHR5cGVzIG9mIGBzdGQ6OmFyY2hgLiBGb3IgZXhhbXBsZSwgYGxldCB4OgotLS8vISAgIHU4 eDggPSBtOHg4OjpzcGxhdCh0cnVlKS5pbnRvX2JpdHMoKTtgIGlzIHByb3ZpZGVkIGJlY2F1c2Ug YWxsIGBtOHg4YCBiaXQKLS0vLyEgICBwYXR0ZXJucyBhcmUgdmFsaWQgYHU4eDhgIGJpdCBwYXR0 ZXJucy4gSG93ZXZlciwgdGhlIG9wcG9zaXRlIGlzIG5vdAotLS8vISB0cnVlLCAgIG5vdCBhbGwg YHU4eDhgIGJpdCBwYXR0ZXJucyBhcmUgdmFsaWQgYG04eDhgIGJpdC1wYXR0ZXJucywgc28gdGhp cwotLS8vISAgIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIHNhZmVseSB1c2luZyBgeC5p bnRvX2JpdHMoKWA7IG9uZSBuZWVkcyB0bwotLS8vISAgIHVzZSBgdW5zYWZlIHsgY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHgpIH1gIGZvciB0aGF0LCBtYWtpbmcgc3VyZSB0aGF0IHRoZQotLS8vISAg IHZhbHVlIGluIHRoZSBgdTh4OGAgaXMgYSB2YWxpZCBiaXQtcGF0dGVybiBvZiBgbTh4OGAuCi0t Ly8hCi0tLy8hICogKipudW1lcmljIGNhc3RzKiogKGBhc2ApOiBhcmUgcGVyZm9ybWVkIHVzaW5n IFtgRnJvbUNhc3RgXS9bYENhc3RgXQotLS8vISAoYHguY2FzdCgpYCksIGp1c3QgbGlrZSBgYXNg OgotLS8vIQotLS8vISAgICogY2FzdGluZyBpbnRlZ2VyIHZlY3RvcnMgd2hvc2UgbGFuZSB0eXBl cyBoYXZlIHRoZSBzYW1lIHNpemUgKGUuZy4KLS0vLyEgYGkzMnhOYCAgICAgLT4gYHUzMnhOYCkg aXMgYSAqKm5vLW9wKiosCi0tLy8hCi0tLy8hICAgKiBjYXN0aW5nIGZyb20gYSBsYXJnZXIgaW50 ZWdlciB0byBhIHNtYWxsZXIgaW50ZWdlciAoZS5nLiBgdTMyeE5gIC0+Ci0tLy8hIGB1OHhOYCkg ICAgIHdpbGwgKip0cnVuY2F0ZSoqLAotLS8vIQotLS8vISAgICogY2FzdGluZyBmcm9tIGEgc21h bGxlciBpbnRlZ2VyIHRvIGEgbGFyZ2VyIGludGVnZXIgICAgIChlLmcuIGB1OHhOYCAtPgotLS8v ISAgICAgYHUzMnhOYCkgd2lsbDoKLS0vLyEgICAgICAgICogKip6ZXJvLWV4dGVuZCoqIGlmIHRo ZSBzb3VyY2UgaXMgdW5zaWduZWQsIG9yCi0tLy8hICAgICAgICAqICoqc2lnbi1leHRlbmQqKiBp ZiB0aGUgc291cmNlIGlzIHNpZ25lZCwKLS0vLyEKLS0vLyEgICAqIGNhc3RpbmcgZnJvbSBhIGZs b2F0IHRvIGFuIGludGVnZXIgd2lsbCAqKnJvdW5kIHRoZSBmbG9hdCB0b3dhcmRzCi0tLy8hIHpl cm8qKiwKLS0vLyEKLS0vLyEgICAqIGNhc3RpbmcgZnJvbSBhbiBpbnRlZ2VyIHRvIGZsb2F0IHdp bGwgcHJvZHVjZSB0aGUgZmxvYXRpbmcgcG9pbnQKLS0vLyEgICAgIHJlcHJlc2VudGF0aW9uIG9m IHRoZSBpbnRlZ2VyLCAqKnJvdW5kaW5nIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLAotLS8v IQotLS8vISAgICogY2FzdGluZyBmcm9tIGFuIGBmMzJgIHRvIGFuIGBmNjRgIGlzIHBlcmZlY3Qg YW5kIGxvc3NsZXNzLAotLS8vIQotLS8vISAgICogY2FzdGluZyBmcm9tIGFuIGBmNjRgIHRvIGFu IGBmMzJgICoqcm91bmRzIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLgotLS8vIQotLS8vISAg IE51bWVyaWMgY2FzdHMgYXJlIG5vdCB2ZXJ5ICJwcmVjaXNlIjogc29tZXRpbWVzIGxvc3N5LCBz b21ldGltZXMgdmFsdWUKLS0vLyEgICBwcmVzZXJ2aW5nLCBldGMuCi0tLy8hCi0tLy8hICMjIEhh cmR3YXJlIEZlYXR1cmVzCi0tLy8hCi0tLy8hIFRoaXMgY3JhdGUgY2FuIHVzZSBkaWZmZXJlbnQg aGFyZHdhcmUgZmVhdHVyZXMgYmFzZWQgb24geW91ciBjb25maWd1cmVkCi0tLy8hIGBSVVNURkxB R1NgLiBGb3IgZXhhbXBsZSwgd2l0aCBubyBjb25maWd1cmVkIGBSVVNURkxBR1NgLCBgdTY0eDhg IG9uCi0tLy8hIHg4Nl82NCB3aWxsIHVzZSBTU0UyIG9wZXJhdGlvbnMgbGlrZSBgUENNUEVRRGAu IElmIHlvdSBjb25maWd1cmUKLS0vLyEgYFJVU1RGTEFHUz0nLUMgdGFyZ2V0LWZlYXR1cmU9K2F2 eDIsK2F2eCdgIG9uIHN1cHBvcnRlZCB4ODZfNjQgaGFyZHdhcmUKLS0vLyEgdGhlIHNhbWUgYHU2 NHg4YCBtYXkgdXNlIHdpZGVyIEFWWDIgb3BlcmF0aW9ucyBsaWtlIGBWUENNUEVRUWAuIEl0IGlz Ci0tLy8hIGltcG9ydGFudCBmb3IgcGVyZm9ybWFuY2UgYW5kIGZvciBoYXJkd2FyZSBzdXBwb3J0 IHJlcXVpcmVtZW50cyB0aGF0Ci0tLy8hIHlvdSBjaG9vc2UgYW4gYXBwcm9wcmlhdGUgc2V0IG9m IGB0YXJnZXQtZmVhdHVyZWAgYW5kIGB0YXJnZXQtY3B1YAotLS8vISBvcHRpb25zIGR1cmluZyBi dWlsZHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIFtQZXJmb3JtYW5jZQotLS8vISBn dWlkZV0oaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIuaW8vcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS8pCi0tCi0tIyFbZmVhdHVyZSgKLS0gICAgYWR0X2NvbnN0X3BhcmFtcywKLS0gICAg cmVwcl9zaW1kLAotLSAgICBydXN0Y19hdHRycywKLS0gICAgcGxhdGZvcm1faW50cmluc2ljcywK LS0gICAgc3Rkc2ltZCwKLS0gICAgYXJtX3RhcmdldF9mZWF0dXJlLAotLSAgICBsaW5rX2xsdm1f aW50cmluc2ljcywKLS0gICAgY29yZV9pbnRyaW5zaWNzLAotLSAgICBzdG10X2V4cHJfYXR0cmli dXRlcywKLS0gICAgY3VzdG9tX2lubmVyX2F0dHJpYnV0ZXMsCi0tKV0KLS0jIVthbGxvdyhub25f Y2FtZWxfY2FzZV90eXBlcywgbm9uX3NuYWtlX2Nhc2UsCi0tICAgICAgICAvLyBGSVhNRTogdGhl c2UgdHlwZXMgYXJlIHVuc291bmQgaW4gQyBGRkkgYWxyZWFkeQotLSAgICAgICAgLy8gU2VlIGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC9pc3N1ZXMvNTMzNDYKLS0gICAgICAgIGlt cHJvcGVyX2N0eXBlc19kZWZpbml0aW9ucywKLS0gICAgICAgIGluY29tcGxldGVfZmVhdHVyZXMs Ci0tICAgICAgICBjbGlwcHk6OmNhc3RfcG9zc2libGVfdHJ1bmNhdGlvbiwKLS0gICAgICAgIGNs aXBweTo6Y2FzdF9sb3NzbGVzcywKLS0gICAgICAgIGNsaXBweTo6Y2FzdF9wb3NzaWJsZV93cmFw LAotLSAgICAgICAgY2xpcHB5OjpjYXN0X3ByZWNpc2lvbl9sb3NzLAotLSAgICAgICAgLy8gVE9E TzogbWFudWFsbHkgYWRkIHRoZSBgI1ttdXN0X3VzZV1gIGF0dHJpYnV0ZSB3aGVyZSBhcHByb3By aWF0ZQotLSAgICAgICAgY2xpcHB5OjptdXN0X3VzZV9jYW5kaWRhdGUsCi0tICAgICAgICAvLyBU aGlzIGxpbnQgaXMgY3VycmVudGx5IGJyb2tlbiBmb3IgZ2VuZXJpYyBjb2RlCi0tICAgICAgICAv LyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9ydXN0LWNsaXBweS9pc3N1ZXMvMzQx MAotLSAgICAgICAgY2xpcHB5Ojp1c2Vfc2VsZiwKLS0gICAgICAgIGNsaXBweTo6d3Jvbmdfc2Vs Zl9jb252ZW50aW9uLAotLSAgICAgICAgY2xpcHB5Ojpmcm9tX292ZXJfaW50bywKLS0pXQotLSMh W2NmZ19hdHRyKHRlc3QsIGZlYXR1cmUoaGFzaG1hcF9pbnRlcm5hbHMpKV0KLS0jIVtjZmdfYXR0 cihkb2NfY2ZnLCBmZWF0dXJlKGRvY19jZmcpKV0KLS0jIVtkZW55KHJ1c3RfMjAxOF9pZGlvbXMs IGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KLS0jIVtub19zdGRdCi0t Ci0tdXNlIGNmZ19pZjo6Y2ZnX2lmOwotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyhmZWF0 dXJlID0gImNvcmVfYXJjaCIpXSB7Ci0tICAgICAgICAjW2FsbG93KHVudXNlZF9pbXBvcnRzKV0K LS0gICAgICAgIHVzZSBjb3JlX2FyY2ggYXMgYXJjaDsKLS0gICAgfSBlbHNlIHsKLS0gICAgICAg ICNbYWxsb3codW51c2VkX2ltcG9ydHMpXQotLSAgICAgICAgdXNlIGNvcmU6OmFyY2g7Ci0tICAg IH0KLS19Ci0tCi0tI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHRlc3QpKV0KLS11 c2Ugd2FzbV9iaW5kZ2VuX3Rlc3Q6Oio7Ci0tCi0tI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldCi0t dXNlIGNvcmU6OnsKLS0gICAgLyogYXJjaCAoaGFuZGxlZCBhYm92ZSksICovIGNtcCwgZjMyLCBm NjQsIGZtdCwgaGFzaCwgaGludCwgaTEyOCwgaTE2LCBpMzIsIGk2NCwgaTgsIGludHJpbnNpY3Ms Ci0tICAgIGlzaXplLCBpdGVyLCBtYXJrZXIsIG1lbSwgb3BzLCBwdHIsIHNsaWNlLCB1MTI4LCB1 MTYsIHUzMiwgdTY0LCB1OCwgdXNpemUsCi0tfTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgdGVz dGluZzsKLS0jW21hY3JvX3VzZV0KLS1tb2QgYXBpOwotLW1vZCBjb2RlZ2VuOwotLW1vZCBzZWFs ZWQ7Ci0tCi0tcHViIHVzZSBjcmF0ZTo6c2VhbGVkOjp7TWFzaywgU2h1ZmZsZSwgU2ltZCBhcyBT aW1kVmVjdG9yLCBTaW1kQXJyYXl9OwotLQotLS8vLyBQYWNrZWQgU0lNRCB2ZWN0b3IgdHlwZS4K LS0vLy8KLS0vLy8gIyBFeGFtcGxlcwotLS8vLwotLS8vLyBgYGAKLS0vLy8gIyB1c2UgcGFja2Vk X3NpbWQ6OlNpbWQ7Ci0tLy8vIGxldCB2ID0gU2ltZDo6PFtpMzI7IDRdPjo6bmV3KDAsIDEsIDIs IDMpOwotLS8vLyBhc3NlcnRfZXEhKHYuZXh0cmFjdCgyKSwgMik7Ci0tLy8vIGBgYAotLSNbcmVw cih0cmFuc3BhcmVudCldCi0tI1tkZXJpdmUoQ29weSwgQ2xvbmUpXQotLXB1YiBzdHJ1Y3QgU2lt ZDxBOiBzZWFsZWQ6OlNpbWRBcnJheT4oCi0tICAgIC8vIEZJWE1FOiB0aGlzIHR5cGUgc2hvdWxk IGJlIHByaXZhdGUsCi0tICAgIC8vIGJ1dCBpdCBjdXJyZW50bHkgbXVzdCBiZSBwdWJsaWMgZm9y IHRoZQotLSAgICAvLyBgc2h1ZmZsZSFgIG1hY3JvIHRvIHdvcms6IGl0IG5lZWRzIHRvCi0tICAg IC8vIGFjY2VzcyB0aGUgaW50ZXJuYWwgYHJlcHIoc2ltZClgIHR5cGUKLS0gICAgLy8gdG8gY2Fs bCB0aGUgc2h1ZmZsZSBpbnRyaW5zaWNzLgotLSAgICAjW2RvYyhoaWRkZW4pXSBwdWIgPEEgYXMg c2VhbGVkOjpTaW1kQXJyYXk+OjpUdXBsZSwKLS0pOwotLQotLWltcGw8QTogc2VhbGVkOjpTaW1k QXJyYXk+IHNlYWxlZDo6U2VhbCBmb3IgU2ltZDxBPiB7fQotLQotLS8vLyBXcmFwcGVyIG92ZXIg YFRgIGltcGxlbWVudGluZyBhIGxleGljb3JhcGhpY2FsIG9yZGVyIHZpYSB0aGUgYFBhcnRpYWxP cmRgCi0tLy8vIGFuZC9vciBgT3JkYCB0cmFpdHMuCi0tI1tyZXByKHRyYW5zcGFyZW50KV0KLS0j W2Rlcml2ZShDb3B5LCBDbG9uZSwgRGVidWcpXQotLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lu bGluZV9pbl9wdWJsaWNfaXRlbXMpXQotLXB1YiBzdHJ1Y3QgTGV4aWNvZ3JhcGhpY2FsbHlPcmRl cmVkPFQ+KFQpOwotLQotLW1vZCBtYXNrczsKLS1wdWIgdXNlIHNlbGY6Om1hc2tzOjoqOwotLQot LW1vZCB2MTY7Ci0tcHViIHVzZSBzZWxmOjp2MTY6Oio7Ci0tCi0tbW9kIHYzMjsKLS1wdWIgdXNl IHNlbGY6OnYzMjo6KjsKLS0KLS1tb2QgdjY0OwotLXB1YiB1c2Ugc2VsZjo6djY0OjoqOwotLQot LW1vZCB2MTI4OwotLXB1YiB1c2Ugc2VsZjo6djEyODo6KjsKLS0KLS1tb2QgdjI1NjsKLS1wdWIg dXNlIHNlbGY6OnYyNTY6Oio7Ci0tCi0tbW9kIHY1MTI7Ci0tcHViIHVzZSBzZWxmOjp2NTEyOjoq OwotLQotLW1vZCB2U2l6ZTsKLS1wdWIgdXNlIHNlbGY6OnZTaXplOjoqOwotLQotLW1vZCB2UHRy OwotLXB1YiB1c2Ugc2VsZjo6dlB0cjo6KjsKLS0KLS1wdWIgdXNlIHNlbGY6OmFwaTo6Y2FzdDo6 KjsKLS0KLS0jW2NmZyhmZWF0dXJlID0gImludG9fYml0cyIpXQotLXB1YiB1c2Ugc2VsZjo6YXBp OjppbnRvX2JpdHM6Oio7Ci0tCi0tLy8gUmUtZXhwb3J0IHRoZSBzaHVmZmxlIGludHJpbnNpY3Mg cmVxdWlyZWQgYnkgdGhlIGBzaHVmZmxlIWAgbWFjcm8uCi0tI1tkb2MoaGlkZGVuKV0KLS1wdWIg dXNlIHNlbGY6OmNvZGVnZW46Omxsdm06OnsKLS0gICAgX19zaHVmZmxlX3ZlY3RvcjE2LCBfX3No dWZmbGVfdmVjdG9yMiwgX19zaHVmZmxlX3ZlY3RvcjMyLCBfX3NodWZmbGVfdmVjdG9yNCwgX19z aHVmZmxlX3ZlY3RvcjY0LAotLSAgICBfX3NodWZmbGVfdmVjdG9yOCwKLS19OwotLQotLXB1Yihj cmF0ZSkgbW9kIGxsdm0gewotLSAgICBwdWIoY3JhdGUpIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bGx2 bTo6KjsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv bWFza3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9tYXNrcy5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbWFza3MucnMJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL21hc2tzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwxMjYgKzAsMCBAQAotLS8vISBNYXNrIHR5cGVzCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWFz a190eSB7Ci0tICAgICgkaWQ6aWRlbnQgOiAkZWxlbV90eTppZGVudCB8ICNbJGRvYzptZXRhXSkg PT4gewotLSAgICAgICAgI1skZG9jXQotLSAgICAgICAgI1tkZXJpdmUoQ29weSwgQ2xvbmUpXQot LSAgICAgICAgcHViIHN0cnVjdCAkaWQoJGVsZW1fdHkpOwotLQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6c2VhbGVkOjpTZWFsIGZvciAkaWQge30KLS0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6 TWFzayBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiB0 ZXN0KCZzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgJGlkOjp0ZXN0KHNlbGYpCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAg ICAgICAgIC8vLyBJbnN0YW50aWF0ZSBhIG1hc2sgd2l0aCBgdmFsdWVgCi0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIG5ldyh4OiBib29sKSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgaWYgeCB7Ci0tICAgICAgICAgICAgICAgICAgICAkaWQoITApCi0tICAg ICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAkaWQoMCkKLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAvLy8gVGVzdCBpZiB0 aGUgbWFzayBpcyBzZXQKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIg Zm4gdGVzdCgmc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHNlbGYuMCAhPSAwCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBEZWZhdWx0IGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGRlZmF1bHQoKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgJGlkKDApCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KLS0g ICAgICAgIGltcGwgUGFydGlhbEVxPCRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0t ICAgICAgICAgICAgICAgIHNlbGYuMCA9PSBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjogJlNlbGYp IC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAgIT0gb3RoZXIuMAotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgRXEgZm9yICRpZCB7fQotLQotLSAg ICAgICAgaW1wbCBQYXJ0aWFsT3JkPCRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgZm4gcGFydGlhbF9jbXAoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4g T3B0aW9uPGNyYXRlOjpjbXA6Ok9yZGVyaW5nPiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6Y21wOjpPcmRlcmluZzsKLS0gICAgICAgICAgICAgICAgaWYgc2VsZiA9PSBvdGhlciB7Ci0t ICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkKLS0gICAgICAgICAgICAg ICAgfSBlbHNlIGlmIHNlbGYuMCA+IG90aGVyLjAgewotLSAgICAgICAgICAgICAgICAgICAgLy8g Tm90ZToKLS0gICAgICAgICAgICAgICAgICAgIC8vICAqIGZhbHNlID0gMF9pCi0tICAgICAgICAg ICAgICAgICAgICAvLyAgKiB0cnVlID09ICEwX2kgPT0gLTFfaQotLSAgICAgICAgICAgICAgICAg ICAgU29tZShPcmRlcmluZzo6TGVzcykKLS0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAg ICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpCi0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gbHQoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAg IHNlbGYuMCA+IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gZ3QoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAg ICAgICAgICAgICAgIHNlbGYuMCA8IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbGUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4g Ym9vbCB7Ci0tICAgICAgICAgICAgICAgIHNlbGYuMCA+PSBvdGhlci4wCi0tICAgICAgICAgICAg fQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGdlKCZzZWxmLCBvdGhl cjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAgPD0gb3RoZXIuMAot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgT3JkIGZvciAkaWQg ewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGNtcCgmc2VsZiwgb3Ro ZXI6ICZTZWxmKSAtPiBjcmF0ZTo6Y21wOjpPcmRlcmluZyB7Ci0tICAgICAgICAgICAgICAgIG1h dGNoIHNlbGYucGFydGlhbF9jbXAob3RoZXIpIHsKLS0gICAgICAgICAgICAgICAgICAgIFNvbWUo eCkgPT4geCwKLS0gICAgICAgICAgICAgICAgICAgIE5vbmUgPT4gdW5zYWZlIHsgY3JhdGU6Omhp bnQ6OnVucmVhY2hhYmxlX3VuY2hlY2tlZCgpIH0sCi0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpoYXNoOjpIYXNo IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGhhc2g8 SDogY3JhdGU6Omhhc2g6Okhhc2hlcj4oJnNlbGYsIHN0YXRlOiAmbXV0IEgpIHsKLS0gICAgICAg ICAgICAgICAgKHNlbGYuMCAhPSAwKS5oYXNoKHN0YXRlKTsKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpmbXQ6OkRlYnVnIGZvciAkaWQgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZm10dGVyOiAm bXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IFJlc3VsdDwoKSwgY3JhdGU6OmZtdDo6 RXJyb3I+IHsKLS0gICAgICAgICAgICAgICAgd3JpdGUhKGZtdHRlciwgInt9KHt9KSIsIHN0cmlu Z2lmeSEoJGlkKSwgc2VsZi4wICE9IDApCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICB9OwotLX0KLS0KLS1pbXBsX21hc2tfdHkhKG04OiBpOCB8IC8vLyA4LWJpdCB3aWRlIG1hc2su Ci0tKTsKLS1pbXBsX21hc2tfdHkhKG0xNjogaTE2IHwgLy8vIDE2LWJpdCB3aWRlIG1hc2suCi0t KTsKLS1pbXBsX21hc2tfdHkhKG0zMjogaTMyIHwgLy8vIDMyLWJpdCB3aWRlIG1hc2suCi0tKTsK LS1pbXBsX21hc2tfdHkhKG02NDogaTY0IHwgLy8vIDY0LWJpdCB3aWRlIG1hc2suCi0tKTsKLS1p bXBsX21hc2tfdHkhKG0xMjg6IGkxMjggfCAvLy8gMTI4LWJpdCB3aWRlIG1hc2suCi0tKTsKLS1p bXBsX21hc2tfdHkhKG1zaXplOiBpc2l6ZSB8IC8vLyBpc2l6ZS13aWRlIG1hc2suCi0tKTsKLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9zZWFsZWQucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9zZWFsZWQucnMKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3NlYWxlZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvc2Vh bGVkLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0MiArMCww IEBACi0tLy8hIFNlYWxlZCB0cmFpdHMKLS0KLS0vLy8gQSBzZWFsZWQgdHJhaXQsIHRoaXMgaXMg bG9naWNhbGx5IHByaXZhdGUgdG8gdGhlIGNyYXRlCi0tLy8vIGFuZCB3aWxsIHByZXZlbnQgaW1w bGVtZW50YXRpb25zIGZyb20gb3V0c2lkZSB0aGUgY3JhdGUKLS1wdWIgdHJhaXQgU2VhbDxUID0g KCk+IHt9Ci0tCi0tLy8vIFRyYWl0IGltcGxlbWVudGVkIGJ5IGFycmF5cyB0aGF0IGNhbiBiZSBT SU1EIHR5cGVzLgotLXB1YiB0cmFpdCBTaW1kQXJyYXk6IFNlYWwgewotLSAgICAvLy8gVGhlIHR5 cGUgb2YgdGhlICNbcmVwcihzaW1kKV0gdHlwZS4KLS0gICAgdHlwZSBUdXBsZTogQ29weSArIENs b25lOwotLSAgICAvLy8gVGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgdmVjdG9yLgotLSAgICB0eXBl IFQ7Ci0tICAgIC8vLyBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheS4KLS0gICAg Y29uc3QgTjogdXNpemU7Ci0tICAgIC8vLyBUaGUgdHlwZTogYFt1MzI7IFNlbGY6Ok5dYC4KLS0g ICAgdHlwZSBOVDsKLS19Ci0tCi0tLy8vIFRoaXMgdHJhaXRzIGlzIHVzZWQgdG8gY29uc3RyYWlu dCB0aGUgYXJndW1lbnRzCi0tLy8vIGFuZCByZXN1bHQgdHlwZSBvZiB0aGUgcG9ydGFibGUgc2h1 ZmZsZXMuCi0tI1tkb2MoaGlkZGVuKV0KLS1wdWIgdHJhaXQgU2h1ZmZsZTxMYW5lcz46IFNlYWw8 TGFuZXM+IHsKLS0gICAgLy8gTGFuZXMgaXMgYSBgW3UzMjsgTl1gIHdoZXJlIGBOYCBpcyB0aGUg bnVtYmVyIG9mIHZlY3RvciBsYW5lcwotLQotLSAgICAvLy8gVGhlIHJlc3VsdCB0eXBlIG9mIHRo ZSBzaHVmZmxlLgotLSAgICB0eXBlIE91dHB1dDsKLS19Ci0tCi0tLy8vIFRoaXMgdHJhaXQgaXMg aW1wbGVtZW50ZWQgYnkgYWxsIFNJTUQgdmVjdG9yIHR5cGVzLgotLXB1YiB0cmFpdCBTaW1kOiBT ZWFsIHsKLS0gICAgLy8vIEVsZW1lbnQgdHlwZSBvZiB0aGUgU0lNRCB2ZWN0b3IKLS0gICAgdHlw ZSBFbGVtZW50OwotLSAgICAvLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgU0lNRCB2 ZWN0b3IuCi0tICAgIGNvbnN0IExBTkVTOiB1c2l6ZTsKLS0gICAgLy8vIFRoZSB0eXBlOiBgW3Uz MjsgU2VsZjo6Tl1gLgotLSAgICB0eXBlIExhbmVzVHlwZTsKLS19Ci0tCi0tLy8vIFRoaXMgdHJh aXQgaXMgaW1wbGVtZW50ZWQgYnkgYWxsIG1hc2sgdHlwZXMKLS1wdWIgdHJhaXQgTWFzazogU2Vh bCB7Ci0tICAgIGZuIHRlc3QoJnNlbGYpIC0+IGJvb2w7Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvbWFjcm9zLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy9tYWNyb3MucnMKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvbWFjcm9zLnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy90ZXN0aW5nL21hY3Jvcy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsNDQgKzAsMCBAQAotLS8vISBUZXN0aW5nIG1hY3JvcwotLQotLW1hY3JvX3J1bGVz ISB0ZXN0X2lmIHsKLS0gICAgKCRjZmdfdHQ6dHQ6ICRpdDppdGVtKSA9PiB7Ci0tICAgICAgICAj W2NmZyhhbnkoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gVGVzdCBldmVyeXRoaW5nIGlmOgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKiB0 ZXN0cyBhcmUgZW5hYmxlZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAqIG5vIGZlYXR1cmVzIGFib3V0IGV4Y2x1c2l2ZWx5 IHRlc3RpbmcKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAgIHNwZWNpZmljIHZlY3RvciBjbGFzc2VzIGFyZSBlbmFibGVkCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWxsKHRlc3QsIG5vdChhbnkoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjE2LAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Yz MiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF92NjQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjEyOCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92 MjU2LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X3Y1MTIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9uZSwgIC8vIGRpc2FibGVz IGFsbCB0ZXN0cwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUZXN0IGlmOgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKiB0 ZXN0cyBhcmUgZW5hYmxlZAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vICogYSBwYXJ0aWN1bGFyIGNmZyB0b2tlbiB0cmVlIHJl dHVybnMgdHJ1ZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFsbCh0ZXN0LCAkY2ZnX3R0KSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpXQotLSAgICAgICAgJGl0Ci0t ICAgIH07Ci0tfQotLQotLSNbY2ZnKHRlc3QpXQotLSNbYWxsb3codW51c2VkKV0KLS1tYWNyb19y dWxlcyEgcmVmXyB7Ci0tICAgICgkYW55dGhpbmc6dHQpID0+IHsKLS0gICAgICAgICYkYW55dGhp bmcKLS0gICAgfTsKLS19Ci0tCi0tI1tjZmcodGVzdCldCi0tI1thbGxvdyh1bnVzZWQpXQotLW1h Y3JvX3J1bGVzISByZWZfbXV0XyB7Ci0tICAgICgkYW55dGhpbmc6dHQpID0+IHsKLS0gICAgICAg ICZtdXQgJGFueXRoaW5nCi0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvdXRpbHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy90ZXN0aW5nL3V0aWxzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy90ZXN0aW5nL3V0aWxzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5n L3V0aWxzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMzAg KzAsMCBAQAotLS8vISBUZXN0aW5nIHV0aWxpdGllcwotLQotLSMhW2FsbG93KGRlYWRfY29kZSld Ci0tLy8gRklYTUU6IE9yIGRvbid0LiBCdXQgaXQncyB0cnVlIHRoaXMgaXMgYSBwcm9ibGVtYXRp YyBjb21wYXJpc29uLgotLSMhW2FsbG93KGNsaXBweTo6bmVnX2NtcF9vcF9vbl9wYXJ0aWFsX29y ZCldCi0tCi0tdXNlIGNyYXRlOjp7Y21wOjpQYXJ0aWFsT3JkLCBmbXQ6OkRlYnVnLCBMZXhpY29n cmFwaGljYWxseU9yZGVyZWR9OwotLQotLS8vLyBUZXN0cyBQYXJ0aWFsT3JkIGZvciBgYWAgYW5k IGBiYCB3aGVyZSBgYSA8IGJgIGlzIHRydWUuCi0tcHViIGZuIHRlc3RfbHQ8VD4oYTogTGV4aWNv Z3JhcGhpY2FsbHlPcmRlcmVkPFQ+LCBiOiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4pCi0t d2hlcmUKLS0gICAgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+OiBEZWJ1ZyArIFBhcnRpYWxP cmQsCi0tewotLSAgICBhc3NlcnQhKGEgPCBiLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICBh c3NlcnQhKGIgPiBhLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLQotLSAgICBhc3NlcnQhKCEoYSA9 PSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgYXNzZXJ0X25lIShhLCBiLCAiezo/fSwg ezo/fSIsIGEsIGIpOwotLQotLSAgICBhc3NlcnQhKGEgPD0gYiwgIns6P30sIHs6P30iLCBhLCBi KTsKLS0gICAgYXNzZXJ0IShiID49IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tCi0tICAgIC8v IFRoZSBlbGVnYW5jZSBvZiB0aGUgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24gb2YgaXJyZWZsZXhp dml0eSBpcyBtb3JlCi0tICAgIC8vIHRoYW4gY2xpcHB5IGNhbiBoYW5kbGUuCi0tICAgICNbYWxs b3coY2xpcHB5OjplcV9vcCldCi0tICAgIHsKLS0gICAgICAgIC8vIElycmVmbGV4aXZpdHkKLS0g ICAgICAgIGFzc2VydCEoIShhIDwgYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICBh c3NlcnQhKCEoYiA8IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgYXNzZXJ0ISgh KGEgPiBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgIGFzc2VydCEoIShiID4gYiks ICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tCi0tICAgICAgICBhc3NlcnQhKGEgPD0gYSwgIns6P30s IHs6P30iLCBhLCBiKTsKLS0gICAgICAgIGFzc2VydCEoYiA8PSBiLCAiezo/fSwgezo/fSIsIGEs IGIpOwotLSAgICB9Ci0tfQotLQotLS8vLyBUZXN0cyBQYXJ0aWFsT3JkIGZvciBgYWAgYW5kIGBi YCB3aGVyZSBgYSA8PSBiYCBpcyB0cnVlLgotLXB1YiBmbiB0ZXN0X2xlPFQ+KGE6IExleGljb2dy YXBoaWNhbGx5T3JkZXJlZDxUPiwgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+KQotLXdo ZXJlCi0tICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPjogRGVidWcgKyBQYXJ0aWFsT3Jk LAotLXsKLS0gICAgYXNzZXJ0IShhIDw9IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgIGFz c2VydCEoYiA+PSBhLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLQotLSAgICBhc3NlcnQhKGEgPD0g YiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgYXNzZXJ0IShiID49IGEsICJ7Oj99LCB7Oj99 IiwgYSwgYik7Ci0tCi0tICAgIGlmIGEgPT0gYiB7Ci0tICAgICAgICBhc3NlcnQhKCEoYSA8IGIp LCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgYXNzZXJ0ISghKGIgPiBhKSwgIns6P30s IHs6P30iLCBhLCBiKTsKLS0KLS0gICAgICAgIGFzc2VydCEoIShhICE9IGIpLCAiezo/fSwgezo/ fSIsIGEsIGIpOwotLSAgICB9IGVsc2UgewotLSAgICAgICAgYXNzZXJ0X25lIShhLCBiLCAiezo/ fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgdGVzdF9sdChhLCBiKTsKLS0gICAgfQotLX0KLS0K LS0vLy8gVGVzdCBQYXJ0aWFsT3JkOjpwYXJ0aWFsX2NtcCBmb3IgYGFgIGFuZCBgYmAgcmV0dXJu aW5nIGBPcmRlcmluZ2AKLS1wdWIgZm4gdGVzdF9jbXA8VD4oCi0tICAgIGE6IExleGljb2dyYXBo aWNhbGx5T3JkZXJlZDxUPiwKLS0gICAgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LAot LSAgICBvOiBPcHRpb248Y3JhdGU6OmNtcDo6T3JkZXJpbmc+LAotLSkgd2hlcmUKLS0gICAgTGV4 aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+OiBQYXJ0aWFsT3JkICsgRGVidWcsCi0tICAgIFQ6IERl YnVnICsgY3JhdGU6OnNlYWxlZDo6U2ltZCArIENvcHkgKyBDbG9uZSwKLS0gICAgPFQgYXMgY3Jh dGU6OnNlYWxlZDo6U2ltZD46OkVsZW1lbnQ6IERlZmF1bHQgKyBDb3B5ICsgQ2xvbmUgKyBQYXJ0 aWFsT3JkLAotLXsKLS0gICAgYXNzZXJ0IShUOjpMQU5FUyA8PSA2NCwgImFycmF5IGxlbmd0aCBp biB0aGVzZSB0d28gYXJyYXlzIG5lZWRzIHVwZGF0aW5nIik7Ci0tICAgIGxldCBtdXQgYXJyX2E6 IFtUOjpFbGVtZW50OyA2NF0gPSBbRGVmYXVsdDo6ZGVmYXVsdCgpOyA2NF07Ci0tICAgIGxldCBt dXQgYXJyX2I6IFtUOjpFbGVtZW50OyA2NF0gPSBbRGVmYXVsdDo6ZGVmYXVsdCgpOyA2NF07Ci0t Ci0tICAgIHVuc2FmZSB7IGNyYXRlOjpwdHI6OndyaXRlX3VuYWxpZ25lZChhcnJfYS5hc19tdXRf cHRyKCkgYXMgKm11dCBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4sIGEpIH0KLS0gICAgdW5z YWZlIHsgY3JhdGU6OnB0cjo6d3JpdGVfdW5hbGlnbmVkKGFycl9iLmFzX211dF9wdHIoKSBhcyAq bXV0IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPiwgYikgfQotLSAgICBsZXQgZXhwZWN0ZWQg PSBhcnJfYVswLi5UOjpMQU5FU10ucGFydGlhbF9jbXAoJmFycl9iWzAuLlQ6OkxBTkVTXSk7Ci0t ICAgIGxldCByZXN1bHQgPSBhLnBhcnRpYWxfY21wKCZiKTsKLS0gICAgYXNzZXJ0X2VxIShleHBl Y3RlZCwgcmVzdWx0LCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICBhc3NlcnRfZXEhKG8sIHJl c3VsdCwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgbWF0Y2ggbyB7Ci0tICAgICAgICBTb21l KGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSA9PiB7Ci0tICAgICAgICAgICAgdGVzdF9sdChh LCBiKTsKLS0gICAgICAgICAgICB0ZXN0X2xlKGEsIGIpOwotLSAgICAgICAgfQotLSAgICAgICAg U29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikgPT4gewotLSAgICAgICAgICAgIHRl c3RfbHQoYiwgYSk7Ci0tICAgICAgICAgICAgdGVzdF9sZShiLCBhKTsKLS0gICAgICAgIH0KLS0g ICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSA9PiB7Ci0tICAgICAgICAg ICAgYXNzZXJ0IShhID09IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNz ZXJ0ISghKGEgIT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0 ISghKGEgPCBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEo YiA8IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShhID4g YiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGIgPiBhKSwg Ins6P30sIHs6P30iLCBhLCBiKTsKLS0KLS0gICAgICAgICAgICB0ZXN0X2xlKGEsIGIpOwotLSAg ICAgICAgICAgIHRlc3RfbGUoYiwgYSk7Ci0tICAgICAgICB9Ci0tICAgICAgICBOb25lID0+IHsK LS0gICAgICAgICAgICBhc3NlcnQhKCEoYSA9PSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0g ICAgICAgICAgICBhc3NlcnQhKCEoYSAhPSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAg ICAgICAgICBhc3NlcnQhKCEoYSA8IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAg ICAgIGFzc2VydCEoIShhID4gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAg YXNzZXJ0ISghKGIgPCBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3Nl cnQhKCEoYiA+IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEo IShhIDw9IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShi IDw9IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShhID49 IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShiID49IGEp LCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgfQotLSAgICB9Ci0tfQotLQotLS8vIFJl dHVybnMgYSB0dXBsZSBjb250YWluaW5nIHR3byBkaXN0aW5jdCBwb2ludGVyIHZhbHVlcyBvZiB0 aGUgc2FtZSB0eXBlIGFzCi0tLy8gdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgU2ltZCB2ZWN0b3Ig YCRpZGAuCi0tI1thbGxvdyh1bnVzZWQpXQotLW1hY3JvX3J1bGVzISBwdHJfdmFscyB7Ci0tICAg ICgkaWQ6dHkpID0+IHsKLS0gICAgICAgIC8vIGV4cGFuZHMgdG8gYW4gZXhwcmVzc2lvbgotLSAg ICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KLS0gICAgICAgIHVuc2FmZSB7Ci0tICAgICAg ICAgICAgLy8gYWxsIGJpdHMgY2xlYXJlZAotLSAgICAgICAgICAgIGxldCBjbGVhcjogPCRpZCBh cyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50ID0gY3JhdGU6Om1lbTo6emVyb2VkKCk7Ci0tICAgICAg ICAgICAgLy8gYWxsIGJpdHMgc2V0Ci0tICAgICAgICAgICAgbGV0IHNldDogPCRpZCBhcyBzZWFs ZWQ6OlNpbWQ+OjpFbGVtZW50ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKC0xX2lzaXplKTsKLS0g ICAgICAgICAgICAoY2xlYXIsIHNldCkKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3Rp bmcucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDggKzAsMCBA QAotLS8vISBUZXN0aW5nIG1hY3JvcyBhbmQgb3RoZXIgdXRpbGl0aWVzLgotLQotLSNbbWFjcm9f dXNlXQotLW1vZCBtYWNyb3M7Ci0tCi0tI1tjZmcodGVzdCldCi0tI1ttYWNyb191c2VdCi0tcHVi KGNyYXRlKSBtb2QgdXRpbHM7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvdjEyOC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxMjgu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxMjgucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL3YxMjgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDgwICswLDAgQEAKLS0vLyEgMTI4LWJpdCB3aWRlIHZlY3RvciB0eXBlcwotLSNbcnVz dGZtdDo6c2tpcF0KLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9pIShbaTg7IDE2XTogaTh4 MTYsIG04eDE2IHwgaTgsIHUxNiB8IHRlc3RfdjEyOCB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4 MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8 Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDE2 IGBpOGAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1ODsgMTZdOiB1OHgxNiwgbTh4MTYgfCB1OCwg dTE2IHwgdGVzdF92MTI4IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4 NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0gICAgICAgIEZyb206 IHwKLS0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMTYgYHU4YCBsYW5lcy4KLS0p OwotLWltcGxfbSEoW204OyAxNl06IG04eDE2IHwgaTgsIHUxNiB8IHRlc3RfdjEyOCB8Ci0tICAg ICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgx MiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAgICBGcm9tOiBtMTZ4MTYgfAotLSAgICAgICAgLy8v IEEgMTI4LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDE2IGBtOGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBs X2khKFtpMTY7IDhdOiBpMTZ4OCwgbTE2eDggfCBpMTYsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IGk4eDgsIHU4eDggfAot LSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA4IGBpMTZgIGxhbmVzLgotLSk7Ci0t aW1wbF91IShbdTE2OyA4XTogdTE2eDgsIG0xNng4IHwgdTE2LCB1OCB8IHRlc3RfdjEyOCB8IHgw LCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiB1OHg4IHwKLS0g ICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggOCBgdTE2YCBsYW5lcy4KLS0pOwotLWlt cGxfbSEoW20xNjsgOF06IG0xNng4IHwgaTE2LCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSwgeDIs IHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiBtOHg4LCBtMzJ4OCB8Ci0tICAg ICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciBtYXNrIHdpdGggOCBgbTE2YCBsYW5lcy4KLS0pOwot LQotLWltcGxfaSEoW2kzMjsgNF06IGkzMng0LCBtMzJ4NCB8IGkzMiwgdTggfCB0ZXN0X3YxMjgg fCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBpOHg0LCB1OHg0LCBpMTZ4NCwgdTE2 eDQgIHwKLS0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggNCBgaTMyYCBsYW5lcy4K LS0pOwotLWltcGxfdSEoW3UzMjsgNF06IHUzMng0LCBtMzJ4NCB8IHUzMiwgdTggfCB0ZXN0X3Yx MjggfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiB1OHg0LCB1MTZ4NCB8Ci0tICAg ICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDQgYHUzMmAgbGFuZXMuCi0tKTsKLS1pbXBs X2YhKFtmMzI7IDRdOiBmMzJ4NCwgbTMyeDQgfCBmMzIgfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgy LCB4MyB8Ci0tICAgICAgICBGcm9tOiBpOHg0LCB1OHg0LCBpMTZ4NCwgdTE2eDQgfAotLSAgICAg ICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA0IGBmMzJgIGxhbmVzLgotLSk7Ci0taW1wbF9t IShbbTMyOyA0XTogbTMyeDQgfCBpMzIsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMg fAotLSAgICAgICAgRnJvbTogbTh4NCwgbTE2eDQsIG02NHg0IHwKLS0gICAgICAgIC8vLyBBIDEy OC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtMzJgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShb aTY0OyAyXTogaTY0eDIsIG02NHgyIHwgaTY0LCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8Ci0t ICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIsIGkzMngyLCB1MzJ4MiB8Ci0t ICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDIgYGk2NGAgbGFuZXMuCi0tKTsKLS1p bXBsX3UhKFt1NjQ7IDJdOiB1NjR4MiwgbTY0eDIgfCB1NjQsIHU4IHwgdGVzdF92MTI4IHwgeDAs IHgxIHwKLS0gICAgICAgIEZyb206IHU4eDIsIHUxNngyLCB1MzJ4MiB8Ci0tICAgICAgICAvLy8g QSAxMjgtYml0IHZlY3RvciB3aXRoIDIgYHU2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX2YhKFtmNjQ7 IDJdOiBmNjR4MiwgbTY0eDIgfCBmNjQgfCB0ZXN0X3YxMjggfCB4MCwgeDEgfAotLSAgICAgICAg RnJvbTogaTh4MiwgdTh4MiwgaTE2eDIsIHUxNngyLCBpMzJ4MiwgdTMyeDIsIGYzMngyIHwKLS0g ICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMiBgZjY0YCBsYW5lcy4KLS0pOwotLWlt cGxfbSEoW202NDsgMl06IG02NHgyIHwgaTY0LCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8Ci0t ICAgICAgICBGcm9tOiBtOHgyLCBtMTZ4MiwgbTMyeDIsIG0xMjh4MiB8Ci0tICAgICAgICAvLy8g QSAxMjgtYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbTY0YCBsYW5lcy4KLS0pOwotLQotLWltcGxf aSEoW2kxMjg7IDFdOiBpMTI4eDEsIG0xMjh4MSB8IGkxMjgsIHU4IHwgdGVzdF92MTI4IHwgeDAg fAotLSAgICAgICAgRnJvbTogLyppOHgxLCB1OHgxLCBpMTZ4MSwgdTE2eDEsIGkzMngxLCB1MzJ4 MSwgaTY0eDEsIHU2NHgxICovIHwgLy8gRklYTUU6IHVuYXJ5IHNtYWxsIHZlY3RvciB0eXBlcwot LSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxIGBpMTI4YCBsYW5lLgotLSk7Ci0t aW1wbF91IShbdTEyODsgMV06IHUxMjh4MSwgbTEyOHgxIHwgdTEyOCwgdTggfCB0ZXN0X3YxMjgg fCB4MCB8Ci0tICAgICAgICBGcm9tOiAvKnU4eDEsIHUxNngxLCB1MzJ4MSwgdTY0eDEgKi8gfCAv LyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9yIHR5cGVzCi0tICAgICAgICAvLy8gQSAxMjgtYml0 IHZlY3RvciB3aXRoIDEgYHUxMjhgIGxhbmUuCi0tKTsKLS1pbXBsX20hKFttMTI4OyAxXTogbTEy OHgxIHwgaTEyOCwgdTggfCB0ZXN0X3YxMjggfCB4MCB8Ci0tICAgICAgICBGcm9tOiAvKm04eDEs IG0xNngxLCBtMzJ4MSwgbTY0eDEgKi8gfCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9yIHR5 cGVzCi0tICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciBtYXNrIHdpdGggMSBgbTEyOGAgbGFu ZS4KLS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Yx Ni5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxNi5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjE2LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92 MTYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE2ICswLDAg QEAKLS0vLyEgMTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tCi0tdXNlIGNyYXRlOjoqOwotLQot LWltcGxfaSEoW2k4OyAyXTogaTh4MiwgbTh4MiB8IGk4LCB1OCB8IHRlc3RfdjE2IHwgeDAsIHgx IHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDE2LWJpdCB2ZWN0b3Igd2l0aCAy IGBpOGAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1ODsgMl06IHU4eDIsIG04eDIgfCB1OCwgdTgg fCB0ZXN0X3YxNiB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSAx Ni1iaXQgdmVjdG9yIHdpdGggMiBgdThgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTg7IDJdOiBt OHgyIHwgaTgsIHU4IHwgdGVzdF92MTYgfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogbTE2eDIs IG0zMngyLCBtNjR4MiwgbTEyOHgyIHwKLS0gICAgICAgIC8vLyBBIDE2LWJpdCB2ZWN0b3IgbWFz ayB3aXRoIDIgYG04YCBsYW5lcy4KLS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy92MjU2LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MjU2LnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy92MjU2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSw4NiArMCwwIEBACi0tLy8hIDI1Ni1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMK LS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxfaSEoW2k4OyAz Ml06IGk4eDMyLCBtOHgzMiB8IGk4LCB1MzIgfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0 LCB4MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywg eDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAotLSAgICAgICAgRnJvbTog fAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAzMiBgaThgIGxhbmVzLgotLSk7 Ci0taW1wbF91IShbdTg7IDMyXTogdTh4MzIsIG04eDMyIHwgdTgsIHUzMiB8IHRlc3RfdjI1NiB8 Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4 MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKLS0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIw LCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSB8 Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDMy IGB1OGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttODsgMzJdOiBtOHgzMiB8IGk4LCB1MzIgfCB0 ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwg eDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4 LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwg eDMwLCB4MzEgfAotLSAgICAgICAgRnJvbTogIHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVj dG9yIG1hc2sgd2l0aCAzMiBgbThgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTE2OyAxNl06 IGkxNngxNiwgbTE2eDE2IHwgaTE2LCB1MTYgfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0 LCB4MTUgfAotLSAgICAgICAgRnJvbTogaTh4MTYsIHU4eDE2IHwKLS0gICAgICAgIC8vLyBBIDI1 Ni1iaXQgdmVjdG9yIHdpdGggMTYgYGkxNmAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1MTY7IDE2 XTogdTE2eDE2LCBtMTZ4MTYgfCB1MTYsIHUxNiB8IHRlc3RfdjI1NiB8Ci0tICAgICAgICB4MCwg eDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4 MTQsIHgxNSB8Ci0tICAgICAgICBGcm9tOiB1OHgxNiB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0 IHZlY3RvciB3aXRoIDE2IGB1MTZgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTE2OyAxNl06IG0x NngxNiB8IGkxNiwgdTE2IHwgdGVzdF92MjU2IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0g ICAgICAgIEZyb206IG04eDE2IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIG1hc2sg d2l0aCAxNiBgbTE2YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2kzMjsgOF06IGkzMng4LCBt MzJ4OCB8IGkzMiwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4Niwg eDcgIHwKLS0gICAgICAgIEZyb206IGk4eDgsIHU4eDgsIGkxNng4LCB1MTZ4OCB8Ci0tICAgICAg ICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDggYGkzMmAgbGFuZXMuCi0tKTsKLS1pbXBsX3Uh KFt1MzI7IDhdOiB1MzJ4OCwgbTMyeDggfCB1MzIsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4 MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IHU4eDgsIHUxNng4IHwKLS0g ICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggOCBgdTMyYCBsYW5lcy4KLS0pOwotLWlt cGxfZiEoW2YzMjsgOF06IGYzMng4LCBtMzJ4OCB8IGYzMiB8IHRlc3RfdjI1NiB8IHgwLCB4MSwg eDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4 OCwgdTE2eDggfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCA4IGBmMzJgIGxh bmVzLgotLSk7Ci0taW1wbF9tIShbbTMyOyA4XTogbTMyeDggfCBpMzIsIHU4IHwgdGVzdF92MjU2 IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IG04eDgs IG0xNng4IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtMzJg IGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTY0OyA0XTogaTY0eDQsIG02NHg0IHwgaTY0LCB1 OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IGk4eDQsIHU4 eDQsIGkxNng0LCB1MTZ4NCwgaTMyeDQsIHUzMng0IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQg dmVjdG9yIHdpdGggNCBgaTY0YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3U2NDsgNF06IHU2NHg0 LCBtNjR4NCB8IHU2NCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAg ICBGcm9tOiB1OHg0LCB1MTZ4NCwgdTMyeDQgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0 b3Igd2l0aCA0IGB1NjRgIGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjY0OyA0XTogZjY0eDQsIG02 NHg0IHwgZjY0IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTog aTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0LCBpMzJ4NCwgdTMyeDQsIGYzMng0IHwKLS0gICAgICAg IC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggNCBgZjY0YCBsYW5lcy4KLS0pOwotLWltcGxfbSEo W202NDsgNF06IG02NHg0IHwgaTY0LCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzIHwK LS0gICAgICAgIEZyb206IG04eDQsIG0xNng0LCBtMzJ4NCB8Ci0tICAgICAgICAvLy8gQSAyNTYt Yml0IHZlY3RvciBtYXNrIHdpdGggNCBgbTY0YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2kx Mjg7IDJdOiBpMTI4eDIsIG0xMjh4MiB8IGkxMjgsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxIHwK LS0gICAgICAgIEZyb206IGk4eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiwgaTMyeDIsIHUzMngyLCBp NjR4MiwgdTY0eDIgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAyIGBpMTI4 YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UxMjg7IDJdOiB1MTI4eDIsIG0xMjh4MiB8IHUxMjgs IHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IHU4eDIsIHUxNngyLCB1 MzJ4MiwgdTY0eDIgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAyIGB1MTI4 YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20xMjg7IDJdOiBtMTI4eDIgfCBpMTI4LCB1OCB8IHRl c3RfdjI1NiB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiBtOHgyLCBtMTZ4MiwgbTMyeDIsIG02 NHgyIHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtMTI4YCBs YW5lcy4KLS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L3YzMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YzMi5ycwotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjMyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy92MzIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI5ICsw LDAgQEAKLS0vLyEgMzItYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tCi0tdXNlIGNyYXRlOjoqOwot LQotLWltcGxfaSEoW2k4OyA0XTogaTh4NCwgbTh4NCB8IGk4LCB1OCB8IHRlc3RfdjMyIHwgeDAs IHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgMzItYml0IHZl Y3RvciB3aXRoIDQgYGk4YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3U4OyA0XTogdTh4NCwgbTh4 NCB8IHU4LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTog fAotLSAgICAgICAgLy8vIEEgMzItYml0IHZlY3RvciB3aXRoIDQgYHU4YCBsYW5lcy4KLS0pOwot LWltcGxfbSEoW204OyA0XTogbTh4NCB8IGk4LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxLCB4Miwg eDMgfAotLSAgICAgICAgRnJvbTogbTE2eDQsIG0zMng0LCBtNjR4NCB8Ci0tICAgICAgICAvLy8g QSAzMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtOGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2kh KFtpMTY7IDJdOiBpMTZ4MiwgbTE2eDIgfCBpMTYsIHU4IHwgdGVzdF92MzIgfCB4MCwgeDEgfAot LSAgICAgICAgRnJvbTogaTh4MiwgdTh4MiB8Ci0tICAgICAgICAvLy8gQSAzMi1iaXQgdmVjdG9y IHdpdGggMiBgaTE2YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UxNjsgMl06IHUxNngyLCBtMTZ4 MiB8IHUxNiwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiB1OHgyIHwK LS0gICAgICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0aCAyIGB1MTZgIGxhbmVzLgotLSk7Ci0t aW1wbF9tIShbbTE2OyAyXTogbTE2eDIgfCBpMTYsIHU4IHwgdGVzdF92MzIgfCB4MCwgeDEgfAot LSAgICAgICAgRnJvbTogbTh4MiwgbTMyeDIsIG02NHgyLCBtMTI4eDIgfAotLSAgICAgICAgLy8v IEEgMzItYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbTE2YCBsYW5lcy4KLS0pOwotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y1MTIucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy92NTEyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw5OSArMCwwIEBACi0tLy8hIDUxMi1i aXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRlOjoq OwotLQotLWltcGxfaSEoW2k4OyA2NF06IGk4eDY0LCBtOHg2NCB8IGk4LCB1NjQgfCB0ZXN0X3Y1 MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgx MCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTks IHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4 MzEsCi0tICAgICAgICB4MzIsIHgzMywgeDM0LCB4MzUsIHgzNiwgeDM3LCB4MzgsIHgzOSwgeDQw LCB4NDEsIHg0MiwgeDQzLCB4NDQsIHg0NSwgeDQ2LCB4NDcsCi0tICAgICAgICB4NDgsIHg0OSwg eDUwLCB4NTEsIHg1MiwgeDUzLCB4NTQsIHg1NSwgeDU2LCB4NTcsIHg1OCwgeDU5LCB4NjAsIHg2 MSwgeDYyLCB4NjMgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2 ZWN0b3Igd2l0aCA2NCBgaThgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTg7IDY0XTogdTh4NjQs IG04eDY0IHwgdTgsIHU2NCB8IHRlc3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4Mywg eDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKLS0g ICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwg eDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSwKLS0gICAgICAgIHgzMiwgeDMzLCB4MzQsIHgz NSwgeDM2LCB4MzcsIHgzOCwgeDM5LCB4NDAsIHg0MSwgeDQyLCB4NDMsIHg0NCwgeDQ1LCB4NDYs IHg0NywKLS0gICAgICAgIHg0OCwgeDQ5LCB4NTAsIHg1MSwgeDUyLCB4NTMsIHg1NCwgeDU1LCB4 NTYsIHg1NywgeDU4LCB4NTksIHg2MCwgeDYxLCB4NjIsIHg2MyB8Ci0tICAgICAgICBGcm9tOiB8 Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDY0IGB1OGAgbGFuZXMuCi0tKTsK LS1pbXBsX20hKFttODsgNjRdOiBtOHg2NCB8IGk4LCB1NjQgfCB0ZXN0X3Y1MTIgfAotLSAgICAg ICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIs IHgxMywgeDE0LCB4MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4 MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEsCi0tICAgICAg ICB4MzIsIHgzMywgeDM0LCB4MzUsIHgzNiwgeDM3LCB4MzgsIHgzOSwgeDQwLCB4NDEsIHg0Miwg eDQzLCB4NDQsIHg0NSwgeDQ2LCB4NDcsCi0tICAgICAgICB4NDgsIHg0OSwgeDUwLCB4NTEsIHg1 MiwgeDUzLCB4NTQsIHg1NSwgeDU2LCB4NTcsIHg1OCwgeDU5LCB4NjAsIHg2MSwgeDYyLCB4NjMg fAotLSAgICAgICAgRnJvbTogIHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sg d2l0aCA2NCBgbThgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTE2OyAzMl06IGkxNngzMiwg bTE2eDMyIHwgaTE2LCB1MzIgfCB0ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMs IHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCi0t ICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUs IHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAotLSAgICAgICAgRnJvbTogaTh4MzIsIHU4 eDMyIHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMzIgYGkxNmAgbGFuZXMu Ci0tKTsKLS1pbXBsX3UhKFt1MTY7IDMyXTogdTE2eDMyLCBtMTZ4MzIgfCB1MTYsIHUzMiB8IHRl c3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4 OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKLS0gICAgICAgIHgxNiwgeDE3LCB4MTgs IHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4 MzAsIHgzMSB8Ci0tICAgICAgICBGcm9tOiB1OHgzMiB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0 IHZlY3RvciB3aXRoIDMyIGB1MTZgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTE2OyAzMl06IG0x NngzMiB8IGkxNiwgdTMyIHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAotLSAg ICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4 MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKLS0gICAgICAgIEZyb206IG04eDMyIHwKLS0g ICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCAzMiBgbTE2YCBsYW5lcy4KLS0p OwotLQotLWltcGxfaSEoW2kzMjsgMTZdOiBpMzJ4MTYsIG0zMngxNiB8IGkzMiwgdTE2IHwgdGVz dF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5 LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0gICAgICAgIEZyb206IGk4eDE2LCB1 OHgxNiwgaTE2eDE2LCB1MTZ4MTYgfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0 aCAxNiBgaTMyYCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UzMjsgMTZdOiB1MzJ4MTYsIG0zMngx NiB8IHUzMiwgdTE2IHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwg eDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0gICAg ICAgIEZyb206IHU4eDE2LCB1MTZ4MTYgfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Ig d2l0aCAxNiBgdTMyYCBsYW5lcy4KLS0pOwotLWltcGxfZiEoW2YzMjsgMTZdOiBmMzJ4MTYsIG0z MngxNiB8IGYzMiB8IHRlc3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1 LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAg ICBGcm9tOiBpOHgxNiwgdTh4MTYsIGkxNngxNiwgdTE2eDE2IHwKLS0gICAgICAgIC8vLyBBIDUx Mi1iaXQgdmVjdG9yIHdpdGggMTYgYGYzMmAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttMzI7IDE2 XTogbTMyeDE2IHwgaTMyLCB1MTYgfCB0ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4Miwg eDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUg fAotLSAgICAgICAgRnJvbTogbTh4MTYsIG0xNngxNiB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0 IHZlY3RvciBtYXNrIHdpdGggMTYgYG0zMmAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpNjQ7 IDhdOiBpNjR4OCwgbTY0eDggfCBpNjQsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMs IHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IGk4eDgsIHU4eDgsIGkxNng4LCB1MTZ4 OCwgaTMyeDgsIHUzMng4IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggOCBg aTY0YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3U2NDsgOF06IHU2NHg4LCBtNjR4OCB8IHU2NCwg dTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAg ICAgRnJvbTogdTh4OCwgdTE2eDgsIHUzMng4IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVj dG9yIHdpdGggOCBgdTY0YCBsYW5lcy4KLS0pOwotLWltcGxfZiEoW2Y2NDsgOF06IGY2NHg4LCBt NjR4OCB8IGY2NCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8 Ci0tICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4OCwgdTE2eDgsIGkzMng4LCB1MzJ4OCwg ZjMyeDggfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA4IGBmNjRgIGxhbmVz LgotLSk7Ci0taW1wbF9tIShbbTY0OyA4XTogbTY0eDggfCBpNjQsIHU4IHwgdGVzdF92NTEyIHwg eDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IG04eDgsIG0x Nng4LCBtMzJ4OCB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggOCBg bTY0YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2kxMjg7IDRdOiBpMTI4eDQsIG0xMjh4NCB8 IGkxMjgsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTog aTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0LCBpMzJ4NCwgdTMyeDQsIGk2NHg0LCB1NjR4NCB8Ci0t ICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDQgYGkxMjhgIGxhbmVzLgotLSk7Ci0t aW1wbF91IShbdTEyODsgNF06IHUxMjh4NCwgbTEyOHg0IHwgdTEyOCwgdTggfCB0ZXN0X3Y1MTIg fCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiB1OHg0LCB1MTZ4NCwgdTMyeDQsIHU2 NHg0IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggNCBgdTEyOGAgbGFuZXMu Ci0tKTsKLS1pbXBsX20hKFttMTI4OyA0XTogbTEyOHg0IHwgaTEyOCwgdTggfCB0ZXN0X3Y1MTIg fCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBtOHg0LCBtMTZ4NCwgbTMyeDQsIG02 NHg0IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtMTI4YCBs YW5lcy4KLS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L3Y2NC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y2NC5ycwotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjY0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy92NjQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY2ICsw LDAgQEAKLS0vLyEgNjQtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tI1tydXN0Zm10Ojpza2lwXQot LQotLXVzZSBzdXBlcjo6KjsKLS0KLS1pbXBsX2khKFtpODsgOF06IGk4eDgsIG04eDggfCBpOCwg dTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAg ICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggOCBgaThgIGxhbmVz LgotLSk7Ci0taW1wbF91IShbdTg7IDhdOiB1OHg4LCBtOHg4IHwgdTgsIHU4IHwgdGVzdF92NjQg fCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogfAotLSAg ICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDggYHU4YCBsYW5lcy4KLS0pOwotLWltcGxf bSEoW204OyA4XTogbTh4OCB8IGk4LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMsIHg0 LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IG0xNng4LCBtMzJ4OCB8Ci0tICAgICAgICAv Ly8gQSA2NC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtOGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBs X2khKFtpMTY7IDRdOiBpMTZ4NCwgbTE2eDQgfCBpMTYsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEs IHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBpOHg0LCB1OHg0IHwKLS0gICAgICAgIC8vLyBBIDY0 LWJpdCB2ZWN0b3Igd2l0aCA0IGBpMTZgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTE2OyA0XTog dTE2eDQsIG0xNng0IHwgdTE2LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAg ICAgICAgRnJvbTogdTh4NCB8Ci0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggNCBg dTE2YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20xNjsgNF06IG0xNng0IHwgaTE2LCB1OCB8IHRl c3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogbTh4NCwgbTMyeDQsIG02 NHg0IHwKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG0xNmAgbGFu ZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMzI7IDJdOiBpMzJ4MiwgbTMyeDIgfCBpMzIsIHU4IHwg dGVzdF92NjQgfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogaTh4MiwgdTh4MiwgaTE2eDIsIHUx NngyIHwKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAyIGBpMzJgIGxhbmVzLgot LSk7Ci0taW1wbF91IShbdTMyOyAyXTogdTMyeDIsIG0zMngyIHwgdTMyLCB1OCB8IHRlc3RfdjY0 IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IHU4eDIsIHUxNngyIHwKLS0gICAgICAgIC8vLyBB IDY0LWJpdCB2ZWN0b3Igd2l0aCAyIGB1MzJgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTMyOyAy XTogbTMyeDIgfCBpMzIsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTog bTh4MiwgbTE2eDIsIG02NHgyLCBtMTI4eDIgfAotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3Rv ciBtYXNrIHdpdGggMiBgbTMyYCBsYW5lcy4KLS0pOwotLWltcGxfZiEoW2YzMjsgMl06IGYzMngy LCBtMzJ4MiB8IGYzMiB8IHRlc3RfdjY0IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IGk4eDIs IHU4eDIsIGkxNngyLCB1MTZ4MiB8Ci0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGgg MiBgZjMyYCBsYW5lcy4KLS0pOwotLQotLS8qCi0taW1wbF9pIShbaTY0OyAxXTogaTY0eDEsIG02 NHgxIHwgaTY0LCB1OCB8IHRlc3RfdjY0IHwgeDAgfAotLSAgICAgICAgRnJvbTogLyppOHgxLCB1 OHgxLCBpMTZ4MSwgdTE2eDEsIGkzMngxLCB1MzJ4MSovIHwgIC8vIEZJWE1FOiBwcmltaXRpdmUg dG8gdmVjdG9yIGNvbnZlcnNpb24KLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAx IGBpNjRgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTY0OyAxXTogdTY0eDEsIG02NHgxIHwgdTY0 LCB1OCB8IHRlc3RfdjY0IHwgeDAgfAotLSAgICAgICAgRnJvbTogLyp1OHgxLCB1MTZ4MSwgdTMy eDEqLyB8IC8vIEZJWE1FOiBwcmltaXRpdmUgdG8gdmVjdG9yIGNvbnZlcnNpb24KLS0gICAgICAg IC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAxIGB1NjRgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShb bTY0OyAxXTogbTY0eDEgfCBpNjQsIHU4IHwgdGVzdF92NjQgfCB4MCB8Ci0tICAgICAgICBGcm9t OiAvKm04eDEsIG0xNngxLCBtMzJ4MSwgKi8gbTEyOHgxIHwgLy8gRklYTUU6IHVuYXJ5IHNtYWxs IHZlY3RvciB0eXBlcwotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciBtYXNrIHdpdGggMSBg bTY0YCBsYW5lcy4KLS0pOwotLWltcGxfZiEoW2Y2NDsgMV06IGY2NHgxLCBtNjR4MSB8IGY2NCB8 IHRlc3RfdjY0IHwgeDAgfAotLSAgICAgICAgRnJvbTogLyppOHgxLCB1OHgxLCBpMTZ4MSwgdTE2 eDEsIGkzMngxLCB1MzJ4MSwgZjMyeDEqLyB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3Ig dHlwZXMKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAxIGBmNjRgIGxhbmVzLgot LSk7Ci0tKi8KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92 UHRyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlB0ci5ycwotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlB0ci5ycwkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvdlB0ci5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzQg KzAsMCBAQAotLS8vISBWZWN0b3JzIG9mIHBvaW50ZXJzCi0tI1tydXN0Zm10Ojpza2lwXQotLQot LXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2NvbnN0X3AhKAotLSAgICBbKmNvbnN0IFQ7IDJdOiBj cHRyeDIsIG1zaXpleDIsIHVzaXpleDIsIGlzaXpleDIgfCB0ZXN0X3YxMjggfCB4MCwgeDEgfCBG cm9tOiB8Ci0tICAgIC8vLyBBIHZlY3RvciB3aXRoIDIgYCpjb25zdCBUYCBsYW5lcwotLSk7Ci0t Ci0taW1wbF9tdXRfcCEoCi0tICAgIFsqbXV0IFQ7IDJdOiBtcHRyeDIsIG1zaXpleDIsIHVzaXpl eDIsIGlzaXpleDIgfCB0ZXN0X3YxMjggfCB4MCwgeDEgfCBGcm9tOiB8Ci0tICAgIC8vLyBBIHZl Y3RvciB3aXRoIDIgYCptdXQgVGAgbGFuZXMKLS0pOwotLQotLWltcGxfY29uc3RfcCEoCi0tICAg IFsqY29uc3QgVDsgNF06IGNwdHJ4NCwgbXNpemV4NCwgdXNpemV4NCwgaXNpemV4NCB8IHRlc3Rf djI1NiB8IHgwLCB4MSwgeDIsIHgzIHwgRnJvbTogfAotLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0 IGAqY29uc3QgVGAgbGFuZXMKLS0pOwotLQotLWltcGxfbXV0X3AhKAotLSAgICBbKm11dCBUOyA0 XTogbXB0cng0LCBtc2l6ZXg0LCB1c2l6ZXg0LCBpc2l6ZXg0IHwgdGVzdF92MjU2IHwgeDAsIHgx LCB4MiwgeDMgfCBGcm9tOiB8Ci0tICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYCptdXQgVGAgbGFu ZXMKLS0pOwotLQotLWltcGxfY29uc3RfcCEoCi0tICAgIFsqY29uc3QgVDsgOF06IGNwdHJ4OCwg bXNpemV4OCwgdXNpemV4OCwgaXNpemV4OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NyB8IEZyb206IHwKLS0gICAgLy8vIEEgdmVjdG9yIHdpdGggOCBgKmNvbnN0 IFRgIGxhbmVzCi0tKTsKLS0KLS1pbXBsX211dF9wISgKLS0gICAgWyptdXQgVDsgOF06IG1wdHJ4 OCwgbXNpemV4OCwgdXNpemV4OCwgaXNpemV4OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgz LCB4NCwgeDUsIHg2LCB4NyB8IEZyb206IHwKLS0gICAgLy8vIEEgdmVjdG9yIHdpdGggOCBgKm11 dCBUYCBsYW5lcwotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvdlNpemUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92U2l6ZS5y cwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlNpemUucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL3ZTaXplLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSw1MyArMCwwIEBACi0tLy8hIFZlY3RvcnMgd2l0aCBwb2ludGVyLXNpemVkIGVsZW1l bnRzCi0tCi0tdXNlIGNyYXRlOjpjb2RlZ2VuOjpwb2ludGVyX3NpemVkX2ludDo6e2lzaXplXywg dXNpemVffTsKLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9pIShbaXNpemU7IDJdOiBpc2l6ZXgy LCBtc2l6ZXgyIHwgaXNpemVfLCB1OCB8IHRlc3RfdjEyOCB8Ci0tICAgICAgICB4MCwgeDF8Ci0t ICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0aCAyIGBpc2l6ZWAgbGFu ZXMuCi0tKTsKLS0KLS1pbXBsX3UhKFt1c2l6ZTsgMl06IHVzaXpleDIsIG1zaXpleDIgfCB1c2l6 ZV8sIHU4IHwgdGVzdF92MTI4IHwKLS0gICAgICAgIHgwLCB4MXwKLS0gICAgICAgIEZyb206IHwK LS0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDIgYHVzaXplYCBsYW5lcy4KLS0pOwotLWltcGxf bSEoW21zaXplOyAyXTogbXNpemV4MiB8IGlzaXplXywgdTggfCB0ZXN0X3YxMjggfAotLSAgICAg ICAgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIHZlY3RvciBtYXNr IHdpdGggMiBgbXNpemVgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaXNpemU7IDRdOiBpc2l6 ZXg0LCBtc2l6ZXg0IHwgaXNpemVfLCB1OCB8IHRlc3RfdjI1NiB8Ci0tICAgICAgICB4MCwgeDEs IHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0 IGBpc2l6ZWAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1c2l6ZTsgNF06IHVzaXpleDQsIG1zaXpl eDQgfCB1c2l6ZV8sIHU4IHwgdGVzdF92MjU2IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzfAot LSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgdXNpemVgIGxh bmVzLgotLSk7Ci0taW1wbF9tIShbbXNpemU7IDRdOiBtc2l6ZXg0IHwgaXNpemVfLCB1OCB8IHRl c3RfdjI1NiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiB8Ci0t ICAgICAgICAvLy8gQSB2ZWN0b3IgbWFzayB3aXRoIDQgYG1zaXplYCBsYW5lcy4KLS0pOwotLQot LWltcGxfaSEoW2lzaXplOyA4XTogaXNpemV4OCwgbXNpemV4OCB8IGlzaXplXywgdTggfCB0ZXN0 X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAg ICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDggYGlzaXplYCBsYW5lcy4K LS0pOwotLWltcGxfdSEoW3VzaXplOyA4XTogdXNpemV4OCwgbXNpemV4OCB8IHVzaXplXywgdTgg fCB0ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwK LS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDggYHVzaXplYCBs YW5lcy4KLS0pOwotLWltcGxfbSEoW21zaXplOyA4XTogbXNpemV4OCB8IGlzaXplXywgdTggfCB0 ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0g ICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIHZlY3RvciBtYXNrIHdpdGggOCBgbXNpemVg IGxhbmVzLgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC90 ZXN0cy9lbmRpYW5uZXNzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC90ZXN0cy9l bmRpYW5uZXNzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Rlc3RzL2Vu ZGlhbm5lc3MucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFubmVzcy5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjY4ICswLDAgQEAKLS0jW2NmZyh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKV0KLS11c2Ugd2FzbV9iaW5kZ2VuX3Rlc3Q6Oio7Ci0tCi0tdXNl IHBhY2tlZF9zaW1kOjoqOwotLXVzZSBzdGQ6OnttZW0sIHNsaWNlfTsKLS0KLS0jW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tZm4gZW5kaWFuX2luZGV4aW5n KCkgewotLSAgICBsZXQgdiA9IGkzMng0OjpuZXcoMCwgMSwgMiwgMyk7Ci0tICAgIGFzc2VydF9l cSEodi5leHRyYWN0KDApLCAwKTsKLS0gICAgYXNzZXJ0X2VxISh2LmV4dHJhY3QoMSksIDEpOwot LSAgICBhc3NlcnRfZXEhKHYuZXh0cmFjdCgyKSwgMik7Ci0tICAgIGFzc2VydF9lcSEodi5leHRy YWN0KDMpLCAzKTsKLS19Ci0tCi0tI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQotLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLWZuIGVuZGlhbl9iaXRjYXN0cygpIHsKLS0gICAgI1tydXN0Zm10Ojpza2lw XQotLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCi0tICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2 LCA3LAotLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKLS0gICAgKTsKLS0g ICAgbGV0IHQ6IGkxNng4ID0gdW5zYWZlIHsgbWVtOjp0cmFuc211dGUoeCkgfTsKLS0gICAgbGV0 IGU6IGkxNng4ID0gaWYgY2ZnISh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKLS0gICAgICAg IGkxNng4OjpuZXcoMjU2LCA3NzAsIDEyODQsIDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAsIDM4NTQp Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBpMTZ4ODo6bmV3KDEsIDUxNSwgMTAyOSwgMTU0Mywg MjA1NywgMjU3MSwgMzA4NSwgMzU5OSkKLS0gICAgfTsKLS0gICAgYXNzZXJ0X2VxISh0LCBlKTsK LS19Ci0tCi0tI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQot LSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LWZuIGVuZGlhbl9jYXN0cygpIHsKLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBsZXQgeCA9 IGk4eDE2OjpuZXcoCi0tICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAgICAgICAg OCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKLS0gICAgKTsKLS0gICAgbGV0IHQ6IGkxNngx NiA9IHguaW50bygpOyAvLyBzaW1kX2Nhc3QKLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBs ZXQgZSA9IGkxNngxNjo6bmV3KAotLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0g ICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGFzc2Vy dF9lcSEodCwgZSk7Ci0tfQotLQotLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KLS0jW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS1mbiBlbmRpYW5fbG9hZF9hbmRfc3RvcmVzKCkgewotLSAgICAjW3J1c3Rm bXQ6OnNraXBdCi0tICAgIGxldCB4ID0gaTh4MTY6Om5ldygKLS0gICAgICAgIDAsIDEsIDIsIDMs IDQsIDUsIDYsIDcsCi0tICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAg ICApOwotLSAgICBsZXQgbXV0IHk6IFtpMTY7IDhdID0gWzA7IDhdOwotLSAgICB4LndyaXRlX3Rv X3NsaWNlX3VuYWxpZ25lZCh1bnNhZmUgeyBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KCZtdXQg eSBhcyAqbXV0IF8gYXMgKm11dCBpOCwgMTYpIH0pOwotLQotLSAgICBsZXQgZTogW2kxNjsgOF0g PSBpZiBjZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikgewotLSAgICAgICAgWzI1NiwgNzcw LCAxMjg0LCAxNzk4LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0XQotLSAgICB9IGVsc2UgewotLSAg ICAgICAgWzEsIDUxNSwgMTAyOSwgMTU0MywgMjA1NywgMjU3MSwgMzA4NSwgMzU5OV0KLS0gICAg fTsKLS0gICAgYXNzZXJ0X2VxISh5LCBlKTsKLS0KLS0gICAgbGV0IHogPSBpOHgxNjo6ZnJvbV9z bGljZV91bmFsaWduZWQodW5zYWZlIHsgc2xpY2U6OmZyb21fcmF3X3BhcnRzKCZ5IGFzICpjb25z dCBfIGFzICpjb25zdCBpOCwgMTYpIH0pOwotLSAgICBhc3NlcnRfZXEhKHosIHgpOwotLX0KLS0K LS0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tZm4gZW5k aWFuX2FycmF5X3VuaW9uKCkgewotLSAgICB1bmlvbiBBIHsKLS0gICAgICAgIGRhdGE6IFtmMzI7 IDRdLAotLSAgICAgICAgdmVjOiBmMzJ4NCwKLS0gICAgfQotLSAgICBsZXQgeDogW2YzMjsgNF0g PSB1bnNhZmUgeyBBIHsgdmVjOiBmMzJ4NDo6bmV3KDAuLCAxLiwgMi4sIDMuKSB9LmRhdGEgfTsK LS0gICAgLy8gQXMgYWxsIG9mIHRoZXNlIGFyZSBpbnRlZ2VyIHZhbHVlcyB3aXRoaW4gdGhlIG1h bnRpc3NhXjEgcmFuZ2UsIGl0Ci0tICAgIC8vIHdvdWxkIGJlIHZlcnkgdW51c3VhbCBmb3IgdGhl bSB0byBhY3R1YWxseSBmYWlsIHRvIGNvbXBhcmUuCi0tICAgICNbYWxsb3coY2xpcHB5OjpmbG9h dF9jbXApXQotLSAgICB7Ci0tICAgICAgICBhc3NlcnRfZXEhKHhbMF0sIDBfZjMyKTsKLS0gICAg ICAgIGFzc2VydF9lcSEoeFsxXSwgMV9mMzIpOwotLSAgICAgICAgYXNzZXJ0X2VxISh4WzJdLCAy X2YzMik7Ci0tICAgICAgICBhc3NlcnRfZXEhKHhbM10sIDNfZjMyKTsKLS0gICAgfQotLSAgICBs ZXQgeTogZjMyeDQgPSB1bnNhZmUgeyBBIHsgZGF0YTogWzMuLCAyLiwgMS4sIDAuXSB9LnZlYyB9 OwotLSAgICBhc3NlcnRfZXEhKHksIGYzMng0OjpuZXcoMy4sIDIuLCAxLiwgMC4pKTsKLS0KLS0g ICAgdW5pb24gQiB7Ci0tICAgICAgICBkYXRhOiBbaTg7IDE2XSwKLS0gICAgICAgIHZlYzogaTh4 MTYsCi0tICAgIH0KLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBsZXQgeCA9IGk4eDE2Ojpu ZXcoCi0tICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAgICAgICAgOCwgOSwgMTAs IDExLCAxMiwgMTMsIDE0LCAxNSwKLS0gICAgKTsKLS0gICAgbGV0IHg6IFtpODsgMTZdID0gdW5z YWZlIHsgQiB7IHZlYzogeCB9LmRhdGEgfTsKLS0KLS0gICAgZm9yIChpLCB2KSBpbiB4Lml0ZXIo KS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICBhc3NlcnRfZXEhKGkgYXMgaTgsICp2KTsKLS0gICAg fQotLQotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCB5ID0gWwotLSAgICAgICAgMTUs IDE0LCAxMywgMTIsIDExLCAxOSwgOSwgOCwKLS0gICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEs IDAKLS0gICAgXTsKLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBsZXQgZSA9IGk4eDE2Ojpu ZXcoCi0tICAgICAgICAxNSwgMTQsIDEzLCAxMiwgMTEsIDE5LCA5LCA4LAotLSAgICAgICAgNywg NiwgNSwgNCwgMywgMiwgMSwgMAotLSAgICApOwotLSAgICBsZXQgeiA9IHVuc2FmZSB7IEIgeyBk YXRhOiB5IH0udmVjIH07Ci0tICAgIGFzc2VydF9lcSEoeiwgZSk7Ci0tCi0tICAgIHVuaW9uIEMg ewotLSAgICAgICAgZGF0YTogW2kxNjsgOF0sCi0tICAgICAgICB2ZWM6IGk4eDE2LAotLSAgICB9 Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAotLSAgICAg ICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEz LCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB4OiBbaTE2OyA4XSA9IHVuc2FmZSB7IEMgeyB2 ZWM6IHggfS5kYXRhIH07Ci0tCi0tICAgIGxldCBlOiBbaTE2OyA4XSA9IGlmIGNmZyEodGFyZ2V0 X2VuZGlhbiA9ICJsaXR0bGUiKSB7Ci0tICAgICAgICBbMjU2LCA3NzAsIDEyODQsIDE3OTgsIDIz MTIsIDI4MjYsIDMzNDAsIDM4NTRdCi0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBbMSwgNTE1LCAx MDI5LCAxNTQzLCAyMDU3LCAyNTcxLCAzMDg1LCAzNTk5XQotLSAgICB9OwotLSAgICBhc3NlcnRf ZXEhKHgsIGUpOwotLX0KLS0KLS0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldCi0tI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCi0tZm4gZW5kaWFuX3R1cGxlX2FjY2VzcygpIHsKLS0gICAgdHlwZSBGMzJ4NFQg PSAoZjMyLCBmMzIsIGYzMiwgZjMyKTsKLS0gICAgdW5pb24gQSB7Ci0tICAgICAgICBkYXRhOiBG MzJ4NFQsCi0tICAgICAgICB2ZWM6IGYzMng0LAotLSAgICB9Ci0tICAgIGxldCB4OiBGMzJ4NFQg PSB1bnNhZmUgeyBBIHsgdmVjOiBmMzJ4NDo6bmV3KDAuLCAxLiwgMi4sIDMuKSB9LmRhdGEgfTsK LS0gICAgLy8gQXMgYWxsIG9mIHRoZXNlIGFyZSBpbnRlZ2VyIHZhbHVlcyB3aXRoaW4gdGhlIG1h bnRpc3NhXjEgcmFuZ2UsIGl0Ci0tICAgIC8vIHdvdWxkIGJlIHZlcnkgdW51c3VhbCBmb3IgdGhl bSB0byBhY3R1YWxseSBmYWlsIHRvIGNvbXBhcmUuCi0tICAgICNbYWxsb3coY2xpcHB5OjpmbG9h dF9jbXApXQotLSAgICB7Ci0tICAgICAgICBhc3NlcnRfZXEhKHguMCwgMF9mMzIpOwotLSAgICAg ICAgYXNzZXJ0X2VxISh4LjEsIDFfZjMyKTsKLS0gICAgICAgIGFzc2VydF9lcSEoeC4yLCAyX2Yz Mik7Ci0tICAgICAgICBhc3NlcnRfZXEhKHguMywgM19mMzIpOwotLSAgICB9Ci0tICAgIGxldCB5 OiBmMzJ4NCA9IHVuc2FmZSB7IEEgeyBkYXRhOiAoMy4sIDIuLCAxLiwgMC4pIH0udmVjIH07Ci0t ICAgIGFzc2VydF9lcSEoeSwgZjMyeDQ6Om5ldygzLiwgMi4sIDEuLCAwLikpOwotLQotLSAgICAj W3J1c3RmbXQ6OnNraXBdCi0tICAgIHR5cGUgSTh4MTZUID0gKGk4LCBpOCwgaTgsIGk4LCBpOCwg aTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4KTsKLS0gICAgdW5pb24g QiB7Ci0tICAgICAgICBkYXRhOiBJOHgxNlQsCi0tICAgICAgICB2ZWM6IGk4eDE2LAotLSAgICB9 Ci0tCi0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAotLSAg ICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIs IDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB4OiBJOHgxNlQgPSB1bnNhZmUgeyBCIHsg dmVjOiB4IH0uZGF0YSB9OwotLQotLSAgICBhc3NlcnRfZXEhKHguMCwgMCk7Ci0tICAgIGFzc2Vy dF9lcSEoeC4xLCAxKTsKLS0gICAgYXNzZXJ0X2VxISh4LjIsIDIpOwotLSAgICBhc3NlcnRfZXEh KHguMywgMyk7Ci0tICAgIGFzc2VydF9lcSEoeC40LCA0KTsKLS0gICAgYXNzZXJ0X2VxISh4LjUs IDUpOwotLSAgICBhc3NlcnRfZXEhKHguNiwgNik7Ci0tICAgIGFzc2VydF9lcSEoeC43LCA3KTsK LS0gICAgYXNzZXJ0X2VxISh4LjgsIDgpOwotLSAgICBhc3NlcnRfZXEhKHguOSwgOSk7Ci0tICAg IGFzc2VydF9lcSEoeC4xMCwgMTApOwotLSAgICBhc3NlcnRfZXEhKHguMTEsIDExKTsKLS0gICAg YXNzZXJ0X2VxISh4LjEyLCAxMik7Ci0tICAgIGFzc2VydF9lcSEoeC4xMywgMTMpOwotLSAgICBh c3NlcnRfZXEhKHguMTQsIDE0KTsKLS0gICAgYXNzZXJ0X2VxISh4LjE1LCAxNSk7Ci0tCi0tICAg ICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHkgPSAoCi0tICAgICAgICAxNSwgMTQsIDEzLCAx MiwgMTEsIDEwLCA5LCA4LAotLSAgICAgICAgNywgNiwgNSwgNCwgMywgMiwgMSwgMAotLSAgICAp OwotLSAgICBsZXQgejogaTh4MTYgPSB1bnNhZmUgeyBCIHsgZGF0YTogeSB9LnZlYyB9OwotLSAg ICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCBlID0gaTh4MTY6Om5ldygKLS0gICAgICAgIDE1 LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCi0tICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAx LCAwCi0tICAgICk7Ci0tICAgIGFzc2VydF9lcSEoZSwgeik7Ci0tCi0tICAgICNbcnVzdGZtdDo6 c2tpcF0KLS0gICAgdHlwZSBJMTZ4OFQgPSAoaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwg aTE2LCBpMTYpOwotLSAgICB1bmlvbiBDIHsKLS0gICAgICAgIGRhdGE6IEkxNng4VCwKLS0gICAg ICAgIHZlYzogaTh4MTYsCi0tICAgIH0KLS0KLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBs ZXQgeCA9IGk4eDE2OjpuZXcoCi0tICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAg ICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKLS0gICAgKTsKLS0gICAgbGV0IHg6 IEkxNng4VCA9IHVuc2FmZSB7IEMgeyB2ZWM6IHggfS5kYXRhIH07Ci0tCi0tICAgIGxldCBlOiBb aTE2OyA4XSA9IGlmIGNmZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7Ci0tICAgICAgICBb MjU2LCA3NzAsIDEyODQsIDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAsIDM4NTRdCi0tICAgIH0gZWxz ZSB7Ci0tICAgICAgICBbMSwgNTE1LCAxMDI5LCAxNTQzLCAyMDU3LCAyNTcxLCAzMDg1LCAzNTk5 XQotLSAgICB9OwotLSAgICBhc3NlcnRfZXEhKHguMCwgZVswXSk7Ci0tICAgIGFzc2VydF9lcSEo eC4xLCBlWzFdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjIsIGVbMl0pOwotLSAgICBhc3NlcnRfZXEh KHguMywgZVszXSk7Ci0tICAgIGFzc2VydF9lcSEoeC40LCBlWzRdKTsKLS0gICAgYXNzZXJ0X2Vx ISh4LjUsIGVbNV0pOwotLSAgICBhc3NlcnRfZXEhKHguNiwgZVs2XSk7Ci0tICAgIGFzc2VydF9l cSEoeC43LCBlWzddKTsKLS0KLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICAjW3JlcHIoQyld Ci0tICAgICNbZGVyaXZlKENvcHkgLENsb25lKV0KLS0gICAgcHViIHN0cnVjdCBUdXAocHViIGk4 LCBwdWIgaTgsIHB1YiBpMTYsIHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2LAotLSAgICAgICAgICAg ICAgICAgICBwdWIgaTgsIHB1YiBpOCwgcHViIGkxNiwgcHViIGk4LCBwdWIgaTgsIHB1YiBpMTYp OwotLQotLSAgICB1bmlvbiBEIHsKLS0gICAgICAgIGRhdGE6IFR1cCwKLS0gICAgICAgIHZlYzog aTh4MTYsCi0tICAgIH0KLS0KLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBsZXQgeCA9IGk4 eDE2OjpuZXcoCi0tICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAgICAgICAgOCwg OSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKLS0gICAgKTsKLS0gICAgbGV0IHg6IFR1cCA9IHVu c2FmZSB7IEQgeyB2ZWM6IHggfS5kYXRhIH07Ci0tCi0tICAgIGxldCBlOiBbaTE2OyAxMl0gPSBp ZiBjZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikgewotLSAgICAgICAgWzAsIDEsIDc3MCwg NCwgNSwgMTc5OCwgOCwgOSwgMjgyNiwgMTIsIDEzLCAzODU0XQotLSAgICB9IGVsc2UgewotLSAg ICAgICAgWzAsIDEsIDUxNSwgNCwgNSwgMTU0MywgOCwgOSwgMjU3MSwgMTIsIDEzLCAzNTk5XQot LSAgICB9OwotLSAgICBhc3NlcnRfZXEhKHguMCBhcyBpMTYsIGVbMF0pOwotLSAgICBhc3NlcnRf ZXEhKHguMSBhcyBpMTYsIGVbMV0pOwotLSAgICBhc3NlcnRfZXEhKHguMiBhcyBpMTYsIGVbMl0p OwotLSAgICBhc3NlcnRfZXEhKHguMyBhcyBpMTYsIGVbM10pOwotLSAgICBhc3NlcnRfZXEhKHgu NCBhcyBpMTYsIGVbNF0pOwotLSAgICBhc3NlcnRfZXEhKHguNSBhcyBpMTYsIGVbNV0pOwotLSAg ICBhc3NlcnRfZXEhKHguNiBhcyBpMTYsIGVbNl0pOwotLSAgICBhc3NlcnRfZXEhKHguNyBhcyBp MTYsIGVbN10pOwotLSAgICBhc3NlcnRfZXEhKHguOCBhcyBpMTYsIGVbOF0pOwotLSAgICBhc3Nl cnRfZXEhKHguOSBhcyBpMTYsIGVbOV0pOwotLSAgICBhc3NlcnRfZXEhKHguMTAgYXMgaTE2LCBl WzEwXSk7Ci0tICAgIGFzc2VydF9lcSEoeC4xMSBhcyBpMTYsIGVbMTFdKTsKLS19Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29u IGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svLmNhcmdvLWNoZWNrc3VtLmpzb24J MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvdmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNvbgkyMDI1LTA5LTE3IDE3OjQxOjQ3 LjUwNTc5NTU5OCArMDMwMAotQEAgLTAsMCArMSBAQAotK3siZmlsZXMiOnsiQ2FyZ28udG9tbCI6 ImYyNWQ4ODA0NDkxNGNiMzQ2NmRmNDNiYzM5YTE5OWUxNTg5ZGRhMWFhZDMyMjZjOWM3ZTdhYzRk MmY4NzUxZDAiLCJMSUNFTlNFLUFQQUNIRSI6ImE2MGVlYTgxNzUxNDUzMTY2OGQ3ZTAwNzY1NzMx NDQ5ZmUxNGQwNTlkMzI0OWUwYmM5M2IzNmRlNDVmNzU5ZjIiLCJMSUNFTlNFLU1JVCI6ImI3ZTY1 MGYzZmNlNWM1MzI0OWQxY2RjNjA4YjU0ZGYxNTZhOTdlZGQ2MzZjZjlkMjM0OThkMGNmZTdhZWM2 M2UiLCJSRUFETUUubWQiOiJhYzJhMGEzNjA4MTI0MzZiZDU3OThmNWZlMmFmZmU3ZDZlZDllYjdm MTVkNmU0ZDczOTMxZTk1YjQzNzU2MGYyIiwic3JjL2NoYW5uZWwucnMiOiJkMjQ0M2Q1MDNkNGNj NDY5YTE3MWE1MWEyNmVjYTNlYzBkMmE1OGI1ZjczNzVhODQ1NDJjMzZmMTQyMTc2NmE4Iiwic3Jj L2RhdGUucnMiOiIwOTU4MGEwYTIwMDhmYWQyY2NiYzQzZmI0MmE4OGY0MjIyMWI5OGIwMTY5Mjcw MjAyMmEyOTZkYzljODZiZjM3Iiwic3JjL2xpYi5ycyI6Ijc2MGYwZDI5NTY3ZWNhYTYxMjg3MDg4 Y2YyM2NmNzRiM2MwZWZiYmNkMzA3N2NlYTVmYjdjODgzNTllOTZjN2UiLCJzcmMvdmVyc2lvbi5y cyI6ImRiYTE4YTI1OTgzZWM2ZTM3Yjk1MmY0Y2RjNTIxOWM5ZTVhYmJhMmMzYTc2Y2VmODc0NjVl MWZiYTZmOGFjODkifSwicGFja2FnZSI6IjQ5ODc0YjUxNjdiNjVkNzE5M2I4YWJhMTU2N2Y1Yzdk OTNkMDAxY2FmYzM0NjAwY2VlMDAzZWRhNzg3ZTQ4M2YifQotXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0Nhcmdv LnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svQ2FyZ28udG9tbAotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0NhcmdvLnRvbWwJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVj ay9DYXJnby50b21sCTIwMjUtMDktMTcgMTc6NDE6NDcuNTA1Nzk1NTk4ICswMzAwCi1AQCAtMCww ICsxLDI0IEBACi0rIyBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQgQlkgQ0FS R08KLSsjCi0rIyBXaGVuIHVwbG9hZGluZyBjcmF0ZXMgdG8gdGhlIHJlZ2lzdHJ5IENhcmdvIHdp bGwgYXV0b21hdGljYWxseQotKyMgIm5vcm1hbGl6ZSIgQ2FyZ28udG9tbCBmaWxlcyBmb3IgbWF4 aW1hbCBjb21wYXRpYmlsaXR5Ci0rIyB3aXRoIGFsbCB2ZXJzaW9ucyBvZiBDYXJnbyBhbmQgYWxz byByZXdyaXRlIGBwYXRoYCBkZXBlbmRlbmNpZXMKLSsjIHRvIHJlZ2lzdHJ5IChlLmcuLCBjcmF0 ZXMuaW8pIGRlcGVuZGVuY2llcy4KLSsjCi0rIyBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxl IGJlIGF3YXJlIHRoYXQgdGhlIG9yaWdpbmFsIENhcmdvLnRvbWwKLSsjIHdpbGwgbGlrZWx5IGxv b2sgdmVyeSBkaWZmZXJlbnQgKGFuZCBtdWNoIG1vcmUgcmVhc29uYWJsZSkuCi0rIyBTZWUgQ2Fy Z28udG9tbC5vcmlnIGZvciB0aGUgb3JpZ2luYWwgY29udGVudHMuCi0rCi0rW3BhY2thZ2VdCi0r bmFtZSA9ICJ2ZXJzaW9uX2NoZWNrIgotK3ZlcnNpb24gPSAiMC45LjQiCi0rYXV0aG9ycyA9IFsi U2VyZ2lvIEJlbml0ZXogPHNiQHNlcmdpby5iej4iXQotK2V4Y2x1ZGUgPSBbInN0YXRpYyJdCi0r ZGVzY3JpcHRpb24gPSAiVGlueSBjcmF0ZSB0byBjaGVjayB0aGUgdmVyc2lvbiBvZiB0aGUgaW5z dGFsbGVkL3J1bm5pbmcgcnVzdGMuIgotK2RvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2NzLnJz L3ZlcnNpb25fY2hlY2svIgotK3JlYWRtZSA9ICJSRUFETUUubWQiCi0ra2V5d29yZHMgPSBbInZl cnNpb24iLCAicnVzdGMiLCAibWluaW11bSIsICJjaGVjayJdCi0rbGljZW5zZSA9ICJNSVQvQXBh Y2hlLTIuMCIKLStyZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6 L3ZlcnNpb25fY2hlY2siCi0rCi0rW2RlcGVuZGVuY2llc10KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1BUEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0 L3ZlcnNpb25fY2hlY2svTElDRU5TRS1BUEFDSEUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVy c2lvbl9jaGVjay9MSUNFTlNFLUFQQUNIRQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtQVBBQ0hF CTIwMjUtMDktMTcgMTc6NDE6NDcuNTA1Nzk1NTk4ICswMzAwCi1AQCAtMCwwICsxLDIwMSBAQAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCi0rICAgICAgICAg ICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAotKyAgICAgICAgICAgICAg ICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KLSsKLStURVJNUyBBTkQgQ09O RElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KLSsKLSsxLiBE ZWZpbml0aW9ucy4KLSsKLSsgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNv bmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAotKyAgIGFuZCBkaXN0cmlidXRpb24gYXMg ZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgotKwotKyAg ICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRo b3JpemVkIGJ5Ci0rICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBM aWNlbnNlLgotKwotKyAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRo ZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKLSsgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2ws IGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCi0rICAgY29udHJvbCB3aXRo IHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKLSsgICAi Y29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVz ZSB0aGUKLSsgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhl ciBieSBjb250cmFjdCBvcgotKyAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlm dHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQotKyAgIG91dHN0YW5kaW5nIHNoYXJlcywg b3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCi0rCi0rICAgIllv dSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQot KyAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCi0rCi0r ICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5n IG1vZGlmaWNhdGlvbnMsCi0rICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2Fy ZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgotKyAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRp b24gZmlsZXMuCi0rCi0rICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3Vs dGluZyBmcm9tIG1lY2hhbmljYWwKLSsgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBv ZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0Ci0rICAgbm90IGxpbWl0ZWQgdG8gY29tcGls ZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAotKyAgIGFuZCBjb252ZXJz aW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KLSsKLSsgICAiV29yayIgc2hhbGwgbWVhbiB0aGUg d29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgotKyAgIE9iamVjdCBmb3Jt LCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKLSsg ICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhl IHdvcmsKLSsgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cp LgotKwotKyAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVy IGluIFNvdXJjZSBvciBPYmplY3QKLSsgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJp dmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCi0rICAgZWRpdG9yaWFsIHJldmlz aW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwot KyAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlw LiBGb3IgdGhlIHB1cnBvc2VzCi0rICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtz IHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCi0rICAgc2VwYXJhYmxlIGZyb20s IG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAot KyAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCi0rCi0rICAgIkNvbnRy aWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKLSsg ICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMg b3IgYWRkaXRpb25zCi0rICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVv ZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5Ci0rICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBp bmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgotKyAgIG9yIGJ5IGFu IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFs ZiBvZgotKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBk ZWZpbml0aW9uLCAic3VibWl0dGVkIgotKyAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMs IHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKLSsgICB0byB0aGUgTGljZW5z b3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwot KyAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29k ZSBjb250cm9sIHN5c3RlbXMsCi0rICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBh cmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKLSsgICBMaWNlbnNvciBmb3IgdGhl IHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKLSsgICBl eGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90 aGVyd2lzZQotKyAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVy IGFzICJOb3QgYSBDb250cmlidXRpb24uIgotKwotKyAgICJDb250cmlidXRvciIgc2hhbGwgbWVh biBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0rICAgb24gYmVo YWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3Ig YW5kCi0rICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCi0rCi0r Mi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBj b25kaXRpb25zIG9mCi0rICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBn cmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAotKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwg bm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0rICAgY29weXJpZ2h0IGxpY2Vu c2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCi0rICAgcHVibGlj bHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUg dGhlCi0rICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmpl Y3QgZm9ybS4KLSsKLSszLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSsgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0 b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0rICAgd29ybGR3aWRlLCBub24t ZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLSsgICAoZXhj ZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhh dmUgbWFkZSwKLSsgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVy d2lzZSB0cmFuc2ZlciB0aGUgV29yaywKLSsgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBv bmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQotKyAgIGJ5IHN1Y2ggQ29udHJp YnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCi0rICAgQ29udHJp YnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihz KQotKyAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1 Ym1pdHRlZC4gSWYgWW91Ci0rICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3Qg YW55IGVudGl0eSAoaW5jbHVkaW5nIGEKLSsgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0g aW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCi0rICAgb3IgYSBDb250cmlidXRp b24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKLSsgICBv ciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vu c2VzCi0rICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsg c2hhbGwgdGVybWluYXRlCi0rICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZp bGVkLgotKwotKzQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJp YnV0ZSBjb3BpZXMgb2YgdGhlCi0rICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2Yg aW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0Ci0rICAgbW9kaWZpY2F0aW9ucywgYW5kIGlu IFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKLSsgICBtZWV0IHRoZSBm b2xsb3dpbmcgY29uZGl0aW9uczoKLSsKLSsgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIg cmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgotKyAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29w eSBvZiB0aGlzIExpY2Vuc2U7IGFuZAotKwotKyAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9k aWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKLSsgICAgICAgc3RhdGluZyB0 aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCi0rCi0rICAgKGMpIFlvdSBtdXN0IHJldGFp biwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCi0rICAgICAgIHRo YXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQK LSsgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUg V29yaywKLSsgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFp biB0byBhbnkgcGFydCBvZgotKyAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCi0rCi0r ICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQg b2YgaXRzCi0rICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0 aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKLSsgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkg b2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCi0rICAgICAgIHdpdGhpbiBzdWNo IE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAotKyAgICAg ICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFz dCBvbmUKLSsgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0 ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKLSsgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBX b3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgotKyAgICAgICBkb2N1bWVudGF0aW9uLCBp ZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKLSsgICAgICAg d2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFu ZAotKyAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBw ZWFyLiBUaGUgY29udGVudHMKLSsgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5m b3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAotKyAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBM aWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgotKyAgICAgICBub3RpY2Vz IHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQot KyAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29y aywgcHJvdmlkZWQKLSsgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90 aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCi0rICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5z ZS4KLSsKLSsgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlv dXIgbW9kaWZpY2F0aW9ucyBhbmQKLSsgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZl cmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCi0rICAgZm9yIHVzZSwgcmVwcm9kdWN0 aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgotKyAgIGZvciBh bnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAot KyAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2Ug Y29tcGxpZXMgd2l0aAotKyAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2Uu Ci0rCi0rNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0 bHkgc3RhdGUgb3RoZXJ3aXNlLAotKyAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBz dWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawotKyAgIGJ5IFlvdSB0byB0aGUgTGlj ZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0rICAgdGhp cyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCi0r ICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJz ZWRlIG9yIG1vZGlmeQotKyAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3Jl ZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCi0rICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcg c3VjaCBDb250cmlidXRpb25zLgotKwotKzYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2Vz IG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKLSsgICBuYW1lcywgdHJhZGVt YXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCi0r ICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGlu IGRlc2NyaWJpbmcgdGhlCi0rICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0 aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCi0rCi0rNy4gRGlzY2xhaW1lciBvZiBXYXJy YW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCi0rICAgYWdyZWVkIHRv IGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAotKyAgIENv bnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lT LAotKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRo ZXIgZXhwcmVzcyBvcgotKyAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9u LCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCi0rICAgb2YgVElUTEUsIE5PTi1JTkZSSU5H RU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQotKyAgIFBBUlRJQ1VMQVIg UFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQot KyAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBh bmQgYXNzdW1lIGFueQotKyAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9m IHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KLSsKLSs4LiBMaW1pdGF0aW9uIG9mIExp YWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKLSsgICB3aGV0 aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lz ZSwKLSsgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJl cmF0ZSBhbmQgZ3Jvc3NseQotKyAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3Jp dGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCi0rICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFt YWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotKyAgIGluY2lk ZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcg YXMgYQotKyAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5h YmlsaXR5IHRvIHVzZSB0aGUKLSsgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRv IGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCi0rICAgd29yayBzdG9wcGFnZSwgY29tcHV0 ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKLSsgICBvdGhlciBjb21t ZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCi0rICAg aGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgotKwot KzkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVk aXN0cmlidXRpbmcKLSsgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlv dSBtYXkgY2hvb3NlIHRvIG9mZmVyLAotKyAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRh bmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCi0rICAgb3Igb3RoZXIgbGlhYmls aXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKLSsgICBM aWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBh Y3Qgb25seQotKyAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNp YmlsaXR5LCBub3Qgb24gYmVoYWxmCi0rICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQg b25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAotKyAgIGRlZmVuZCwgYW5kIGhvbGQgZWFj aCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQotKyAgIGluY3VycmVkIGJ5 LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24K LSsgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxp YWJpbGl0eS4KLSsKLStFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKLSsKLStBUFBFTkRJWDog SG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCi0rCi0rICAgVG8g YXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dp bmcKLSsgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBi cmFja2V0cyAiW10iCi0rICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZv cm1hdGlvbi4gKERvbid0IGluY2x1ZGUKLSsgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hv dWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQotKyAgIGNvbW1lbnQgc3ludGF4IGZv ciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQotKyAgIGZpbGUgb3Ig Y2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUK LSsgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNp ZXIKLSsgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCi0rCi0r Q29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCi0rCi0rTGljZW5zZWQg dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0r eW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBM aWNlbnNlLgotK1lvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotKwotKwlo dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSsKLStVbmxlc3MgcmVx dWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJl Ci0rZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFT IElTIiBCQVNJUywKLStXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lO RCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLStTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBz cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0rbGltaXRhdGlvbnMg dW5kZXIgdGhlIExpY2Vuc2UuCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9u X2NoZWNrL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VO U0UtTUlUCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1NSVQJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLU1JVAkyMDI1LTA5LTE3IDE3OjQxOjQ3LjUwNTc5NTU5 OCArMDMwMAotQEAgLTAsMCArMSwxOSBAQAotK1RoZSBNSVQgTGljZW5zZSAoTUlUKQotK0NvcHly aWdodCAoYykgMjAxNy0yMDE4IFNlcmdpbyBCZW5pdGV6Ci0rCi0rUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29w eSBvZgotK3RoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluCi0rdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0bwotK3VzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k L29yIHNlbGwgY29waWVzIG9mCi0rdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLAotK3N1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKwotK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAotK2Nv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rCi0rVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKLStJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUwotK0ZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S UyBPUgotK0NPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUgotK0lOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCi0rQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svUkVB RE1FLm1kIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL1JFQURNRS5tZAotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL1JFQURNRS5tZAkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNr L1JFQURNRS5tZAkyMDI1LTA5LTE3IDE3OjQxOjQ3LjUwNzc5NTUyMiArMDMwMAotQEAgLTAsMCAr MSw4MCBAQAotKyMgdmVyc2lvblxfY2hlY2sKLSsKLStbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8v Z2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L3ZlcnNpb25fY2hlY2svd29ya2Zsb3dzL0NJL2JhZGdl LnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L3ZlcnNpb25fY2hlY2svYWN0 aW9ucykKLStbIVtDdXJyZW50IENyYXRlcy5pbyBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRz LmlvL2NyYXRlcy92L3ZlcnNpb25fY2hlY2suc3ZnKV0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVz L3ZlcnNpb25fY2hlY2spCi0rWyFbcnVzdGRvY3Mgb24gZG9jcy5yc10oaHR0cHM6Ly9kb2NzLnJz L3ZlcnNpb25fY2hlY2svYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9kb2NzLnJzL3ZlcnNpb25fY2hlY2sp Ci0rCi0rVGhpcyB0aW55IGNyYXRlIGNoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxl ZCBgcnVzdGNgIG1lZXRzIHNvbWUgdmVyc2lvbgotK3JlcXVpcmVtZW50cy4gVGhlIHZlcnNpb24g aXMgcXVlcmllZCBieSBjYWxsaW5nIHRoZSBSdXN0IGNvbXBpbGVyIHdpdGgKLStgLS12ZXJzaW9u YC4gVGhlIHBhdGggdG8gdGhlIGNvbXBpbGVyIGlzIGRldGVybWluZWQgZmlyc3QgdmlhIHRoZSBg UlVTVENgCi0rZW52aXJvbm1lbnQgdmFyaWFibGUuIElmIGl0IGlzIG5vdCBzZXQsIHRoZW4gYHJ1 c3RjYCBpcyB1c2VkLiBJZiB0aGF0IGZhaWxzLCBubwotK2RldGVybWluYXRpb24gaXMgbWFkZSwg YW5kIGNhbGxzIHJldHVybiBgTm9uZWAuCi0rCi0rIyMgVXNhZ2UKLSsKLStBZGQgdG8geW91ciBg Q2FyZ28udG9tbGAgZmlsZSwgdHlwaWNhbGx5IGFzIGEgYnVpbGQgZGVwZW5kZW5jeToKLSsKLStg YGB0b21sCi0rW2J1aWxkLWRlcGVuZGVuY2llc10KLSt2ZXJzaW9uX2NoZWNrID0gIjAuOSIKLStg YGAKLSsKLStgdmVyc2lvbl9jaGVja2AgaXMgY29tcGF0aWJsZSBhbmQgY29tcGlsZXMgd2l0aCBS dXN0IDEuMC4wIGFuZCBiZXlvbmQuCi0rCi0rIyMgRXhhbXBsZXMKLSsKLStTZXQgYSBgY2ZnYCBm bGFnIGluIGBidWlsZC5yc2AgaWYgdGhlIHJ1bm5pbmcgY29tcGlsZXIgd2FzIGRldGVybWluZWQg dG8gYmUKLSthdCBsZWFzdCB2ZXJzaW9uIGAxLjEzLjBgOgotKwotK2BgYHJ1c3QKLStleHRlcm4g Y3JhdGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKLSsKLStpZiBydXN0Yzo6aXNfbWluX3ZlcnNp b24oIjEuMTMuMCIpLnVud3JhcF9vcihmYWxzZSkgewotKyAgICBwcmludGxuISgiY2FyZ286cnVz dGMtY2ZnPXF1ZXN0aW9uX21hcmtfb3BlcmF0b3IiKTsKLSt9Ci0rYGBgCi0rCi0rQ2hlY2sgdGhh dCB0aGUgcnVubmluZyBjb21waWxlciB3YXMgcmVsZWFzZWQgb24gb3IgYWZ0ZXIgYDIwMTgtMTIt MThgOgotKwotK2BgYHJ1c3QKLStleHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsK LSsKLSttYXRjaCBydXN0Yzo6aXNfbWluX2RhdGUoIjIwMTgtMTItMTgiKSB7Ci0rICAgIFNvbWUo dHJ1ZSkgPT4gIlllcCEgSXQncyByZWNlbnQhIiwKLSsgICAgU29tZShmYWxzZSkgPT4gIk5vLCBp dCdzIG9sZGVyLiIsCi0rICAgIE5vbmUgPT4gIkNvdWxkbid0IGRldGVybWluZSB0aGUgcnVzdGMg dmVyc2lvbi4iCi0rfTsKLStgYGAKLSsKLStDaGVjayB0aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVy IHN1cHBvcnRzIGZlYXR1cmUgZmxhZ3M6Ci0rCi0rYGBgcnVzdAotK2V4dGVybiBjcmF0ZSB2ZXJz aW9uX2NoZWNrIGFzIHJ1c3RjOwotKwotK21hdGNoIHJ1c3RjOjppc19mZWF0dXJlX2ZsYWdnYWJs ZSgpIHsKLSsgICAgU29tZSh0cnVlKSA9PiAiWWVzISBJdCdzIGEgZGV2IG9yIG5pZ2h0bHkgcmVs ZWFzZSEiLAotKyAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0J3Mgc3RhYmxlIG9yIGJldGEuIiwK LSsgICAgTm9uZSA9PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIKLSt9 OwotK2BgYAotKwotK1NlZSB0aGUgW3J1c3Rkb2NzXShodHRwczovL2RvY3MucnMvdmVyc2lvbl9j aGVjaykgZm9yIG1vcmUgZXhhbXBsZXMgYW5kIGNvbXBsZXRlCi0rZG9jdW1lbnRhdGlvbi4KLSsK LSsjIyBBbHRlcm5hdGl2ZXMKLSsKLStUaGlzIGNyYXRlIGlzIGRlYWQgc2ltcGxlIHdpdGggbm8g ZGVwZW5kZW5jaWVzLiBJZiB5b3UgbmVlZCBzb21ldGhpbmcgbW9yZSBhbmQKLStkb24ndCBjYXJl IGFib3V0IHBhbmlja2luZyBpZiB0aGUgdmVyc2lvbiBjYW5ub3QgYmUgb2J0YWluZWQsIG9yIGlm IHlvdSBkb24ndAotK21pbmQgYWRkaW5nIGRlcGVuZGVuY2llcywgc2VlIFtydXN0Y192ZXJzaW9u XS4gSWYgeW91J2QgaW5zdGVhZCBwcmVmZXIgYSBmZWF0dXJlCi0rZGV0ZWN0aW9uIGxpYnJhcnkg dGhhdCB3b3JrcyBieSBkeW5hbWljYWxseSBpbnZva2luZyBgcnVzdGNgIHdpdGggYQotK3JlcHJl c2VudGF0aXZlIGNvZGUgc2FtcGxlLCBzZWUgW2F1dG9jZmddLgotKwotK1tydXN0Y192ZXJzaW9u XTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3RjX3ZlcnNpb24KLStbYXV0b2NmZ106IGh0 dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9hdXRvY2ZnCi0rCi0rIyMgTGljZW5zZQotKwotK2B2ZXJz aW9uX2NoZWNrYCBpcyBsaWNlbnNlZCB1bmRlciBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZywgYXQg eW91ciBvcHRpb246Ci0rCi0rICogQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLCAoW0xJQ0VO U0UtQVBBQ0hFXShMSUNFTlNFLUFQQUNIRSkgb3IgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vu c2VzL0xJQ0VOU0UtMi4wKQotKyAqIE1JVCBMaWNlbnNlIChbTElDRU5TRS1NSVRdKExJQ0VOU0Ut TUlUKSBvciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvY2hhbm5lbC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvY2hhbm5lbC5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9jaGFubmVsLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2No YW5uZWwucnMJMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDc3OTU1MjIgKzAzMDAKLUBAIC0wLDAgKzEs MTkzIEBACi0rdXNlIHN0ZDo6Zm10OwotKwotKyNbZGVyaXZlKERlYnVnLCBQYXJ0aWFsRXEsIEVx LCBDb3B5LCBDbG9uZSldCi0rZW51bSBLaW5kIHsKLSsgICAgRGV2LAotKyAgICBOaWdodGx5LAot KyAgICBCZXRhLAotKyAgICBTdGFibGUsCi0rfQotKwotKy8vLyBSZWxlYXNlIGNoYW5uZWw6ICJk ZXYiLCAibmlnaHRseSIsICJiZXRhIiwgb3IgInN0YWJsZSIuCi0rI1tkZXJpdmUoRGVidWcsIFBh cnRpYWxFcSwgRXEsIENvcHksIENsb25lKV0KLStwdWIgc3RydWN0IENoYW5uZWwoS2luZCk7Ci0r Ci0raW1wbCBDaGFubmVsIHsKLSsgICAgLy8vIFJlYWRzIHRoZSByZWxlYXNlIGNoYW5uZWwgb2Yg dGhlIHJ1bm5pbmcgY29tcGlsZXIuIElmIGl0IGNhbm5vdCBiZQotKyAgICAvLy8gZGV0ZXJtaW5l ZCAoc2VlIHRoZSBbdG9wLWxldmVsIGRvY3VtZW50YXRpb25dKGNyYXRlKSksIHJldHVybnMgYE5v bmVgLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBg YHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFubmVsOwotKyAgICAvLy8KLSsg ICAgLy8vIG1hdGNoIENoYW5uZWw6OnJlYWQoKSB7Ci0rICAgIC8vLyAgICAgU29tZShjKSA9PiBm b3JtYXQhKCJUaGUgY2hhbm5lbCBpczoge30iLCBjKSwKLSsgICAgLy8vICAgICBOb25lID0+IGZv cm1hdCEoIkZhaWxlZCB0byByZWFkIHRoZSByZWxlYXNlIGNoYW5uZWwuIikKLSsgICAgLy8vIH07 Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHJlYWQoKSAtPiBPcHRpb248Q2hhbm5lbD4gewot KyAgICAgICAgOjpnZXRfdmVyc2lvbl9hbmRfZGF0ZSgpCi0rICAgICAgICAgICAgLmFuZF90aGVu KHwodmVyc2lvbiwgXyl8IHZlcnNpb24pCi0rICAgICAgICAgICAgLmFuZF90aGVuKHx2ZXJzaW9u fCBDaGFubmVsOjpwYXJzZSgmdmVyc2lvbikpCi0rICAgIH0KLSsKLSsgICAgLy8vIFBhcnNlIGEg UnVzdCByZWxlYXNlIGNoYW5uZWwgZnJvbSBhIFJ1c3QgcmVsZWFzZSB2ZXJzaW9uIHN0cmluZyAo b2YgdGhlCi0rICAgIC8vLyBmb3JtIGBtYWpvclsubWlub3JbLnBhdGNoWy1jaGFubmVsXV1dYCku IFJldHVybnMgYE5vbmVgIGlmIGB2ZXJzaW9uYCBpcwotKyAgICAvLy8gbm90IGEgdmFsaWQgUnVz dCB2ZXJzaW9uIHN0cmluZy4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8v Ci0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsK LSsgICAgLy8vCi0rICAgIC8vLyBsZXQgZGV2ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4wLWRldiIp LnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0IShkZXYuaXNfZGV2KCkpOwotKyAgICAvLy8KLSsg ICAgLy8vIGxldCBuaWdodGx5ID0gQ2hhbm5lbDo6cGFyc2UoIjEuNDIuMi1uaWdodGx5IikudW53 cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKG5pZ2h0bHkuaXNfbmlnaHRseSgpKTsKLSsgICAgLy8v Ci0rICAgIC8vLyBsZXQgYmV0YSA9IENoYW5uZWw6OnBhcnNlKCIxLjMyLjAtYmV0YSIpLnVud3Jh cCgpOwotKyAgICAvLy8gYXNzZXJ0IShiZXRhLmlzX2JldGEoKSk7Ci0rICAgIC8vLwotKyAgICAv Ly8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjQuMCIpLnVud3JhcCgpOwotKyAgICAv Ly8gYXNzZXJ0IShzdGFibGUuaXNfc3RhYmxlKCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBm biBwYXJzZSh2ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248Q2hhbm5lbD4gewotKyAgICAgICAgbGV0 IHZlcnNpb24gPSB2ZXJzaW9uLnRyaW0oKTsKLSsgICAgICAgIGlmIHZlcnNpb24uY29udGFpbnMo Ii1kZXYiKSB8fCB2ZXJzaW9uID09ICJkZXYiIHsKLSsgICAgICAgICAgICBTb21lKENoYW5uZWwo S2luZDo6RGV2KSkKLSsgICAgICAgIH0gZWxzZSBpZiB2ZXJzaW9uLmNvbnRhaW5zKCItbmlnaHRs eSIpIHx8IHZlcnNpb24gPT0gIm5pZ2h0bHkiIHsKLSsgICAgICAgICAgICBTb21lKENoYW5uZWwo S2luZDo6TmlnaHRseSkpCi0rICAgICAgICB9IGVsc2UgaWYgdmVyc2lvbi5jb250YWlucygiLWJl dGEiKSB8fCB2ZXJzaW9uID09ICJiZXRhIiB7Ci0rICAgICAgICAgICAgU29tZShDaGFubmVsKEtp bmQ6OkJldGEpKQotKyAgICAgICAgfSBlbHNlIGlmICF2ZXJzaW9uLmNvbnRhaW5zKCItIikgewot KyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5kOjpTdGFibGUpKQotKyAgICAgICAgfSBlbHNl IHsKLSsgICAgICAgICAgICBOb25lCi0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgLy8vIFJl dHVybnMgdGhlIG5hbWUgb2YgdGhlIHJlbGVhc2UgY2hhbm5lbC4KLSsgICAgZm4gYXNfc3RyKCZz ZWxmKSAtPiAmJ3N0YXRpYyBzdHIgewotKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKLSsgICAgICAg ICAgICBLaW5kOjpEZXYgPT4gImRldiIsCi0rICAgICAgICAgICAgS2luZDo6QmV0YSA9PiAiYmV0 YSIsCi0rICAgICAgICAgICAgS2luZDo6TmlnaHRseSA9PiAibmlnaHRseSIsCi0rICAgICAgICAg ICAgS2luZDo6U3RhYmxlID0+ICJzdGFibGUiLAotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAg IC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNoYW5uZWwgc3VwcG9ydHMgZmVhdHVyZSBmbGFn cy4gSW4gb3RoZXIgd29yZHMsCi0rICAgIC8vLyByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY2hhbm5l bCBpcyBlaXRoZXIgYGRldmAgb3IgYG5pZ2h0bHlgLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhh bXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2No ZWNrOjpDaGFubmVsOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBkZXYgPSBDaGFubmVsOjpwYXJz ZSgiMS4zLjAtZGV2IikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKGRldi5zdXBwb3J0c19m ZWF0dXJlcygpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgbmlnaHRseSA9IENoYW5uZWw6OnBh cnNlKCIxLjQyLjItbmlnaHRseSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0IShuaWdodGx5 LnN1cHBvcnRzX2ZlYXR1cmVzKCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBiZXRhID0gQ2hh bm5lbDo6cGFyc2UoIjEuMzIuMC1iZXRhIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKCFi ZXRhLnN1cHBvcnRzX2ZlYXR1cmVzKCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBzdGFibGUg PSBDaGFubmVsOjpwYXJzZSgiMS40LjAiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoIXN0 YWJsZS5zdXBwb3J0c19mZWF0dXJlcygpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gc3Vw cG9ydHNfZmVhdHVyZXMoJnNlbGYpIC0+IGJvb2wgewotKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsK LSsgICAgICAgICAgICBLaW5kOjpEZXYgfCBLaW5kOjpOaWdodGx5ID0+IHRydWUsCi0rICAgICAg ICAgICAgS2luZDo6QmV0YSB8IEtpbmQ6OlN0YWJsZSA9PiBmYWxzZQotKyAgICAgICAgfQotKyAg ICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNoYW5uZWwgaXMgYGRldmAg YW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAg ICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFu bmVsOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBkZXYgPSBDaGFubmVsOjpwYXJzZSgiMS4zLjAt ZGV2IikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKGRldi5pc19kZXYoKSk7Ci0rICAgIC8v LwotKyAgICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVud3JhcCgp OwotKyAgICAvLy8gYXNzZXJ0ISghc3RhYmxlLmlzX2RldigpKTsKLSsgICAgLy8vIGBgYAotKyAg ICBwdWIgZm4gaXNfZGV2KCZzZWxmKSAtPiBib29sIHsKLSsgICAgICAgIG1hdGNoIHNlbGYuMCB7 Ci0rICAgICAgICAgICAgS2luZDo6RGV2ID0+IHRydWUsCi0rICAgICAgICAgICAgXyA9PiBmYWxz ZQotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlz IGNoYW5uZWwgaXMgYG5pZ2h0bHlgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KLSsgICAgLy8vCi0r ICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1 c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgbmlnaHRs eSA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1uaWdodGx5IikudW53cmFwKCk7Ci0rICAgIC8vLyBh c3NlcnQhKG5pZ2h0bHkuaXNfbmlnaHRseSgpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgc3Rh YmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuMC4wIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQh KCFzdGFibGUuaXNfbmlnaHRseSgpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gaXNfbmln aHRseSgmc2VsZikgLT4gYm9vbCB7Ci0rICAgICAgICBtYXRjaCBzZWxmLjAgewotKyAgICAgICAg ICAgIEtpbmQ6Ok5pZ2h0bHkgPT4gdHJ1ZSwKLSsgICAgICAgICAgICBfID0+IGZhbHNlCi0rICAg ICAgICB9Ci0rICAgIH0KLSsKLSsgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIHRoaXMgY2hhbm5l bCBpcyBgYmV0YWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotKyAgICAvLy8KLSsgICAgLy8vICMg RXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9u X2NoZWNrOjpDaGFubmVsOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBiZXRhID0gQ2hhbm5lbDo6 cGFyc2UoIjEuMy4wLWJldGEiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoYmV0YS5pc19i ZXRhKCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBzdGFibGUgPSBDaGFubmVsOjpwYXJzZSgi MS4wLjAiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoIXN0YWJsZS5pc19iZXRhKCkpOwot KyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBpc19iZXRhKCZzZWxmKSAtPiBib29sIHsKLSsgICAg ICAgIG1hdGNoIHNlbGYuMCB7Ci0rICAgICAgICAgICAgS2luZDo6QmV0YSA9PiB0cnVlLAotKyAg ICAgICAgICAgIF8gPT4gZmFsc2UKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAvLy8gUmV0 dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlzIGBzdGFibGVgIGFuZCBgZmFsc2VgIG90aGVy d2lzZS4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBg YGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKLSsgICAgLy8vCi0r ICAgIC8vLyBsZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuMC4wIikudW53cmFwKCk7Ci0r ICAgIC8vLyBhc3NlcnQhKHN0YWJsZS5pc19zdGFibGUoKSk7Ci0rICAgIC8vLwotKyAgICAvLy8g bGV0IGJldGEgPSBDaGFubmVsOjpwYXJzZSgiMS4zLjAtYmV0YSIpLnVud3JhcCgpOwotKyAgICAv Ly8gYXNzZXJ0ISghYmV0YS5pc19zdGFibGUoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZu IGlzX3N0YWJsZSgmc2VsZikgLT4gYm9vbCB7Ci0rICAgICAgICBtYXRjaCBzZWxmLjAgewotKyAg ICAgICAgICAgIEtpbmQ6OlN0YWJsZSA9PiB0cnVlLAotKyAgICAgICAgICAgIF8gPT4gZmFsc2UK LSsgICAgICAgIH0KLSsgICAgfQotK30KLSsKLStpbXBsIGZtdDo6RGlzcGxheSBmb3IgQ2hhbm5l bCB7Ci0rICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpS ZXN1bHQgewotKyAgICAgICAgd3JpdGUhKGYsICJ7fSIsIHNlbGYuYXNfc3RyKCkpCi0rICAgIH0K LSt9Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9kYXRl LnJzIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9kYXRlLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVj ay9zcmMvZGF0ZS5ycwkyMDI1LTA5LTE3IDE3OjQxOjQ3LjUwNzc5NTUyMiArMDMwMAotQEAgLTAs MCArMSwyMDMgQEAKLSt1c2Ugc3RkOjpmbXQ7Ci0rCi0rLy8vIFJlbGVhc2UgZGF0ZSBpbmNsdWRp bmcgeWVhciwgbW9udGgsIGFuZCBkYXkuCi0rLy8gSW50ZXJuYWwgc3RvcmFnZSBpczogeVszMS4u OV0gfCBtWzguLjVdIHwgZFs1Li4uMF0uCi0rI1tkZXJpdmUoRGVidWcsIFBhcnRpYWxFcSwgRXEs IENvcHksIENsb25lLCBQYXJ0aWFsT3JkLCBPcmQpXQotK3B1YiBzdHJ1Y3QgRGF0ZSh1MzIpOwot KwotK2ltcGwgRGF0ZSB7Ci0rICAgIC8vLyBSZWFkcyB0aGUgcmVsZWFzZSBkYXRlIG9mIHRoZSBy dW5uaW5nIGNvbXBpbGVyLiBJZiBpdCBjYW5ub3QgYmUKLSsgICAgLy8vIGRldGVybWluZWQgKHNl ZSB0aGUgW3RvcC1sZXZlbCBkb2N1bWVudGF0aW9uXShjcmF0ZSkpLCByZXR1cm5zIGBOb25lYC4K LSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0 Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0ZTsKLSsgICAgLy8vCi0rICAgIC8vLyBt YXRjaCBEYXRlOjpyZWFkKCkgewotKyAgICAvLy8gICAgIFNvbWUoZCkgPT4gZm9ybWF0ISgiVGhl IHJlbGVhc2UgZGF0ZSBpczoge30iLCBkKSwKLSsgICAgLy8vICAgICBOb25lID0+IGZvcm1hdCEo IkZhaWxlZCB0byByZWFkIHRoZSByZWxlYXNlIGRhdGUuIikKLSsgICAgLy8vIH07Ci0rICAgIC8v LyBgYGAKLSsgICAgcHViIGZuIHJlYWQoKSAtPiBPcHRpb248RGF0ZT4gewotKyAgICAgICAgOjpn ZXRfdmVyc2lvbl9hbmRfZGF0ZSgpCi0rICAgICAgICAgICAgLmFuZF90aGVuKHwoXywgZGF0ZSl8 IGRhdGUpCi0rICAgICAgICAgICAgLmFuZF90aGVuKHxkYXRlfCBEYXRlOjpwYXJzZSgmZGF0ZSkp Ci0rICAgIH0KLSsKLSsgICAgLy8vIFBhcnNlIGEgcmVsZWFzZSBkYXRlIG9mIHRoZSBmb3JtIGAl WS0lbS0lZGAuIFJldHVybnMgYE5vbmVgIGlmIGBkYXRlYCBpcwotKyAgICAvLy8gbm90IGluIGAl WS0lbS0lZGAgZm9ybWF0LgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8K LSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOwotKyAg ICAvLy8KLSsgICAgLy8vIGxldCBkYXRlID0gRGF0ZTo6cGFyc2UoIjIwMTYtMDQtMjAiKS51bndy YXAoKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbGVhc3QoIjIwMTYtMDEt MTAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbW9zdCgiMjAxNi0wNC0yMCIpKTsKLSsg ICAgLy8vIGFzc2VydCEoZGF0ZS5leGFjdGx5KCIyMDE2LTA0LTIwIikpOwotKyAgICAvLy8KLSsg ICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIwMjEtMTItMzEiKS51bndyYXAoKS5leGFjdGx5 KCIyMDIxLTEyLTMxIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2Uo Ik1hcmNoIDEzLCAyMDE4IikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFy c2UoIjEtMi0zLTQtNSIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNl KCIyMDIwLTMwMC0yMzEyMCIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3NlcnQhKERhdGU6OnBh cnNlKCIyMDIwLTEyLTEyIDEiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpw YXJzZSgiMjAyMC0xMCIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNl KCIyMDIwIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gcGFyc2UoZGF0 ZTogJnN0cikgLT4gT3B0aW9uPERhdGU+IHsKLSsgICAgICAgIGxldCBtdXQgeW1kID0gWzB1MTY7 IDNdOwotKyAgICAgICAgZm9yIChpLCBzcGxpdCkgaW4gZGF0ZS5zcGxpdCgnLScpLm1hcCh8c3wg cy5wYXJzZTo6PHUxNj4oKSkuZW51bWVyYXRlKCkgewotKyAgICAgICAgICAgIHltZFtpXSA9IG1h dGNoIChpLCBzcGxpdCkgewotKyAgICAgICAgICAgICAgICAoMywgXykgfCAoXywgRXJyKF8pKSA9 PiByZXR1cm4gTm9uZSwKLSsgICAgICAgICAgICAgICAgKF8sIE9rKHYpKSA9PiB2LAotKyAgICAg ICAgICAgIH07Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBsZXQgKHllYXIsIG1vbnRoLCBkYXkp ID0gKHltZFswXSwgeW1kWzFdLCB5bWRbMl0pOwotKyAgICAgICAgaWYgeWVhciA9PSAwIHx8IG1v bnRoID09IDAgfHwgbW9udGggPiAxMiB8fCBkYXkgPT0gMCB8fCBkYXkgPiAzMSB7Ci0rICAgICAg ICAgICAgcmV0dXJuIE5vbmU7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBTb21lKERhdGU6OmZy b21feW1kKHllYXIsIG1vbnRoIGFzIHU4LCBkYXkgYXMgdTgpKQotKyAgICB9Ci0rCi0rICAgIC8v LyBDcmVhdGVzIGEgYERhdGVgIGZyb20gYCh5ZWFyLCBtb250aCwgZGF5KWAgZGF0ZSBjb21wb25l bnRzLgotKyAgICAvLy8KLSsgICAgLy8vIERvZXMgbm90IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiBg eWVhcmAsIGBtb250aGAsIG9yIGBkYXlgLCBidXQgYHllYXJgIGlzCi0rICAgIC8vLyB0cnVuY2F0 ZWQgdG8gMjMgYml0cyAoJSA4LDM4OCw2MDgpLCBgbW9udGhgIHRvIDQgYml0cyAoJSAxNiksIGFu ZCBgZGF5YAotKyAgICAvLy8gdG8gNSBiaXRzICglIDMyKS4KLSsgICAgLy8vCi0rICAgIC8vLyAj IEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lv bl9jaGVjazo6RGF0ZTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKERhdGU6OmZyb21feW1k KDIwMjEsIDcsIDMwKS5leGFjdGx5KCIyMDIxLTA3LTMwIikpOwotKyAgICAvLy8gYXNzZXJ0IShE YXRlOjpmcm9tX3ltZCgyMDEwLCAzLCAyMykuZXhhY3RseSgiMjAxMC0wMy0yMyIpKTsKLSsgICAg Ly8vIGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjA5MCwgMSwgMzEpLmV4YWN0bHkoIjIwOTAtMDEt MzEiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gLy8gVHJ1bmNhdGlvbjogMzMgJSAzMiA9PSAweDIx ICYgMHgxRiA9PSAxLgotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpmcm9tX3ltZCgyMDkwLCAxLCAz MykuZXhhY3RseSgiMjA5MC0wMS0wMSIpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gZnJv bV95bWQoeWVhcjogdTE2LCBtb250aDogdTgsIGRheTogdTgpIC0+IERhdGUgewotKyAgICAgICAg bGV0IHllYXIgPSAoeWVhciBhcyB1MzIpIDw8IDk7Ci0rICAgICAgICBsZXQgbW9udGggPSAoKG1v bnRoIGFzIHUzMikgJiAweEYpIDw8IDU7Ci0rICAgICAgICBsZXQgZGF5ID0gKGRheSBhcyB1MzIp ICYgMHgxRjsKLSsgICAgICAgIERhdGUoeWVhciB8IG1vbnRoIHwgZGF5KQotKyAgICB9Ci0rCi0r ICAgIC8vLyBSZXR1cm4gdGhlIG9yaWdpbmFsIChZWVlZLCBNTSwgREQpLgotKyAgICBmbiB0b195 bWQoJnNlbGYpIC0+ICh1MTYsIHU4LCB1OCkgewotKyAgICAgICAgbGV0IHkgPSBzZWxmLjAgPj4g OTsKLSsgICAgICAgIGxldCBtID0gKHNlbGYuMCA+PiA1KSAmIDB4RjsKLSsgICAgICAgIGxldCBk ID0gc2VsZi4wICYgMHgxRjsKLSsgICAgICAgICh5IGFzIHUxNiwgbSBhcyB1OCwgZCBhcyB1OCkK LSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIG9jY3VycyBvbiBv ciBhZnRlciBgZGF0ZWAuCi0rICAgIC8vLwotKyAgICAvLy8gSWYgYGRhdGVgIG9jY3VycyBiZWZv cmUgYHNlbGZgLCBvciBpZiBgZGF0ZWAgaXMgbm90IGluIGAlWS0lbS0lZGAKLSsgICAgLy8vIGZv cm1hdCwgcmV0dXJucyBgZmFsc2VgLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAg ICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRl OwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBkYXRlID0gRGF0ZTo6cGFyc2UoIjIwMjAtMDEtMDEi KS51bndyYXAoKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbGVhc3QoIjIw MTktMTItMzEiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbGVhc3QoIjIwMjAtMDEtMDEi KSk7Ci0rICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbGVhc3QoIjIwMTQtMDQtMzEiKSk7Ci0rICAg IC8vLwotKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5hdF9sZWFzdCgiMjAyMC0wMS0wMiIpKTsKLSsg ICAgLy8vIGFzc2VydCEoIWRhdGUuYXRfbGVhc3QoIjIwMjQtMDgtMTgiKSk7Ci0rICAgIC8vLyBg YGAKLSsgICAgcHViIGZuIGF0X2xlYXN0KCZzZWxmLCBkYXRlOiAmc3RyKSAtPiBib29sIHsKLSsg ICAgICAgIERhdGU6OnBhcnNlKGRhdGUpCi0rICAgICAgICAgICAgLm1hcCh8ZGF0ZXwgc2VsZiA+ PSAmZGF0ZSkKLSsgICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQotKyAgICB9Ci0rCi0rICAg IC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAgb2NjdXJzIG9uIG9yIGJlZm9yZSBgZGF0ZWAu Ci0rICAgIC8vLwotKyAgICAvLy8gSWYgYGRhdGVgIG9jY3VycyBhZnRlciBgc2VsZmAsIG9yIGlm IGBkYXRlYCBpcyBub3QgaW4gYCVZLSVtLSVkYAotKyAgICAvLy8gZm9ybWF0LCByZXR1cm5zIGBm YWxzZWAuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8g YGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7Ci0rICAgIC8vLwotKyAg ICAvLy8gbGV0IGRhdGUgPSBEYXRlOjpwYXJzZSgiMjAyMC0wMS0wMSIpLnVud3JhcCgpOwotKyAg ICAvLy8KLSsgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9tb3N0KCIyMDIwLTAxLTAxIikpOwotKyAg ICAvLy8gYXNzZXJ0IShkYXRlLmF0X21vc3QoIjIwMjAtMDEtMDIiKSk7Ci0rICAgIC8vLyBhc3Nl cnQhKGRhdGUuYXRfbW9zdCgiMjAyNC0wOC0xOCIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3Nl cnQhKCFkYXRlLmF0X21vc3QoIjIwMTktMTItMzEiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKCFkYXRl LmF0X21vc3QoIjIwMTQtMDQtMzEiKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGF0X21v c3QoJnNlbGYsIGRhdGU6ICZzdHIpIC0+IGJvb2wgewotKyAgICAgICAgRGF0ZTo6cGFyc2UoZGF0 ZSkKLSsgICAgICAgICAgICAubWFwKHxkYXRlfCBzZWxmIDw9ICZkYXRlKQotKyAgICAgICAgICAg IC51bndyYXBfb3IoZmFsc2UpCi0rICAgIH0KLSsKLSsgICAgLy8vIFJldHVybnMgYHRydWVgIGlm IGBzZWxmYCBvY2N1cnMgZXhhY3RseSBvbiBgZGF0ZWAuCi0rICAgIC8vLwotKyAgICAvLy8gSWYg YGRhdGVgIGlzIG5vdCBleGFjdGx5IGBzZWxmYCwgb3IgaWYgYGRhdGVgIGlzIG5vdCBpbiBgJVkt JW0tJWRgCi0rICAgIC8vLyBmb3JtYXQsIHJldHVybnMgYGZhbHNlYC4KLSsgICAgLy8vCi0rICAg IC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2Ug dmVyc2lvbl9jaGVjazo6RGF0ZTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6 OnBhcnNlKCIyMDIwLTAxLTAxIikudW53cmFwKCk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0 IShkYXRlLmV4YWN0bHkoIjIwMjAtMDEtMDEiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0 ISghZGF0ZS5leGFjdGx5KCIyMDE5LTEyLTMxIikpOwotKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5l eGFjdGx5KCIyMDE0LTA0LTMxIikpOwotKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5leGFjdGx5KCIy MDIwLTAxLTAyIikpOwotKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5leGFjdGx5KCIyMDI0LTA4LTE4 IikpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBleGFjdGx5KCZzZWxmLCBkYXRlOiAmc3Ry KSAtPiBib29sIHsKLSsgICAgICAgIERhdGU6OnBhcnNlKGRhdGUpCi0rICAgICAgICAgICAgLm1h cCh8ZGF0ZXwgc2VsZiA9PSAmZGF0ZSkKLSsgICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQot KyAgICB9Ci0rfQotKwotK2ltcGwgZm10OjpEaXNwbGF5IGZvciBEYXRlIHsKLSsgICAgZm4gZm10 KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7Ci0rICAgICAg ICBsZXQgKHksIG0sIGQpID0gc2VsZi50b195bWQoKTsKLSsgICAgICAgIHdyaXRlIShmLCAie30t ezowMn0tezowMn0iLCB5LCBtLCBkKQotKyAgICB9Ci0rfQotKwotKyNbY2ZnKHRlc3QpXQotK21v ZCB0ZXN0cyB7Ci0rICAgIHVzZSBzdXBlcjo6RGF0ZTsKLSsKLSsgICAgbWFjcm9fcnVsZXMhIHJl ZmxleGl2ZV9kaXNwbGF5IHsKLSsgICAgICAgICgkc3RyaW5nOmV4cHIpID0+ICgKLSsgICAgICAg ICAgICBhc3NlcnRfZXEhKERhdGU6OnBhcnNlKCRzdHJpbmcpLnVud3JhcCgpLnRvX3N0cmluZygp LCAkc3RyaW5nKTsKLSsgICAgICAgICkKLSsgICAgfQotKwotKyAgICAjW3Rlc3RdCi0rICAgIGZu IGRpc3BsYXkoKSB7Ci0rICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjIwMTktMDUtMDgiKTsK LSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMjAwMC0wMS0wMSIpOwotKyAgICAgICAgcmVm bGV4aXZlX2Rpc3BsYXkhKCIyMDAwLTEyLTMxIik7Ci0rICAgICAgICByZWZsZXhpdmVfZGlzcGxh eSEoIjIwOTAtMTItMzEiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMTk5OS0wMi0x OSIpOwotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCI5OTk5LTEyLTMxIik7Ci0rICAgIH0K LSt9Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9saWIu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2xpYi5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9saWIucnMJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9z cmMvbGliLnJzCTIwMjUtMDktMTcgMTc6NDE6NDcuNTA3Nzk1NTIyICswMzAwCi1AQCAtMCwwICsx LDQ5MyBAQAotKy8vISBUaGlzIHRpbnkgY3JhdGUgY2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3Ig aW5zdGFsbGVkIGBydXN0Y2AgbWVldHMgc29tZQotKy8vISB2ZXJzaW9uIHJlcXVpcmVtZW50cy4g VGhlIHZlcnNpb24gaXMgcXVlcmllZCBieSBjYWxsaW5nIHRoZSBSdXN0IGNvbXBpbGVyCi0rLy8h IHdpdGggYC0tdmVyc2lvbmAuIFRoZSBwYXRoIHRvIHRoZSBjb21waWxlciBpcyBkZXRlcm1pbmVk IGZpcnN0IHZpYSB0aGUKLSsvLyEgYFJVU1RDYCBlbnZpcm9ubWVudCB2YXJpYWJsZS4gSWYgaXQg aXMgbm90IHNldCwgdGhlbiBgcnVzdGNgIGlzIHVzZWQuIElmCi0rLy8hIHRoYXQgZmFpbHMsIG5v IGRldGVybWluYXRpb24gaXMgbWFkZSwgYW5kIGNhbGxzIHJldHVybiBgTm9uZWAuCi0rLy8hCi0r Ly8hICMgRXhhbXBsZXMKLSsvLyEKLSsvLyEgKiBTZXQgYSBgY2ZnYCBmbGFnIGluIGBidWlsZC5y c2AgaWYgdGhlIHJ1bm5pbmcgY29tcGlsZXIgd2FzIGRldGVybWluZWQgdG8KLSsvLyEgICBiZSBh dCBsZWFzdCB2ZXJzaW9uIGAxLjEzLjBgOgotKy8vIQotKy8vISAgIGBgYHJ1c3QKLSsvLyEgICBl eHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKLSsvLyEKLSsvLyEgICBpZiBydXN0 Yzo6aXNfbWluX3ZlcnNpb24oIjEuMTMuMCIpLnVud3JhcF9vcihmYWxzZSkgewotKy8vISAgICAg ICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPXF1ZXN0aW9uX21hcmtfb3BlcmF0b3IiKTsKLSsv LyEgICB9Ci0rLy8hICAgYGBgCi0rLy8hCi0rLy8hICAgU2VlIFtgaXNfbWF4X3ZlcnNpb25gXSBv ciBbYGlzX2V4YWN0X3ZlcnNpb25gXSB0byBjaGVjayBpZiB0aGUgY29tcGlsZXIKLSsvLyEgICBp cyBfYXQgbW9zdF8gb3IgX2V4YWN0bHlfIGEgY2VydGFpbiB2ZXJzaW9uLgotKy8vIQotKy8vISAq IENoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgd2FzIHJlbGVhc2VkIG9uIG9yIGFmdGVy IGAyMDE4LTEyLTE4YDoKLSsvLyEKLSsvLyEgICBgYGBydXN0Ci0rLy8hICAgZXh0ZXJuIGNyYXRl IHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7Ci0rLy8hCi0rLy8hICAgbWF0Y2ggcnVzdGM6OmlzX21p bl9kYXRlKCIyMDE4LTEyLTE4IikgewotKy8vISAgICAgICBTb21lKHRydWUpID0+ICJZZXAhIEl0 J3MgcmVjZW50ISIsCi0rLy8hICAgICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBvbGRlci4i LAotKy8vISAgICAgICBOb25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZlcnNp b24uIgotKy8vISAgIH07Ci0rLy8hICAgYGBgCi0rLy8hCi0rLy8hICAgU2VlIFtgaXNfbWF4X2Rh dGVgXSBvciBbYGlzX2V4YWN0X2RhdGVgXSB0byBjaGVjayBpZiB0aGUgY29tcGlsZXIgd2FzCi0r Ly8hICAgcmVsZWFzZWQgX3ByaW9yIHRvXyBvciBfZXhhY3RseSBvbl8gYSBjZXJ0YWluIGRhdGUu Ci0rLy8hCi0rLy8hICogQ2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0cyBm ZWF0dXJlIGZsYWdzOgotKy8vIQotKy8vISAgIGBgYHJ1c3QKLSsvLyEgICBleHRlcm4gY3JhdGUg dmVyc2lvbl9jaGVjayBhcyBydXN0YzsKLSsvLyEKLSsvLyEgICBtYXRjaCBydXN0Yzo6aXNfZmVh dHVyZV9mbGFnZ2FibGUoKSB7Ci0rLy8hICAgICAgIFNvbWUodHJ1ZSkgPT4gIlllcyEgSXQncyBh IGRldiBvciBuaWdodGx5IHJlbGVhc2UhIiwKLSsvLyEgICAgICAgU29tZShmYWxzZSkgPT4gIk5v LCBpdCdzIHN0YWJsZSBvciBiZXRhLiIsCi0rLy8hICAgICAgIE5vbmUgPT4gIkNvdWxkbid0IGRl dGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iCi0rLy8hICAgfTsKLSsvLyEgICBgYGAKLSsvLyEK LSsvLyEgKiBDaGVjayB0aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIHN1cHBvcnRzIGEgc3BlY2lm aWMgZmVhdHVyZToKLSsvLyEKLSsvLyEgICBgYGBydXN0Ci0rLy8hICAgZXh0ZXJuIGNyYXRlIHZl cnNpb25fY2hlY2sgYXMgcnVzdGM7Ci0rLy8hCi0rLy8hICAgaWYgbGV0IFNvbWUodHJ1ZSkgPSBy dXN0Yzo6c3VwcG9ydHNfZmVhdHVyZSgiZG9jX2NmZyIpIHsKLSsvLyEgICAgICBwcmludGxuISgi Y2FyZ286cnVzdGMtY2ZnPWhhc19kb2NfY2ZnIik7Ci0rLy8hICAgfQotKy8vISAgIGBgYAotKy8v IQotKy8vISAqIENoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgaXMgb24gdGhlIHN0YWJs ZSBjaGFubmVsOgotKy8vIQotKy8vISAgIGBgYHJ1c3QKLSsvLyEgICBleHRlcm4gY3JhdGUgdmVy c2lvbl9jaGVjayBhcyBydXN0YzsKLSsvLyEKLSsvLyEgICBtYXRjaCBydXN0Yzo6Q2hhbm5lbDo6 cmVhZCgpIHsKLSsvLyEgICAgICAgU29tZShjKSBpZiBjLmlzX3N0YWJsZSgpID0+IGZvcm1hdCEo IlllcyEgSXQncyBzdGFibGUuIiksCi0rLy8hICAgICAgIFNvbWUoYykgPT4gZm9ybWF0ISgiTm8s IHRoZSBjaGFubmVsIHt9IGlzIG5vdCBzdGFibGUuIiwgYyksCi0rLy8hICAgICAgIE5vbmUgPT4g Zm9ybWF0ISgiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIpCi0rLy8hICAg fTsKLSsvLyEgICBgYGAKLSsvLyEKLSsvLyEgVG8gaW50ZXJhY3Qgd2l0aCB0aGUgdmVyc2lvbiwg cmVsZWFzZSBkYXRlLCBhbmQgcmVsZWFzZSBjaGFubmVsIGFzIHN0cnVjdHMsCi0rLy8hIHVzZSBb YFZlcnNpb25gXSwgW2BEYXRlYF0sIGFuZCBbYENoYW5uZWxgXSwgcmVzcGVjdGl2ZWx5LiBUaGUg W2B0cmlwbGUoKWBdCi0rLy8hIGZ1bmN0aW9uIHJldHVybnMgYWxsIHRocmVlIHZhbHVlcyBlZmZp Y2llbnRseS4KLSsvLyEKLSsvLyEgIyBBbHRlcm5hdGl2ZXMKLSsvLyEKLSsvLyEgVGhpcyBjcmF0 ZSBpcyBkZWFkIHNpbXBsZSB3aXRoIG5vIGRlcGVuZGVuY2llcy4gSWYgeW91IG5lZWQgc29tZXRo aW5nIG1vcmUKLSsvLyEgYW5kIGRvbid0IGNhcmUgYWJvdXQgcGFuaWNraW5nIGlmIHRoZSB2ZXJz aW9uIGNhbm5vdCBiZSBvYnRhaW5lZCwgb3IgaWYgeW91Ci0rLy8hIGRvbid0IG1pbmQgYWRkaW5n IGRlcGVuZGVuY2llcywgc2VlCi0rLy8hIFtydXN0Y192ZXJzaW9uXShodHRwczovL2NyYXRlcy5p by9jcmF0ZXMvcnVzdGNfdmVyc2lvbikuCi0rCi0rIyFbYWxsb3coZGVwcmVjYXRlZCldCi0rCi0r bW9kIHZlcnNpb247Ci0rbW9kIGNoYW5uZWw7Ci0rbW9kIGRhdGU7Ci0rCi0rdXNlIHN0ZDo6ZW52 OwotK3VzZSBzdGQ6OnByb2Nlc3M6OkNvbW1hbmQ7Ci0rCi0rI1tkb2MoaW5saW5lKV0gcHViIHVz ZSB2ZXJzaW9uOjoqOwotKyNbZG9jKGlubGluZSldIHB1YiB1c2UgY2hhbm5lbDo6KjsKLSsjW2Rv YyhpbmxpbmUpXSBwdWIgdXNlIGRhdGU6Oio7Ci0rCi0rLy8vIFBhcnNlcyAodmVyc2lvbiwgZGF0 ZSkgYXMgYXZhaWxhYmxlIGZyb20gcnVzdGMgdmVyc2lvbiBzdHJpbmcuCi0rZm4gdmVyc2lvbl9h bmRfZGF0ZV9mcm9tX3J1c3RjX3ZlcnNpb24oczogJnN0cikgLT4gKE9wdGlvbjxTdHJpbmc+LCBP cHRpb248U3RyaW5nPikgewotKyAgICBsZXQgbGFzdF9saW5lID0gcy5saW5lcygpLmxhc3QoKS51 bndyYXBfb3Iocyk7Ci0rICAgIGxldCBtdXQgY29tcG9uZW50cyA9IGxhc3RfbGluZS50cmltKCku c3BsaXQoIiAiKTsKLSsgICAgbGV0IHZlcnNpb24gPSBjb21wb25lbnRzLm50aCgxKTsKLSsgICAg bGV0IGRhdGUgPSBjb21wb25lbnRzLmZpbHRlcih8Y3wgYy5lbmRzX3dpdGgoJyknKSkubmV4dCgp Ci0rICAgICAgICAubWFwKHxzfCBzLnRyaW1fcmlnaHQoKS50cmltX3JpZ2h0X21hdGNoZXMoIiki KS50cmltX2xlZnQoKS50cmltX2xlZnRfbWF0Y2hlcygnKCcpKTsKLSsgICAgKHZlcnNpb24ubWFw KHxzfCBzLnRvX3N0cmluZygpKSwgZGF0ZS5tYXAofHN8IHMudG9fc3RyaW5nKCkpKQotK30KLSsK LSsvLy8gUGFyc2VzICh2ZXJzaW9uLCBkYXRlKSBhcyBhdmFpbGFibGUgZnJvbSBydXN0YyB2ZXJi b3NlIHZlcnNpb24gb3V0cHV0LgotK2ZuIHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJi b3NlX3ZlcnNpb24oczogJnN0cikgLT4gKE9wdGlvbjxTdHJpbmc+LCBPcHRpb248U3RyaW5nPikg ewotKyAgICBsZXQgKG11dCB2ZXJzaW9uLCBtdXQgZGF0ZSkgPSAoTm9uZSwgTm9uZSk7Ci0rICAg IGZvciBsaW5lIGluIHMubGluZXMoKSB7Ci0rICAgICAgICBsZXQgc3BsaXQgPSB8czogJnN0cnwg cy5zcGxpdG4oMiwgIjoiKS5udGgoMSkubWFwKHxzfCBzLnRyaW0oKS50b19zdHJpbmcoKSk7Ci0r ICAgICAgICBtYXRjaCBsaW5lLnRyaW0oKS5zcGxpdCgiICIpLm50aCgwKSB7Ci0rICAgICAgICAg ICAgU29tZSgicnVzdGMiKSA9PiB7Ci0rICAgICAgICAgICAgICAgIGxldCAodiwgZCkgPSB2ZXJz aW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNfdmVyc2lvbihsaW5lKTsKLSsgICAgICAgICAgICAgICAg dmVyc2lvbiA9IHZlcnNpb24ub3Iodik7Ci0rICAgICAgICAgICAgICAgIGRhdGUgPSBkYXRlLm9y KGQpOwotKyAgICAgICAgICAgIH0sCi0rICAgICAgICAgICAgU29tZSgicmVsZWFzZToiKSA9PiB2 ZXJzaW9uID0gc3BsaXQobGluZSksCi0rICAgICAgICAgICAgU29tZSgiY29tbWl0LWRhdGU6Iikg aWYgbGluZS5lbmRzX3dpdGgoInVua25vd24iKSA9PiBkYXRlID0gTm9uZSwKLSsgICAgICAgICAg ICBTb21lKCJjb21taXQtZGF0ZToiKSA9PiBkYXRlID0gc3BsaXQobGluZSksCi0rICAgICAgICAg ICAgXyA9PiBjb250aW51ZQotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgICh2ZXJzaW9uLCBk YXRlKQotK30KLSsKLSsvLy8gUmV0dXJucyAodmVyc2lvbiwgZGF0ZSkgYXMgYXZhaWxhYmxlIGZy b20gYHJ1c3RjIC0tdmVyc2lvbmAuCi0rZm4gZ2V0X3ZlcnNpb25fYW5kX2RhdGUoKSAtPiBPcHRp b248KE9wdGlvbjxTdHJpbmc+LCBPcHRpb248U3RyaW5nPik+IHsKLSsgICAgbGV0IHJ1c3RjID0g ZW52Ojp2YXIoIlJVU1RDIikudW53cmFwX29yX2Vsc2UofF98ICJydXN0YyIudG9fc3RyaW5nKCkp OwotKyAgICBDb21tYW5kOjpuZXcocnVzdGMpLmFyZygiLS12ZXJib3NlIikuYXJnKCItLXZlcnNp b24iKS5vdXRwdXQoKS5vaygpCi0rICAgICAgICAuYW5kX3RoZW4ofG91dHB1dHwgU3RyaW5nOjpm cm9tX3V0Zjgob3V0cHV0LnN0ZG91dCkub2soKSkKLSsgICAgICAgIC5tYXAofHN8IHZlcnNpb25f YW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJib3NlX3ZlcnNpb24oJnMpKQotK30KLSsKLSsvLy8gUmVh ZHMgdGhlIHRyaXBsZSBvZiBbYFZlcnNpb25gXSwgW2BDaGFubmVsYF0sIGFuZCBbYERhdGVgXSBv ZiB0aGUgaW5zdGFsbGVkCi0rLy8vIG9yIHJ1bm5pbmcgYHJ1c3RjYC4KLSsvLy8KLSsvLy8gSWYg YW55IGF0dHJpYnV0ZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCAoc2VlIHRoZSBbdG9wLWxldmVsCi0r Ly8vIGRvY3VtZW50YXRpb25dKGNyYXRlKSksIHJldHVybnMgYE5vbmVgLgotKy8vLwotKy8vLyBU byBvYnRhaW4gb25seSBvbmUgb2YgdGhyZWUgYXR0cmlidXRlcywgdXNlIFtgVmVyc2lvbjo6cmVh ZCgpYF0sCi0rLy8vIFtgQ2hhbm5lbDo6cmVhZCgpYF0sIG9yIFtgRGF0ZTo6cmVhZCgpYF0uCi0r cHViIGZuIHRyaXBsZSgpIC0+IE9wdGlvbjwoVmVyc2lvbiwgQ2hhbm5lbCwgRGF0ZSk+IHsKLSsg ICAgbGV0ICh2ZXJzaW9uX3N0ciwgZGF0ZV9zdHIpID0gbWF0Y2ggZ2V0X3ZlcnNpb25fYW5kX2Rh dGUoKSB7Ci0rICAgICAgICBTb21lKChTb21lKHZlcnNpb24pLCBTb21lKGRhdGUpKSkgPT4gKHZl cnNpb24sIGRhdGUpLAotKyAgICAgICAgXyA9PiByZXR1cm4gTm9uZQotKyAgICB9OwotKwotKyAg ICAvLyBDYW4ndCB1c2UgYD9gIG9yIGB0cnkhYCBmb3IgYE9wdGlvbmAgaW4gMS4wLjAuCi0rICAg IG1hdGNoIFZlcnNpb246OnBhcnNlKCZ2ZXJzaW9uX3N0cikgewotKyAgICAgICAgU29tZSh2ZXJz aW9uKSA9PiBtYXRjaCBDaGFubmVsOjpwYXJzZSgmdmVyc2lvbl9zdHIpIHsKLSsgICAgICAgICAg ICBTb21lKGNoYW5uZWwpID0+IG1hdGNoIERhdGU6OnBhcnNlKCZkYXRlX3N0cikgewotKyAgICAg ICAgICAgICAgICBTb21lKGRhdGUpID0+IFNvbWUoKHZlcnNpb24sIGNoYW5uZWwsIGRhdGUpKSwK LSsgICAgICAgICAgICAgICAgXyA9PiBOb25lLAotKyAgICAgICAgICAgIH0sCi0rICAgICAgICAg ICAgXyA9PiBOb25lLAotKyAgICAgICAgfSwKLSsgICAgICAgIF8gPT4gTm9uZQotKyAgICB9Ci0r fQotKwotKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCB3 YXMgcmVsZWFzZWQgKipvbiBvciBhZnRlcioqCi0rLy8vIHNvbWUgZGF0ZS4KLSsvLy8KLSsvLy8g VGhlIGZvcm1hdCBvZiBgbWluX2RhdGVgIG11c3QgYmUgWVlZWS1NTS1ERC4gRm9yIGluc3RhbmNl OiBgMjAxNi0xMi0yMGAgb3IKLSsvLy8gYDIwMTctMDEtMDlgLgotKy8vLwotKy8vLyBJZiB0aGUg ZGF0ZSBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBhcnNlZCwgb3IgaWYgYG1pbl9kYXRlYCBjb3Vs ZCBub3QgYmUKLSsvLy8gcGFyc2VkLCByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMg YHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1c3RjYAotKy8vLyB3YXMgcmVsZWFzZSBvbiBvciBh ZnRlciBgbWluX2RhdGVgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KLStwdWIgZm4gaXNfbWluX2Rh dGUobWluX2RhdGU6ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7Ci0rICAgIG1hdGNoIChEYXRlOjpy ZWFkKCksIERhdGU6OnBhcnNlKG1pbl9kYXRlKSkgewotKyAgICAgICAgKFNvbWUocnVzdGNfZGF0 ZSksIFNvbWUobWluX2RhdGUpKSA9PiBTb21lKHJ1c3RjX2RhdGUgPj0gbWluX2RhdGUpLAotKyAg ICAgICAgXyA9PiBOb25lCi0rICAgIH0KLSt9Ci0rCi0rLy8vIENoZWNrcyB0aGF0IHRoZSBydW5u aW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIHdhcyByZWxlYXNlZCAqKm9uIG9yIGJlZm9yZSoqCi0r Ly8vIHNvbWUgZGF0ZS4KLSsvLy8KLSsvLy8gVGhlIGZvcm1hdCBvZiBgbWF4X2RhdGVgIG11c3Qg YmUgWVlZWS1NTS1ERC4gRm9yIGluc3RhbmNlOiBgMjAxNi0xMi0yMGAgb3IKLSsvLy8gYDIwMTct MDEtMDlgLgotKy8vLwotKy8vLyBJZiB0aGUgZGF0ZSBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBh cnNlZCwgb3IgaWYgYG1heF9kYXRlYCBjb3VsZCBub3QgYmUKLSsvLy8gcGFyc2VkLCByZXR1cm5z IGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMgYHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1c3Rj YAotKy8vLyB3YXMgcmVsZWFzZSBvbiBvciBiZWZvcmUgYG1heF9kYXRlYCBhbmQgYGZhbHNlYCBv dGhlcndpc2UuCi0rcHViIGZuIGlzX21heF9kYXRlKG1heF9kYXRlOiAmc3RyKSAtPiBPcHRpb248 Ym9vbD4gewotKyAgICBtYXRjaCAoRGF0ZTo6cmVhZCgpLCBEYXRlOjpwYXJzZShtYXhfZGF0ZSkp IHsKLSsgICAgICAgIChTb21lKHJ1c3RjX2RhdGUpLCBTb21lKG1heF9kYXRlKSkgPT4gU29tZShy dXN0Y19kYXRlIDw9IG1heF9kYXRlKSwKLSsgICAgICAgIF8gPT4gTm9uZQotKyAgICB9Ci0rfQot KwotKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCB3YXMg cmVsZWFzZWQgKipleGFjdGx5Kiogb24KLSsvLy8gc29tZSBkYXRlLgotKy8vLwotKy8vLyBUaGUg Zm9ybWF0IG9mIGBkYXRlYCBtdXN0IGJlIFlZWVktTU0tREQuIEZvciBpbnN0YW5jZTogYDIwMTYt MTItMjBgIG9yCi0rLy8vIGAyMDE3LTAxLTA5YC4KLSsvLy8KLSsvLy8gSWYgdGhlIGRhdGUgY2Fu bm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBkYXRlYCBjb3VsZCBub3QgYmUgcGFy c2VkLAotKy8vLyByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMgYHRydWVgIGlmIHRo ZSBpbnN0YWxsZWQgYHJ1c3RjYCB3YXMKLSsvLy8gcmVsZWFzZSBvbiBgZGF0ZWAgYW5kIGBmYWxz ZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBpc19leGFjdF9kYXRlKGRhdGU6ICZzdHIpIC0+IE9wdGlv bjxib29sPiB7Ci0rICAgIG1hdGNoIChEYXRlOjpyZWFkKCksIERhdGU6OnBhcnNlKGRhdGUpKSB7 Ci0rICAgICAgICAoU29tZShydXN0Y19kYXRlKSwgU29tZShkYXRlKSkgPT4gU29tZShydXN0Y19k YXRlID09IGRhdGUpLAotKyAgICAgICAgXyA9PiBOb25lCi0rICAgIH0KLSt9Ci0rCi0rLy8vIENo ZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIGlzICoqYXQgbGVhc3Qq KiBzb21lIG1pbmltdW0KLSsvLy8gdmVyc2lvbi4KLSsvLy8KLSsvLy8gVGhlIGZvcm1hdCBvZiBg bWluX3ZlcnNpb25gIGlzIGEgc2VtYW50aWMgdmVyc2lvbjogYDEuMy4wYCwgYDEuMTUuMC1iZXRh YCwKLSsvLy8gYDEuMTQuMGAsIGAxLjE2LjAtbmlnaHRseWAsIGV0Yy4KLSsvLy8KLSsvLy8gSWYg dGhlIHZlcnNpb24gY2Fubm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtaW5fdmVy c2lvbmAgY291bGQgbm90Ci0rLy8vIGJlIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lz ZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKLSsvLy8gaXMgYXQgbGVh c3QgYG1pbl92ZXJzaW9uYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0rcHViIGZuIGlzX21pbl92 ZXJzaW9uKG1pbl92ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4gewotKyAgICBtYXRjaCAo VmVyc2lvbjo6cmVhZCgpLCBWZXJzaW9uOjpwYXJzZShtaW5fdmVyc2lvbikpIHsKLSsgICAgICAg IChTb21lKHJ1c3RjX3ZlciksIFNvbWUobWluX3ZlcikpID0+IFNvbWUocnVzdGNfdmVyID49IG1p bl92ZXIpLAotKyAgICAgICAgXyA9PiBOb25lCi0rICAgIH0KLSt9Ci0rCi0rLy8vIENoZWNrcyB0 aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIGlzICoqYXQgbW9zdCoqIHNvbWUg bWF4aW11bQotKy8vLyB2ZXJzaW9uLgotKy8vLwotKy8vLyBUaGUgZm9ybWF0IG9mIGBtYXhfdmVy c2lvbmAgaXMgYSBzZW1hbnRpYyB2ZXJzaW9uOiBgMS4zLjBgLCBgMS4xNS4wLWJldGFgLAotKy8v LyBgMS4xNC4wYCwgYDEuMTYuMC1uaWdodGx5YCwgZXRjLgotKy8vLwotKy8vLyBJZiB0aGUgdmVy c2lvbiBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBhcnNlZCwgb3IgaWYgYG1heF92ZXJzaW9uYCBj b3VsZCBub3QKLSsvLy8gYmUgcGFyc2VkLCByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVy bnMgYHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1c3RjYAotKy8vLyBpcyBhdCBtb3N0IGBtYXhf dmVyc2lvbmAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBpc19tYXhfdmVyc2lvbiht YXhfdmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKLSsgICAgbWF0Y2ggKFZlcnNpb246 OnJlYWQoKSwgVmVyc2lvbjo6cGFyc2UobWF4X3ZlcnNpb24pKSB7Ci0rICAgICAgICAoU29tZShy dXN0Y192ZXIpLCBTb21lKG1heF92ZXIpKSA9PiBTb21lKHJ1c3RjX3ZlciA8PSBtYXhfdmVyKSwK LSsgICAgICAgIF8gPT4gTm9uZQotKyAgICB9Ci0rfQotKwotKy8vLyBDaGVja3MgdGhhdCB0aGUg cnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmV4YWN0bHkqKiBzb21lIHZlcnNpb24u Ci0rLy8vCi0rLy8vIFRoZSBmb3JtYXQgb2YgYHZlcnNpb25gIGlzIGEgc2VtYW50aWMgdmVyc2lv bjogYDEuMy4wYCwgYDEuMTUuMC1iZXRhYCwKLSsvLy8gYDEuMTQuMGAsIGAxLjE2LjAtbmlnaHRs eWAsIGV0Yy4KLSsvLy8KLSsvLy8gSWYgdGhlIHZlcnNpb24gY2Fubm90IGJlIHJldHJpZXZlZCBv ciBwYXJzZWQsIG9yIGlmIGB2ZXJzaW9uYCBjb3VsZCBub3QgYmUKLSsvLy8gcGFyc2VkLCByZXR1 cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMgYHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1 c3RjYCBpcwotKy8vLyBleGFjdGx5IGB2ZXJzaW9uYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0r cHViIGZuIGlzX2V4YWN0X3ZlcnNpb24odmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsK LSsgICAgbWF0Y2ggKFZlcnNpb246OnJlYWQoKSwgVmVyc2lvbjo6cGFyc2UodmVyc2lvbikpIHsK LSsgICAgICAgIChTb21lKHJ1c3RjX3ZlciksIFNvbWUodmVyc2lvbikpID0+IFNvbWUocnVzdGNf dmVyID09IHZlcnNpb24pLAotKyAgICAgICAgXyA9PiBOb25lCi0rICAgIH0KLSt9Ci0rCi0rLy8v IENoZWNrcyB3aGV0aGVyIHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIHN1cHBvcnRz IGZlYXR1cmUgZmxhZ3MuCi0rLy8vCi0rLy8vIEluIG90aGVyIHdvcmRzLCBpZiB0aGUgY2hhbm5l bCBpcyBlaXRoZXIgIm5pZ2h0bHkiIG9yICJkZXYiLgotKy8vLwotKy8vLyBOb3RlIHRoYXQgc3Vw cG9ydCBmb3Igc3BlY2lmaWMgYHJ1c3RjYCBmZWF0dXJlcyBjYW4gYmUgZW5hYmxlZCBvciBkaXNh YmxlZAotKy8vLyB2aWEgdGhlIGBhbGxvdy1mZWF0dXJlc2AgY29tcGlsZXIgZmxhZywgd2hpY2gg dGhpcyBmdW5jdGlvbiBfZG9lcyBub3RfCi0rLy8vIGNoZWNrLiBUaGF0IGlzLCB0aGlzIGZ1bmN0 aW9uIF9kb2VzIG5vdF8gY2hlY2sgd2hldGhlciBhIF9zcGVjaWZpY18gZmVhdHVyZQotKy8vLyBp cyBzdXBwb3J0ZWQsIGJ1dCBpbnN0ZWFkIHdoZXRoZXIgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZCBh dCBhbGwuIFRvIGNoZWNrCi0rLy8vIGZvciBzdXBwb3J0IGZvciBhIHNwZWNpZmljIGZlYXR1cmUs IHVzZSBbYHN1cHBvcnRzX2ZlYXR1cmUoKWBdLgotKy8vLwotKy8vLyBJZiB0aGUgdmVyc2lvbiBj b3VsZCBub3QgYmUgZGV0ZXJtaW5lZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5z Ci0rLy8vIGB0cnVlYCBpZiB0aGUgcnVubmluZyB2ZXJzaW9uIHN1cHBvcnRzIGZlYXR1cmUgZmxh Z3MgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBpc19mZWF0dXJlX2ZsYWdnYWJsZSgp IC0+IE9wdGlvbjxib29sPiB7Ci0rICAgIENoYW5uZWw6OnJlYWQoKS5tYXAofGN8IGMuc3VwcG9y dHNfZmVhdHVyZXMoKSkKLSt9Ci0rCi0rLy8vIENoZWNrcyB3aGV0aGVyIHRoZSBydW5uaW5nIG9y IGluc3RhbGxlZCBgcnVzdGNgIHN1cHBvcnRzIGBmZWF0dXJlYC4KLSsvLy8KLSsvLy8gUmV0dXJu cyBfdHJ1ZV8gX2lmZl8gW2Bpc19mZWF0dXJlX2ZsYWdnYWJsZSgpYF0gcmV0dXJucyBgdHJ1ZWAg X2FuZF8gdGhlCi0rLy8vIGZlYXR1cmUgaXMgbm90IGRpc2FibGVkIHZpYSBleGNsdXNpb24gaW4g YGFsbG93LWZlYXR1cmVzYCB2aWEgYFJVU1RGTEFHU2Agb3IKLSsvLy8gYENBUkdPX0VOQ09ERURf UlVTVEZMQUdTYC4gSWYgdGhlIHZlcnNpb24gY291bGQgbm90IGJlIGRldGVybWluZWQsIHJldHVy bnMKLSsvLy8gYE5vbmVgLgotKy8vLwotKy8vLyAjIEV4YW1wbGUKLSsvLy8KLSsvLy8gYGBgcnVz dAotKy8vLyB1c2UgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKLSsvLy8KLSsvLy8gaWYgbGV0IFNv bWUodHJ1ZSkgPSBydXN0Yzo6c3VwcG9ydHNfZmVhdHVyZSgiZG9jX2NmZyIpIHsKLSsvLy8gICAg cHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1oYXNfZG9jX2NmZyIpOwotKy8vLyB9Ci0rLy8vIGBg YAotK3B1YiBmbiBzdXBwb3J0c19mZWF0dXJlKGZlYXR1cmU6ICZzdHIpIC0+IE9wdGlvbjxib29s PiB7Ci0rICAgIG1hdGNoIGlzX2ZlYXR1cmVfZmxhZ2dhYmxlKCkgewotKyAgICAgICAgU29tZSh0 cnVlKSA9PiB7IC8qIGNvbnRpbnVlICovIH0KLSsgICAgICAgIFNvbWUoZmFsc2UpID0+IHJldHVy biBTb21lKGZhbHNlKSwKLSsgICAgICAgIE5vbmUgPT4gcmV0dXJuIE5vbmUsCi0rICAgIH0KLSsK LSsgICAgbGV0IGVudl9mbGFncyA9IGVudjo6dmFyX29zKCJDQVJHT19FTkNPREVEX1JVU1RGTEFH UyIpCi0rICAgICAgICAubWFwKHxmbGFnc3wgKGZsYWdzLCAnXHgxZicpKQotKyAgICAgICAgLm9y X2Vsc2UofHwgZW52Ojp2YXJfb3MoIlJVU1RGTEFHUyIpLm1hcCh8ZmxhZ3N8IChmbGFncywgJyAn KSkpOwotKwotKyAgICBpZiBsZXQgU29tZSgoZmxhZ3MsIGRlbGltKSkgPSBlbnZfZmxhZ3Mgewot KyAgICAgICAgY29uc3QgQUxMT1dfRkVBVFVSRVM6ICYnc3RhdGljIHN0ciA9ICJhbGxvdy1mZWF0 dXJlcz0iOwotKwotKyAgICAgICAgbGV0IHJ1c3RmbGFncyA9IGZsYWdzLnRvX3N0cmluZ19sb3Nz eSgpOwotKyAgICAgICAgbGV0IGFsbG93X2ZlYXR1cmVzID0gcnVzdGZsYWdzLnNwbGl0KGRlbGlt KQotKyAgICAgICAgICAgIC5tYXAofGZsYWd8IGZsYWcudHJpbV9sZWZ0X21hdGNoZXMoIi1aIiku dHJpbSgpKQotKyAgICAgICAgICAgIC5maWx0ZXIofGZsYWd8IGZsYWcuc3RhcnRzX3dpdGgoQUxM T1dfRkVBVFVSRVMpKQotKyAgICAgICAgICAgIC5tYXAofGZsYWd8ICZmbGFnW0FMTE9XX0ZFQVRV UkVTLmxlbigpLi5dKTsKLSsKLSsgICAgICAgIGlmIGxldCBTb21lKGFsbG93X2ZlYXR1cmVzKSA9 IGFsbG93X2ZlYXR1cmVzLmxhc3QoKSB7Ci0rICAgICAgICAgICAgcmV0dXJuIFNvbWUoYWxsb3df ZmVhdHVyZXMuc3BsaXQoJywnKS5hbnkofGZ8IGYudHJpbSgpID09IGZlYXR1cmUpKTsKLSsgICAg ICAgIH0KLSsgICAgfQotKwotKyAgICAvLyBJZiB0aGVyZSBhcmUgbm8gYFJVU1RGTEFHU2Agb3Ig YENBUkdPX0VOQ09ERURfUlVTVEZMQUdTYCBvciB0aGV5IGRvbid0Ci0rICAgIC8vIGNvbnRhaW4g YW4gYGFsbG93LWZlYXR1cmVzYCBmbGFnLCBhc3N1bWUgY29tcGlsZXIgYWxsb3dzIGFsbCBmZWF0 dXJlcy4KLSsgICAgU29tZSh0cnVlKQotK30KLSsKLSsjW2NmZyh0ZXN0KV0KLSttb2QgdGVzdHMg ewotKyAgICB1c2Ugc3RkOjp7ZW52LCBmc307Ci0rCi0rICAgIHVzZSBzdXBlcjo6dmVyc2lvbl9h bmRfZGF0ZV9mcm9tX3J1c3RjX3ZlcnNpb247Ci0rICAgIHVzZSBzdXBlcjo6dmVyc2lvbl9hbmRf ZGF0ZV9mcm9tX3J1c3RjX3ZlcmJvc2VfdmVyc2lvbjsKLSsKLSsgICAgbWFjcm9fcnVsZXMhIGNo ZWNrX3BhcnNlIHsKLSsgICAgICAgIChAICRmOmV4cHIsICRzOmV4cHIgPT4gJHY6ZXhwciwgJGQ6 ZXhwcikgPT4gKHsKLSsgICAgICAgICAgICBpZiBsZXQgKFNvbWUodiksIGQpID0gJGYoJiRzKSB7 Ci0rICAgICAgICAgICAgICAgIGxldCBlX2Q6IE9wdGlvbjwmc3RyPiA9ICRkLmludG8oKTsKLSsg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgodiwgZCksICgkdi50b19zdHJpbmcoKSwgZV9kLm1h cCh8c3wgcy5pbnRvKCkpKSk7Ci0rICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAg ICAgcGFuaWMhKCJ7Oj99IGRpZG4ndCBwYXJzZSBmb3IgdmVyc2lvbiB0ZXN0aW5nLiIsICRzKTsK LSsgICAgICAgICAgICB9Ci0rICAgICAgICB9KTsKLSsgICAgICAgICgkZjpleHByLCAkczpleHBy ID0+ICR2OmV4cHIsICRkOmV4cHIpID0+ICh7Ci0rICAgICAgICAgICAgbGV0IHdhcm4gPSAid2Fy bmluZzogaW52YWxpZCBsb2dnaW5nIHNwZWMgJ3dhcm5pbmcnLCBpZ25vcmluZyBpdCI7Ci0rICAg ICAgICAgICAgbGV0IHdhcm4yID0gIndhcm5pbmc6IHNvcnJ5LCBzb21ldGhpbmcgd2VudCB3cm9u ZyA6KHNhZCkiOwotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAkcyA9PiAkdiwgJGQp OwotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0ISgie31cbnt9Iiwgd2Fy biwgJHMpID0+ICR2LCAkZCk7Ci0rICAgICAgICAgICAgY2hlY2tfcGFyc2UhKEAgJGYsICZmb3Jt YXQhKCJ7fVxue30iLCB3YXJuMiwgJHMpID0+ICR2LCAkZCk7Ci0rICAgICAgICAgICAgY2hlY2tf cGFyc2UhKEAgJGYsICZmb3JtYXQhKCJ7fVxue31cbnt9Iiwgd2Fybiwgd2FybjIsICRzKSA9PiAk diwgJGQpOwotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0ISgie31cbnt9 XG57fSIsIHdhcm4yLCB3YXJuLCAkcykgPT4gJHYsICRkKTsKLSsgICAgICAgIH0pCi0rICAgIH0K LSsKLSsgICAgbWFjcm9fcnVsZXMhIGNoZWNrX3RlcnNlX3BhcnNlIHsKLSsgICAgICAgICgkKCRz OmV4cHIgPT4gJHY6ZXhwciwgJGQ6ZXhwciwpKykgPT4geyQoCi0rICAgICAgICAgICAgY2hlY2tf cGFyc2UhKHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJzaW9uLCAkcyA9PiAkdiwgJGQp OwotKyAgICAgICAgKSt9Ci0rICAgIH0KLSsKLSsgICAgbWFjcm9fcnVsZXMhIGNoZWNrX3ZlcmJv c2VfcGFyc2UgewotKyAgICAgICAgKCQoJHM6ZXhwciA9PiAkdjpleHByLCAkZDpleHByLCkrKSA9 PiB7JCgKLSsgICAgICAgICAgICBjaGVja19wYXJzZSEodmVyc2lvbl9hbmRfZGF0ZV9mcm9tX3J1 c3RjX3ZlcmJvc2VfdmVyc2lvbiwgJHMgPT4gJHYsICRkKTsKLSsgICAgICAgICkrfQotKyAgICB9 Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gdGVzdF92ZXJzaW9uX3BhcnNlKCkgewotKyAgICAg ICAgY2hlY2tfdGVyc2VfcGFyc2UhIHsKLSsgICAgICAgICAgICAicnVzdGMgMS4xOC4wIiA9PiAi MS4xOC4wIiwgTm9uZSwKLSsgICAgICAgICAgICAicnVzdGMgMS44LjAiID0+ICIxLjguMCIsIE5v bmUsCi0rICAgICAgICAgICAgInJ1c3RjIDEuMjAuMC1uaWdodGx5IiA9PiAiMS4yMC4wLW5pZ2h0 bHkiLCBOb25lLAotKyAgICAgICAgICAgICJydXN0YyAxLjIwIiA9PiAiMS4yMCIsIE5vbmUsCi0r ICAgICAgICAgICAgInJ1c3RjIDEuMyIgPT4gIjEuMyIsIE5vbmUsCi0rICAgICAgICAgICAgInJ1 c3RjIDEiID0+ICIxIiwgTm9uZSwKLSsgICAgICAgICAgICAicnVzdGMgMS41LjEtYmV0YSIgPT4g IjEuNS4xLWJldGEiLCBOb25lLAotKyAgICAgICAgICAgICJydXN0YyAxLjIwLjAgKDIwMTctMDct MDkpIiA9PiAiMS4yMC4wIiwgU29tZSgiMjAxNy0wNy0wOSIpLAotKyAgICAgICAgICAgICJydXN0 YyAxLjIwLjAtZGV2ICgyMDE3LTA3LTA5KSIgPT4gIjEuMjAuMC1kZXYiLCBTb21lKCIyMDE3LTA3 LTA5IiksCi0rICAgICAgICAgICAgInJ1c3RjIDEuMjAuMC1uaWdodGx5IChkODQ2OTNiOTMgMjAx Ny0wNy0wOSkiID0+ICIxLjIwLjAtbmlnaHRseSIsIFNvbWUoIjIwMTctMDctMDkiKSwKLSsgICAg ICAgICAgICAicnVzdGMgMS4yMC4wIChkODQ2OTNiOTMgMjAxNy0wNy0wOSkiID0+ICIxLjIwLjAi LCBTb21lKCIyMDE3LTA3LTA5IiksCi0rICAgICAgICAgICAgInJ1c3RjIDEuMzAuMC1uaWdodGx5 ICgzYmMyY2E3ZTQgMjAxOC0wOS0yMCkiID0+ICIxLjMwLjAtbmlnaHRseSIsIFNvbWUoIjIwMTgt MDktMjAiKSwKLSsgICAgICAgIH07Ci0rICAgIH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiB0 ZXN0X3ZlcmJvc2VfdmVyc2lvbl9wYXJzZSgpIHsKLSsgICAgICAgIGNoZWNrX3ZlcmJvc2VfcGFy c2UhIHsKLSsgICAgICAgICAgICAicnVzdGMgMS4wLjAgKGE1OWRlMzdlOSAyMDE1LTA1LTEzKSAo YnVpbHQgMjAxNS0wNS0xNClcblwKLSsgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0Y1xuXAot KyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogYTU5ZGUzN2U5OTA2MDE2MmEyNjc0ZTNmZjQ1 NDA5YWM3MzU5NWMwZVxuXAotKyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogMjAxNS0wNS0x M1xuXAotKyAgICAgICAgICAgICAgICBidWlsZC1kYXRlOiAyMDE1LTA1LTE0XG5cCi0rICAgICAg ICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAotKyAgICAgICAgICAg ICAgICByZWxlYXNlOiAxLjAuMCIgPT4gIjEuMC4wIiwgU29tZSgiMjAxNS0wNS0xMyIpLAotKwot KyAgICAgICAgICAgICJydXN0YyAxLjAuMCAoYTU5ZGUzN2U5IDIwMTUtMDUtMTMpIChidWlsdCAy MDE1LTA1LTE0KVxuXAotKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogYTU5ZGUzN2U5OTA2 MDE2MmEyNjc0ZTNmZjQ1NDA5YWM3MzU5NWMwZVxuXAotKyAgICAgICAgICAgICAgICBjb21taXQt ZGF0ZTogMjAxNS0wNS0xM1xuXAotKyAgICAgICAgICAgICAgICBidWlsZC1kYXRlOiAyMDE1LTA1 LTE0XG5cCi0rICAgICAgICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxu XAotKyAgICAgICAgICAgICAgICByZWxlYXNlOiAxLjAuMCIgPT4gIjEuMC4wIiwgU29tZSgiMjAx NS0wNS0xMyIpLAotKwotKyAgICAgICAgICAgICJydXN0YyAxLjUwLjAgKGNiNzVhZDVkYiAyMDIx LTAyLTEwKVxuXAotKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCi0rICAgICAgICAg ICAgICAgIGNvbW1pdC1oYXNoOiBjYjc1YWQ1ZGIwMjc4M2U4YjAyMjJmZWUzNjNjNWY2M2Y3ZTJj ZjViXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiAyMDIxLTAyLTEwXG5cCi0rICAg ICAgICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAotKyAgICAgICAg ICAgICAgICByZWxlYXNlOiAxLjUwLjAiID0+ICIxLjUwLjAiLCBTb21lKCIyMDIxLTAyLTEwIiks Ci0rCi0rICAgICAgICAgICAgInJ1c3RjIDEuNTIuMC1uaWdodGx5ICgyMzQ3ODFhZmUgMjAyMS0w My0wNylcblwKLSsgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0Y1xuXAotKyAgICAgICAgICAg ICAgICBjb21taXQtaGFzaDogMjM0NzgxYWZlMzNkM2YzMzliMDAyZjg1Zjk0ODA0NmQ4NDc2Y2Zj OVxuXAotKyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogMjAyMS0wMy0wN1xuXAotKyAgICAg ICAgICAgICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAg ICAgICAgcmVsZWFzZTogMS41Mi4wLW5pZ2h0bHlcblwKLSsgICAgICAgICAgICAgICAgTExWTSB2 ZXJzaW9uOiAxMi4wLjAiID0+ICIxLjUyLjAtbmlnaHRseSIsIFNvbWUoIjIwMjEtMDMtMDciKSwK LSsKLSsgICAgICAgICAgICAicnVzdGMgMS40MS4xXG5cCi0rICAgICAgICAgICAgICAgIGJpbmFy eTogcnVzdGNcblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IHVua25vd25cblwKLSsg ICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IHVua25vd25cblwKLSsgICAgICAgICAgICAgICAg aG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCi0rICAgICAgICAgICAgICAgIHJlbGVh c2U6IDEuNDEuMVxuXAotKyAgICAgICAgICAgICAgICBMTFZNIHZlcnNpb246IDcuMCIgPT4gIjEu NDEuMSIsIE5vbmUsCi0rCi0rICAgICAgICAgICAgInJ1c3RjIDEuNDkuMFxuXAotKyAgICAgICAg ICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiB1 bmtub3duXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiB1bmtub3duXG5cCi0rICAg ICAgICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAotKyAgICAgICAg ICAgICAgICByZWxlYXNlOiAxLjQ5LjAiID0+ICIxLjQ5LjAiLCBOb25lLAotKwotKyAgICAgICAg ICAgICJydXN0YyAxLjUwLjAgKEZlZG9yYSAxLjUwLjAtMS5mYzMzKVxuXAotKyAgICAgICAgICAg ICAgICBiaW5hcnk6IHJ1c3RjXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiB1bmtu b3duXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiB1bmtub3duXG5cCi0rICAgICAg ICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAotKyAgICAgICAgICAg ICAgICByZWxlYXNlOiAxLjUwLjAiID0+ICIxLjUwLjAiLCBOb25lLAotKyAgICAgICAgfTsKLSsg ICAgfQotKwotKyAgICBmbiByZWFkX3N0YXRpYyh2ZXJib3NlOiBib29sLCBjaGFubmVsOiAmc3Ry LCBtaW5vcjogdXNpemUpIC0+IFN0cmluZyB7Ci0rICAgICAgICB1c2Ugc3RkOjpmczo6RmlsZTsK LSsgICAgICAgIHVzZSBzdGQ6OnBhdGg6OlBhdGg7Ci0rICAgICAgICB1c2Ugc3RkOjppbzo6e0J1 ZlJlYWRlciwgUmVhZH07Ci0rCi0rICAgICAgICBsZXQgc3ViZGlyID0gaWYgdmVyYm9zZSB7ICJ2 ZXJib3NlIiB9IGVsc2UgeyAidGVyc2UiIH07Ci0rICAgICAgICBsZXQgcGF0aCA9IFBhdGg6Om5l dyhTVEFUSUNfUEFUSCkKLSsgICAgICAgICAgICAuam9pbihjaGFubmVsKQotKyAgICAgICAgICAg IC5qb2luKHN1YmRpcikKLSsgICAgICAgICAgICAuam9pbihmb3JtYXQhKCJydXN0Yy0xLnt9LjAi LCBtaW5vcikpOwotKwotKyAgICAgICAgbGV0IGZpbGUgPSBGaWxlOjpvcGVuKHBhdGgpLnVud3Jh cCgpOwotKyAgICAgICAgbGV0IG11dCBidWZfcmVhZGVyID0gQnVmUmVhZGVyOjpuZXcoZmlsZSk7 Ci0rICAgICAgICBsZXQgbXV0IGNvbnRlbnRzID0gU3RyaW5nOjpuZXcoKTsKLSsgICAgICAgIGJ1 Zl9yZWFkZXIucmVhZF90b19zdHJpbmcoJm11dCBjb250ZW50cykudW53cmFwKCk7Ci0rICAgICAg ICBjb250ZW50cwotKyAgICB9Ci0rCi0rICAgIHN0YXRpYyBTVEFUSUNfUEFUSDogJidzdGF0aWMg c3RyID0gY29uY2F0IShlbnYhKCJDQVJHT19NQU5JRkVTVF9ESVIiKSwgIi9zdGF0aWMiKTsKLSsK LSsgICAgc3RhdGljIERBVEVTOiBbJidzdGF0aWMgc3RyOyA1MV0gPSBbCi0rICAgICAgICAiMjAx NS0wNS0xMyIsICIyMDE1LTA2LTE5IiwgIjIwMTUtMDgtMDMiLCAiMjAxNS0wOS0xNSIsICIyMDE1 LTEwLTI3IiwKLSsgICAgICAgICIyMDE1LTEyLTA0IiwgIjIwMTYtMDEtMTkiLCAiMjAxNi0wMi0y OSIsICIyMDE2LTA0LTExIiwgIjIwMTYtMDUtMTgiLAotKyAgICAgICAgIjIwMTYtMDctMDMiLCAi MjAxNi0wOC0xNSIsICIyMDE2LTA5LTIzIiwgIjIwMTYtMTEtMDciLCAiMjAxNi0xMi0xNiIsCi0r ICAgICAgICAiMjAxNy0wMS0xOSIsICIyMDE3LTAzLTEwIiwgIjIwMTctMDQtMjQiLCAiMjAxNy0w Ni0wNiIsICIyMDE3LTA3LTE3IiwKLSsgICAgICAgICIyMDE3LTA4LTI3IiwgIjIwMTctMTAtMDki LCAiMjAxNy0xMS0yMCIsICIyMDE4LTAxLTAxIiwgIjIwMTgtMDItMTIiLAotKyAgICAgICAgIjIw MTgtMDMtMjUiLCAiMjAxOC0wNS0wNyIsICIyMDE4LTA2LTE5IiwgIjIwMTgtMDctMzAiLCAiMjAx OC0wOS0xMSIsCi0rICAgICAgICAiMjAxOC0xMC0yNCIsICIyMDE4LTEyLTA0IiwgIjIwMTktMDEt MTYiLCAiMjAxOS0wMi0yOCIsICIyMDE5LTA0LTEwIiwKLSsgICAgICAgICIyMDE5LTA1LTIwIiwg IjIwMTktMDctMDMiLCAiMjAxOS0wOC0xMyIsICIyMDE5LTA5LTIzIiwgIjIwMTktMTEtMDQiLAot KyAgICAgICAgIjIwMTktMTItMTYiLCAiMjAyMC0wMS0yNyIsICIyMDIwLTAzLTA5IiwgIjIwMjAt MDQtMjAiLCAiMjAyMC0wNi0wMSIsCi0rICAgICAgICAiMjAyMC0wNy0xMyIsICIyMDIwLTA4LTI0 IiwgIjIwMjAtMTAtMDciLCAiMjAyMC0xMS0xNiIsICIyMDIwLTEyLTI5IiwKLSsgICAgICAgICIy MDIxLTAyLTEwIiwKLSsgICAgXTsKLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiB0ZXN0X3N0YWJs ZV9jb21wYXRpYmlsaXR5KCkgewotKyAgICAgICAgaWYgZW52Ojp2YXJfb3MoIkZPUkNFX1NUQVRJ QyIpLmlzX25vbmUoKSAmJiBmczo6bWV0YWRhdGEoU1RBVElDX1BBVEgpLmlzX2VycigpIHsKLSsg ICAgICAgICAgICAvLyBXZSBleGNsdWRlIGAvc3RhdGljYCB3aGVuIHdlIHBhY2thZ2UgYHZlcnNp b25fY2hlY2tgLCBzbyBkb24ndAotKyAgICAgICAgICAgIC8vIHJ1biBpZiBzdGF0aWMgZmlsZXMg YXJlbid0IHByZXNlbnQgdW5sZXNzIHdlIGtub3cgdGhleSBzaG91bGQgYmUuCi0rICAgICAgICAg ICAgcmV0dXJuOwotKyAgICAgICAgfQotKwotKyAgICAgICAgLy8gRW5zdXJlIHdlIGNhbiBwYXJz ZSBhbGwgb3V0cHV0IGZyb20gYWxsIExpbnV4IHN0YWJsZSByZWxlYXNlcy4KLSsgICAgICAgIGZv ciB2IGluIDAuLkRBVEVTLmxlbigpIHsKLSsgICAgICAgICAgICBsZXQgKHZlcnNpb24sIGRhdGUp ID0gKCZmb3JtYXQhKCIxLnt9LjAiLCB2KSwgU29tZShEQVRFU1t2XSkpOwotKyAgICAgICAgICAg IGNoZWNrX3RlcnNlX3BhcnNlIShyZWFkX3N0YXRpYyhmYWxzZSwgInN0YWJsZSIsIHYpID0+IHZl cnNpb24sIGRhdGUsKTsKLSsgICAgICAgICAgICBjaGVja192ZXJib3NlX3BhcnNlIShyZWFkX3N0 YXRpYyh0cnVlLCAic3RhYmxlIiwgdikgPT4gdmVyc2lvbiwgZGF0ZSwpOwotKyAgICAgICAgfQot KyAgICB9Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gdGVzdF9wYXJzZV9jdXJyZW50KCkgewot KyAgICAgICAgbGV0ICh2ZXJzaW9uLCBjaGFubmVsKSA9ICg6OlZlcnNpb246OnJlYWQoKSwgOjpD aGFubmVsOjpyZWFkKCkpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmlzX3NvbWUoKSk7Ci0r ICAgICAgICBhc3NlcnQhKGNoYW5uZWwuaXNfc29tZSgpKTsKLSsKLSsgICAgICAgIGlmIGxldCBP ayhrbm93bl9jaGFubmVsKSA9IGVudjo6dmFyKCJLTk9XTl9DSEFOTkVMIikgewotKyAgICAgICAg ICAgIGFzc2VydF9lcSEoY2hhbm5lbCwgOjpDaGFubmVsOjpwYXJzZSgma25vd25fY2hhbm5lbCkp OwotKyAgICAgICAgfQotKyAgICB9Ci0rfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv dmVyc2lvbl9jaGVjay9zcmMvdmVyc2lvbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9j aGVjay9zcmMvdmVyc2lvbi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNr L3NyYy92ZXJzaW9uLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL3ZlcnNpb24ucnMJMjAyNS0wOS0x NyAxNzo0MTo0Ny41MDc3OTU1MjIgKzAzMDAKLUBAIC0wLDAgKzEsMzE2IEBACi0rdXNlIHN0ZDo6 Zm10OwotKwotKy8vLyBWZXJzaW9uIG51bWJlcjogYG1ham9yLm1pbm9yLnBhdGNoYCwgaWdub3Jp bmcgcmVsZWFzZSBjaGFubmVsLgotKyNbZGVyaXZlKFBhcnRpYWxFcSwgRXEsIENvcHksIENsb25l LCBQYXJ0aWFsT3JkLCBPcmQpXQotK3B1YiBzdHJ1Y3QgVmVyc2lvbih1NjQpOwotKwotK2ltcGwg VmVyc2lvbiB7Ci0rICAgIC8vLyBSZWFkcyB0aGUgdmVyc2lvbiBvZiB0aGUgcnVubmluZyBjb21w aWxlci4gSWYgaXQgY2Fubm90IGJlIGRldGVybWluZWQKLSsgICAgLy8vIChzZWUgdGhlIFt0b3At bGV2ZWwgZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAuCi0rICAgIC8vLwot KyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8g dXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247Ci0rICAgIC8vLwotKyAgICAvLy8gbWF0Y2ggVmVy c2lvbjo6cmVhZCgpIHsKLSsgICAgLy8vICAgICBTb21lKGQpID0+IGZvcm1hdCEoIlZlcnNpb24g aXM6IHt9IiwgZCksCi0rICAgIC8vLyAgICAgTm9uZSA9PiBmb3JtYXQhKCJGYWlsZWQgdG8gcmVh ZCB0aGUgdmVyc2lvbi4iKQotKyAgICAvLy8gfTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4g cmVhZCgpIC0+IE9wdGlvbjxWZXJzaW9uPiB7Ci0rICAgICAgICA6OmdldF92ZXJzaW9uX2FuZF9k YXRlKCkKLSsgICAgICAgICAgICAuYW5kX3RoZW4ofCh2ZXJzaW9uLCBfKXwgdmVyc2lvbikKLSsg ICAgICAgICAgICAuYW5kX3RoZW4ofHZlcnNpb258IFZlcnNpb246OnBhcnNlKCZ2ZXJzaW9uKSkK LSsgICAgfQotKwotKwotKyAgICAvLy8gUGFyc2UgYSBSdXN0IHJlbGVhc2UgdmVyc2lvbiAob2Yg dGhlIGZvcm0KLSsgICAgLy8vIGBtYWpvclsubWlub3JbLnBhdGNoWy1jaGFubmVsXV1dYCksIGln bm9yaW5nIHRoZSByZWxlYXNlIGNoYW5uZWwsIGlmCi0rICAgIC8vLyBhbnkuIFJldHVybnMgYE5v bmVgIGlmIGB2ZXJzaW9uYCBpcyBub3QgYSB2YWxpZCBSdXN0IHZlcnNpb24gc3RyaW5nLgotKyAg ICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsg ICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOwotKyAgICAvLy8KLSsgICAgLy8vIGxl dCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMTguMCIpLnVud3JhcCgpOwotKyAgICAvLy8g YXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMTguMCIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBs ZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjIwLjAtbmlnaHRseSIpLnVud3JhcCgpOwot KyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMjAuMCIpKTsKLSsgICAgLy8vIGFz c2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAtYmV0YSIpKTsKLSsgICAgLy8vCi0rICAgIC8v LyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjMiKS51bndyYXAoKTsKLSsgICAgLy8v IGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjMuMCIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBs ZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3Nl cnQhKHZlcnNpb24uZXhhY3RseSgiMS4wLjAiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0 IShWZXJzaW9uOjpwYXJzZSgib25lLnR3by50aHJlZSIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBh c3NlcnQhKFZlcnNpb246OnBhcnNlKCIxLjY1NTM2LjIiKS5pc19ub25lKCkpOwotKyAgICAvLy8g YXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgiMS4gMiIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3Nl cnQhKFZlcnNpb246OnBhcnNlKCIiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShWZXJz aW9uOjpwYXJzZSgiMS4iKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpw YXJzZSgiMS4yLjMuNCIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHBh cnNlKHZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxWZXJzaW9uPiB7Ci0rICAgICAgICBsZXQgc3Bs aXRzID0gdmVyc2lvbi5zcGxpdCgnLScpCi0rICAgICAgICAgICAgLm50aCgwKQotKyAgICAgICAg ICAgIC51bndyYXBfb3IoIiIpCi0rICAgICAgICAgICAgLnNwbGl0KCcuJykKLSsgICAgICAgICAg ICAubWFwKHxzfCBzLnBhcnNlOjo8dTE2PigpKTsKLSsKLSsgICAgICAgIGxldCBtdXQgbW1wID0g WzB1MTY7IDNdOwotKyAgICAgICAgZm9yIChpLCBzcGxpdCkgaW4gc3BsaXRzLmVudW1lcmF0ZSgp IHsKLSsgICAgICAgICAgICBtbXBbaV0gPSBtYXRjaCAoaSwgc3BsaXQpIHsKLSsgICAgICAgICAg ICAgICAgKDMsIF8pIHwgKF8sIEVycihfKSkgPT4gcmV0dXJuIE5vbmUsCi0rICAgICAgICAgICAg ICAgIChfLCBPayh2KSkgPT4gdiwKLSsgICAgICAgICAgICB9OwotKyAgICAgICAgfQotKwotKyAg ICAgICAgbGV0IChtYWosIG1pbiwgcGF0Y2gpID0gKG1tcFswXSwgbW1wWzFdLCBtbXBbMl0pOwot KyAgICAgICAgU29tZShWZXJzaW9uOjpmcm9tX21tcChtYWosIG1pbiwgcGF0Y2gpKQotKyAgICB9 Ci0rCi0rICAgIC8vLyBDcmVhdGVzIGEgYFZlcnNpb25gIGZyb20gYChtYWpvciwgbWlub3IsIHBh dGNoKWAgdmVyc2lvbiBjb21wb25lbnRzLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQot KyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpW ZXJzaW9uOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6ZnJvbV9tbXAoMSwg MzUsIDApLmV4YWN0bHkoIjEuMzUuMCIpKTsKLSsgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6ZnJv bV9tbXAoMSwgMzMsIDApLmV4YWN0bHkoIjEuMzMuMCIpKTsKLSsgICAgLy8vIGFzc2VydCEoVmVy c2lvbjo6ZnJvbV9tbXAoMSwgMzUsIDEpLmV4YWN0bHkoIjEuMzUuMSIpKTsKLSsgICAgLy8vIGFz c2VydCEoVmVyc2lvbjo6ZnJvbV9tbXAoMSwgMTMsIDIpLmV4YWN0bHkoIjEuMTMuMiIpKTsKLSsg ICAgLy8vIGBgYAotKyAgICBwdWIgZm4gZnJvbV9tbXAobWFqb3I6IHUxNiwgbWlub3I6IHUxNiwg cGF0Y2g6IHUxNikgLT4gVmVyc2lvbiB7Ci0rICAgICAgICBWZXJzaW9uKCgobWFqb3IgYXMgdTY0 KSA8PCAzMikgfCAoKG1pbm9yIGFzIHU2NCkgPDwgMTYpIHwgcGF0Y2ggYXMgdTY0KQotKyAgICB9 Ci0rCi0rICAgIC8vLyBSZXR1cm5zIHRoZSBgKG1ham9yLCBtaW5vciwgcGF0Y2gpYCB2ZXJzaW9u IGNvbXBvbmVudHMgb2YgYHNlbGZgLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAg ICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJz aW9uOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoIjEuMzUu MCIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMzUsIDApKTsKLSsgICAgLy8vIGFzc2VydF9lcSEo VmVyc2lvbjo6cGFyc2UoIjEuMzMuMCIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMzMsIDApKTsK LSsgICAgLy8vIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoIjEuMzUuMSIpLnVud3JhcCgpLnRv X21tcCgpLCAoMSwgMzUsIDEpKTsKLSsgICAgLy8vIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2Uo IjEuMTMuMiIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMTMsIDIpKTsKLSsgICAgLy8vIGBgYAot KyAgICBwdWIgZm4gdG9fbW1wKCZzZWxmKSAtPiAodTE2LCB1MTYsIHUxNikgewotKyAgICAgICAg bGV0IG1ham9yID0gc2VsZi4wID4+IDMyOwotKyAgICAgICAgbGV0IG1pbm9yID0gc2VsZi4wID4+ IDE2OwotKyAgICAgICAgbGV0IHBhdGNoID0gc2VsZi4wOwotKyAgICAgICAgKG1ham9yIGFzIHUx NiwgbWlub3IgYXMgdTE2LCBwYXRjaCBhcyB1MTYpCi0rICAgIH0KLSsKLSsgICAgLy8vIFJldHVy bnMgYHRydWVgIGlmIGBzZWxmYCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYHZlcnNpb25g LgotKyAgICAvLy8KLSsgICAgLy8vIElmIGB2ZXJzaW9uYCBpcyBncmVhdGVyIHRoYW4gYHNlbGZg LCBvciBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdAotKyAgICAvLy8gdmVyc2lvbiBz dHJpbmcsIHJldHVybnMgYGZhbHNlYC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsg ICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVy c2lvbjsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIx LjM1LjAiKS51bndyYXAoKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRf bGVhc3QoIjEuMzMuMCIpKTsKLSsgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4z NS4wIikpOwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjEzLjIiKSk7Ci0r ICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9sZWFzdCgiMS4zNS4xIikpOwot KyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9sZWFzdCgiMS41NS4wIikpOwotKyAgICAvLy8K LSsgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMTIuNSIpLnVud3JhcCgp OwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4xMi4wIikp OwotKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9sZWFzdCgiMS4zNS4wIikpOwotKyAgICAv Ly8gYGBgCi0rICAgIHB1YiBmbiBhdF9sZWFzdCgmc2VsZiwgdmVyc2lvbjogJnN0cikgLT4gYm9v bCB7Ci0rICAgICAgICBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKQotKyAgICAgICAgICAgIC5tYXAo fHZlcnNpb258IHNlbGYgPj0gJnZlcnNpb24pCi0rICAgICAgICAgICAgLnVud3JhcF9vcihmYWxz ZSkKLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIGlzIGxlc3Mg dGhhbiBvciBlcXVhbCB0byBgdmVyc2lvbmAuCi0rICAgIC8vLwotKyAgICAvLy8gSWYgYHZlcnNp b25gIGlzIGxlc3MgdGhhbiBgc2VsZmAsIG9yIGlmIGB2ZXJzaW9uYCBpcyBub3QgYSB2YWxpZCBS dXN0Ci0rICAgIC8vLyB2ZXJzaW9uIHN0cmluZywgcmV0dXJucyBgZmFsc2VgLgotKyAgICAvLy8K LSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8v IHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCB2ZXJz aW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMzUuMCIpLnVud3JhcCgpOwotKyAgICAvLy8KLSsgICAg Ly8vIGFzc2VydCEodmVyc2lvbi5hdF9tb3N0KCIxLjM1LjEiKSk7Ci0rICAgIC8vLyBhc3NlcnQh KHZlcnNpb24uYXRfbW9zdCgiMS41NS4wIikpOwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0 X21vc3QoIjEuMzUuMCIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmF0 X21vc3QoIjEuMzMuMCIpKTsKLSsgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uYXRfbW9zdCgiMS4x My4yIikpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBhdF9tb3N0KCZzZWxmLCB2ZXJzaW9u OiAmc3RyKSAtPiBib29sIHsKLSsgICAgICAgIFZlcnNpb246OnBhcnNlKHZlcnNpb24pCi0rICAg ICAgICAgICAgLm1hcCh8dmVyc2lvbnwgc2VsZiA8PSAmdmVyc2lvbikKLSsgICAgICAgICAgICAu dW53cmFwX29yKGZhbHNlKQotKyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBg c2VsZmAgaXMgZXhhY3RseSBlcXVhbCB0byBgdmVyc2lvbmAuCi0rICAgIC8vLwotKyAgICAvLy8g SWYgYHZlcnNpb25gIGlzIG5vdCBlcXVhbCB0byBgc2VsZmAsIG9yIGlmIGB2ZXJzaW9uYCBpcyBu b3QgYSB2YWxpZCBSdXN0Ci0rICAgIC8vLyB2ZXJzaW9uIHN0cmluZywgcmV0dXJucyBgZmFsc2Vg LgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1 c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOwotKyAgICAvLy8KLSsgICAg Ly8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMzUuMCIpLnVud3JhcCgpOwotKyAg ICAvLy8KLSsgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjM1LjAiKSk7Ci0rICAg IC8vLwotKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjMzLjAiKSk7Ci0rICAg IC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMzUuMSIpKTsKLSsgICAgLy8vIGFzc2Vy dCEoIXZlcnNpb24uZXhhY3RseSgiMS4xMy4yIikpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBm biBleGFjdGx5KCZzZWxmLCB2ZXJzaW9uOiAmc3RyKSAtPiBib29sIHsKLSsgICAgICAgIFZlcnNp b246OnBhcnNlKHZlcnNpb24pCi0rICAgICAgICAgICAgLm1hcCh8dmVyc2lvbnwgc2VsZiA9PSAm dmVyc2lvbikKLSsgICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQotKyAgICB9Ci0rfQotKwot K2ltcGwgZm10OjpEaXNwbGF5IGZvciBWZXJzaW9uIHsKLSsgICAgZm4gZm10KCZzZWxmLCBmOiAm bXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7Ci0rICAgICAgICBsZXQgKG1ham9y LCBtaW5vciwgcGF0Y2gpID0gc2VsZi50b19tbXAoKTsKLSsgICAgICAgIHdyaXRlIShmLCAie30u e30ue30iLCBtYWpvciwgbWlub3IsIHBhdGNoKQotKyAgICB9Ci0rfQotKwotK2ltcGwgZm10OjpE ZWJ1ZyBmb3IgVmVyc2lvbiB7Ci0rICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1h dHRlcikgLT4gZm10OjpSZXN1bHQgewotKyAgICAgICAgLy8gV2UgZG9uJ3QgdXNlIGBkZWJ1Z18q YCBiZWNhdXNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiBgMS4wLjBgLgotKyAgICAgICAgd3JpdGUh KGYsICJWZXJzaW9uKHs6P30sIHs6P30pIiwgc2VsZi4wLCBzZWxmLnRvX21tcCgpKQotKyAgICB9 Ci0rfQotKwotKyNbY2ZnKHRlc3QpXQotK21vZCB0ZXN0cyB7Ci0rICAgIHVzZSBzdXBlcjo6VmVy c2lvbjsKLSsKLSsgICAgbWFjcm9fcnVsZXMhIGFzc2VydF90b19tbXAgewotKyAgICAgICAgLy8g V2UgZG9uJ3QgdXNlIGAuaW50bzo6PE9wdGlvbjxfPj5gIGJlY2F1c2UgaXQncyBub3QgYXZhaWxh YmxlIGluIDEuMC4KLSsgICAgICAgIC8vIFdlIGRvbid0IHVzZSB0aGUgbWVzc2FnZSBwYXJ0IG9m IGBhc3NlcnQhYCBmb3IgdGhlIHNhbWUgcmVhc29uLgotKyAgICAgICAgKCRzOmV4cHIsIE5vbmUp ID0+ICgKLSsgICAgICAgICAgICBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCRzKSwgTm9uZSk7 Ci0rICAgICAgICApOwotKyAgICAgICAgKCRzOmV4cHIsICRtbXA6ZXhwcikgPT4gKAotKyAgICAg ICAgICAgIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoJHMpLm1hcCh8dnwgdi50b19tbXAoKSks IFNvbWUoJG1tcCkpOwotKyAgICAgICAgKQotKyAgICB9Ci0rCi0rICAgIG1hY3JvX3J1bGVzISBh c3NlcnRfZnJvbV9tbXAgewotKyAgICAgICAgKCgkeDpleHByLCAkeTpleHByLCAkejpleHByKSA9 PiAkczpleHByKSA9PiB7Ci0rICAgICAgICAgICAgYXNzZXJ0X2VxIShTb21lKFZlcnNpb246OmZy b21fbW1wKCR4LCAkeSwgJHopKSwgVmVyc2lvbjo6cGFyc2UoJHMpKTsKLSsgICAgICAgIH07Ci0r ICAgIH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiB0ZXN0X3N0cl90b19tbXAoKSB7Ci0rICAg ICAgICBhc3NlcnRfdG9fbW1wISgiMSIsICgxLCAwLCAwKSk7Ci0rICAgICAgICBhc3NlcnRfdG9f bW1wISgiMS4yIiwgKDEsIDIsIDApKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjE4LjAi LCAoMSwgMTgsIDApKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIzLjE5LjAiLCAoMywgMTks IDApKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjE5LjAtbmlnaHRseSIsICgxLCAxOSwg MCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMTIuMjM0OSIsICgxLCAxMiwgMjM0OSkp OwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjAuMTIiLCAoMCwgMTIsIDApKTsKLSsgICAgICAg IGFzc2VydF90b19tbXAhKCIxLjEyLjUiLCAoMSwgMTIsIDUpKTsKLSsgICAgICAgIGFzc2VydF90 b19tbXAhKCIxLjEyIiwgKDEsIDEyLCAwKSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMSIs ICgxLCAwLCAwKSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS40LjQtbmlnaHRseSAoZDg0 NjkzYjkzIDIwMTctMDctMDkpKSIsICgxLCA0LCA0KSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1w ISgiMS41ODg3OS40NDc4LWRldiIsICgxLCA1ODg3OSwgNDQ3OCkpOwotKyAgICAgICAgYXNzZXJ0 X3RvX21tcCEoIjEuNTg4NzkuNDQ3OC1kZXYgKGQ4NDY5M2I5MyAyMDE3LTA3LTA5KSkiLCAoMSwg NTg4NzksIDQ0NzgpKTsKLSsgICAgfQotKwotKyAgICAjW3Rlc3RdCi0rICAgIGZuIHRlc3RfbWFs Zm9ybWVkKCkgewotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuNjU1MzYuMiIsIE5vbmUpOwot KyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIi0xLjIuMyIsIE5vbmUpOwotKyAgICAgICAgYXNzZXJ0 X3RvX21tcCEoIjEuIDIiLCBOb25lKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIiLCBOb25l KTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIgIiwgTm9uZSk7Ci0rICAgICAgICBhc3NlcnRf dG9fbW1wISgiLiIsIE5vbmUpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIm9uZSIsIE5vbmUp OwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuIiwgTm9uZSk7Ci0rICAgICAgICBhc3NlcnRf dG9fbW1wISgiMS4yLjMuNC41LjYiLCBOb25lKTsKLSsgICAgfQotKwotKyAgICAjW3Rlc3RdCi0r ICAgIGZuIHRlc3RfZnJvbV9tbXAoKSB7Ci0rICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAx OCwgMCkgPT4gIjEuMTguMCIpOwotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMywgMTksIDAp ID0+ICIzLjE5LjAiKTsKLSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDE5LCAwKSA9PiAi MS4xOS4wIik7Ci0rICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAxMiwgMjM0OSkgPT4gIjEu MTIuMjM0OSIpOwotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMCwgMTIsIDApID0+ICIwLjEy Iik7Ci0rICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAxMiwgNSkgPT4gIjEuMTIuNSIpOwot KyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMTIsIDApID0+ICIxLjEyIik7Ci0rICAgICAg ICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAwLCAwKSA9PiAiMSIpOwotKyAgICAgICAgYXNzZXJ0X2Zy b21fbW1wISgoMSwgNCwgNCkgPT4gIjEuNC40Iik7Ci0rICAgICAgICBhc3NlcnRfZnJvbV9tbXAh KCgxLCA1ODg3OSwgNDQ3OCkgPT4gIjEuNTg4NzkuNDQ3OCIpOwotKyAgICB9Ci0rCi0rICAgICNb dGVzdF0KLSsgICAgZm4gdGVzdF9jb21wYXJpc29ucygpIHsKLSsgICAgICAgIGxldCB2ZXJzaW9u ID0gVmVyc2lvbjo6cGFyc2UoIjEuMTguMCIpLnVud3JhcCgpOwotKyAgICAgICAgYXNzZXJ0ISh2 ZXJzaW9uLmV4YWN0bHkoIjEuMTguMCIpKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5hdF9s ZWFzdCgiMS4xMi4wIikpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjEy IikpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxIikpOwotKyAgICAgICAg YXNzZXJ0ISh2ZXJzaW9uLmF0X21vc3QoIjEuMTguMSIpKTsKLSsgICAgICAgIGFzc2VydCEoIXZl cnNpb24uZXhhY3RseSgiMS4xOS4wIikpOwotKyAgICAgICAgYXNzZXJ0ISghdmVyc2lvbi5leGFj dGx5KCIxLjE4LjEiKSk7Ci0rCi0rICAgICAgICBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNl KCIxLjIwLjAtbmlnaHRseSIpLnVud3JhcCgpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4 YWN0bHkoIjEuMjAuMC1iZXRhIikpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHko IjEuMjAuMC1uaWdodGx5IikpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEu MjAuMCIpKTsKLSsgICAgICAgIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4xOSIpKTsKLSsK LSsgICAgICAgIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMyIpLnVud3JhcCgpOwot KyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMy4wIikpOwotKyAgICAgICAgYXNz ZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMy4wLXN0YWJsZSIpKTsKLSsgICAgICAgIGFzc2VydCEo dmVyc2lvbi5leGFjdGx5KCIxLjMiKSk7Ci0rICAgICAgICBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0 bHkoIjEuNS4wLXN0YWJsZSIpKTsKLSsKLSsgICAgICAgIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6 cGFyc2UoIjEiKS51bndyYXAoKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIx LjAuMCIpKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjAiKSk7Ci0rICAg ICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMSIpKTsKLSsKLSsgICAgICAgIGFzc2VydCEo VmVyc2lvbjo6cGFyc2UoIm9uZS50d28udGhyZWUiKS5pc19ub25lKCkpOwotKyAgICB9Ci0rCi0r ICAgIG1hY3JvX3J1bGVzISByZWZsZXhpdmVfZGlzcGxheSB7Ci0rICAgICAgICAoJHM6ZXhwcikg PT4gKAotKyAgICAgICAgICAgIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoJHMpLnVud3JhcCgp LnRvX3N0cmluZygpLCAkcyk7Ci0rICAgICAgICApCi0rICAgIH0KLSsKLSsgICAgI1t0ZXN0XQot KyAgICBmbiBkaXNwbGF5KCkgewotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIxLjAuMCIp OwotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIxLjIuMyIpOwotKyAgICAgICAgcmVmbGV4 aXZlX2Rpc3BsYXkhKCIxLjEyLjE0MzgiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgi MS40NC4wIik7Ci0rICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjIuNDQuMCIpOwotKyAgICAg ICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMzQ1OS4yODkyMy4zNDgzIik7Ci0rICAgIH0KLSt9Cgpk aWZmIC0tZ2l0IGEvc2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0xODY2MTkxLnBhdGNoIGIvc2Vh bW9ua2V5LTIuNTMuMjQtbW96aWxsYS0xODY2MTkxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjUxNzFhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zZWFtb25rZXktMi41 My4yNC1tb3ppbGxhLTE4NjYxOTEucGF0Y2gKQEAgLTAsMCArMSwxMzg4IEBACisKKyMgSEcgY2hh bmdlc2V0IHBhdGNoCisjIFVzZXIgSGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4uZmk+ CisjIERhdGUgMTcyOTg1Mjg5NSAwCisjIE5vZGUgSUQgOGVjNmNjZDY0NDdhYTJmOGVkMTc1YzE2 YjI3MmFjN2RkNDZlOTQ2YgorIyBQYXJlbnQgIGEwYTUzYTNmZTZiMGU0NzIwNDA3YThmN2ZlYTg1 ZThjZmNiYmQwOTMKK0J1ZyAxODY2MTkxIC0gSW1wbGVtZW50IEdCMTgwMzAtMjAyMiBjaGFuZ2Vz IHRvIHRoZSBFbmNvZGluZyBTdGFuZGFyZC4gcj1zdXBwbHktY2hhaW4tcmV2aWV3ZXJzLGVtawor CitEaWZmZXJlbnRpYWwgUmV2aXNpb246IGh0dHBzOi8vcGhhYnJpY2F0b3Iuc2VydmljZXMubW96 aWxsYS5jb20vRDIyMjkyOAorCitkaWZmIC0tZ2l0IGEvQ2FyZ28ubG9jayBiL0NhcmdvLmxvY2sK Ky0tLSBhL0NhcmdvLmxvY2sKKysrKyBiL0NhcmdvLmxvY2sKK0BAIC02MTQsMTkgKzYxNCwxOSBA QCB2ZXJzaW9uID0gIjAuMS4wIgorIGRlcGVuZGVuY2llcyA9IFsKKyAgImVuY29kaW5nX3JzIiwK KyAgIm5zZXJyb3IiLAorICAibnNzdHJpbmciLAorIF0KKyAKKyBbW3BhY2thZ2VdXQorIG5hbWUg PSAiZW5jb2RpbmdfcnMiCistdmVyc2lvbiA9ICIwLjguMzQiCisrdmVyc2lvbiA9ICIwLjguMzUi Cisgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVz LmlvLWluZGV4IgorLWNoZWNrc3VtID0gImI0NWRlOTA0YWEwYjAxMGJjZTJhYjQ1MjY0ZDA2MzE2 ODE4NDdmYTdiNmYyZWFhN2RhYjc2MTk5NDNiYzRmNTkiCisrY2hlY2tzdW0gPSAiNzUwMzBmM2M0 ZjQ1ZGFmZDc1ODZkZDY3ODA5NjVhOGM3ZThlMjg1YTVlY2I4NjcxM2U2M2E3OWM1YjI3NjZmMyIK KyBkZXBlbmRlbmNpZXMgPSBbCisgICJhbnlfYWxsX3dvcmthcm91bmQiLAorICAiY2ZnLWlmIDEu MC4wIiwKKyBdCisgCisgW1twYWNrYWdlXV0KKyBuYW1lID0gImVudl9sb2dnZXIiCisgdmVyc2lv biA9ICIwLjUuMTMiCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8u Y2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdv LWNoZWNrc3VtLmpzb24KKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdv LWNoZWNrc3VtLmpzb24KKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdv LWNoZWNrc3VtLmpzb24KK0BAIC0xLDEgKzEsMSBAQAorLXsiZmlsZXMiOnsiQ09OVFJJQlVUSU5H Lm1kIjoiY2ExOTAxZjNlODUzMmZiNGNlYzg5NGZkMzY2NGYwZWFhODk4YzBjNGI5NjFkMWI5OTJk MWVkNTRlYWNmMzYyYSIsIkNPUFlSSUdIVCI6IjExNzg5ZjQ1YmIxODA4NDFjZDM2MmE1ZWVlNjc4 OWM2OGRkYjU3M2ExMTEwNWUzMDc2OGMzMDhhNmFkZDAxOTAiLCJDYXJnby50b21sIjoiMjJhNGQy MTBjOTJkYWU5ZjMyYzY5NDRlZjM0MGVlOGZkZDAyN2Y5OWMwODE1NzdlODkwNzEyM2UyYTkzMzgz ZSIsIklkZWFzLm1kIjoiYjc0NTI4OTNmNTAwMTYzODY4ZDhkZTUyYzA5YWRkYWY5MWUxNjMyNDU0 ZWQwMmU4OTJjNDY3ZWQ3ZWMzOWRiZCIsIkxJQ0VOU0UtQVBBQ0hFIjoiY2ZjNzc0OWI5NmY2M2Jk MzFjM2M0MmI1YzQ3MWJmNzU2ODE0MDUzZTg0N2MxMGYzZWIwMDM0MTdiYzUyM2QzMCIsIkxJQ0VO U0UtTUlUIjoiM2ZhNGNhODNkY2M5MjM3ODM5YjFiZGViMmU2ZDE2YmRmYjVlYzBjNWNlNDJiMjQ2 OTRkOGJiZjBkY2JlZjcyYyIsIkxJQ0VOU0UtV0hBVFdHIjoiODM4MTE4Mzg4ZmU1YzJlN2YxZGJi YWVlZDEzZTFjN2YzZWJmODhiZTkxMzE5YzdjMWQ3N2MxOGU5ODdkMWE1MCIsIlJFQURNRS5tZCI6 IjFkMDhhZWZjYjkyYWZhODFiMTgxNTQwNDljOWFiYmNhZDQ1NDBhMjNmNzE3MmU5ZjliYmVkNWFm MzNmMWEwODciLCJjaS9taXJpLnNoIjoiNDNjYjhkODJmNDllM2JmZTJkMjI3NGI2Y2NkNmYwNzE0 YTQxODhjY2VmMGNlY2MwNDA4Mjk4ODNjZmRiZWUyNSIsImRvYy9CaWc1LnR4dCI6ImY3M2EyZWRj NWNiNmMyZDE0MGJhNmUwN2Y0NTQyZTFjNGEyMzQ5NTAzNzhhY2RlMWRmOTM0ODBmMGNhMGJlMGIi LCJkb2MvRVVDLUpQLnR4dCI6ImVlMjgxOGI5MDdkMDEzN2Y0MGE5YWI5ZmQ1MjVmYzcwMGE0NGRi ZGRkYjZjZjBjMTU3YTY1NjU2NmJhZTRiZjEiLCJkb2MvRVVDLUtSLnR4dCI6IjcxZDllMmNjZjNi MTI0ZThiZGZiNDMzYzhjZjI3NzNmZDg3ODA3NzAzOGQwY2VjM2M3MjM3YTUwZjRhNzhhMzAiLCJk b2MvR0JLLnR4dCI6ImMxYjUyMmI1YTc5OTg4NGU1MDAxZGE2NjFmNDJjNWE4ZjRkMGFjYjllZjFk NzRiMjA2ZjIyYjVmNjUzNjU2MDYiLCJkb2MvSUJNODY2LnR4dCI6ImE1YTQzM2U4MDRkMGY4M2Fm Nzg1MDE1MTc5ZmJjMWQ5YjBlYWYxZjc5NjBlZmNkMDQwOTNlMTM2YjUxZmJkMGUiLCJkb2MvSVNP LTIwMjItSlAudHh0IjoiYWY4NjY4NGY1YThmMGUyODY4ZDdiMmMyOTI4NjAxNDBjM2QyZTU1Mjc1 MzBjYTA5MWYxYjI4MTk4ZThlMmZlNiIsImRvYy9JU08tODg1OS0xMC50eHQiOiI2ZDM5NDlhZDdj ODFjYTE3Njg5NTEwMWVkODFhMWRiN2RmMTA2MGQ2NGUyNjI4ODBiOTRiZDMxYmIzNDRhYjRkIiwi ZG9jL0lTTy04ODU5LTEzLnR4dCI6IjM5NTFkZDg5Y2Y5M2Y3NzI5MTQ4MDkxNjgzY2Y4NTExZjQ1 MjkzODhiN2RjOGRjZDBkNjJlYWVkNTViZTkzZmEiLCJkb2MvSVNPLTg4NTktMTQudHh0IjoiM2Qz MzA3ODRhMDM3NGZkMjU1YTM4YjQ3OTQ5Njc1Y2M3MTY4YzgwMDUzMDUzNGIwYTAxY2FjNmVkYzYy M2FkYyIsImRvYy9JU08tODg1OS0xNS50eHQiOiIyNGIxMDg0YWFiNTEyN2E4NWFhYjk5MTUzZjg2 ZTI0Njk0ZDBhMzYxNWY1M2I1Y2UyMzY4M2Y5N2NmNjZjNDdhIiwiZG9jL0lTTy04ODU5LTE2LnR4 dCI6ImNlMDI3MjU1OWI5MmJhNzZkN2E3ZTQ3NmY2NDI0YWU0YTVjYzcyZTc1YjE4MzYxMWIwODM5 MmU0NGFkZDRkMjUiLCJkb2MvSVNPLTg4NTktMi50eHQiOiIxOGNlZmY4OGMxM2QxYjViYTQ1NWEz OTE5YjFlM2RlNDg5MDQ1YzRjM2QyZGQ3ZTg1MjdjMTI1Yzc1ZDU0YWFkIiwiZG9jL0lTTy04ODU5 LTMudHh0IjoiMjE3OTg0MDRjNjhmNGY1ZGI1OTIyMzM2MmYyNDk5OWRhOTY5NjhjMDYyODQyNzMy MWZjY2NlN2QyODQ5YTEzMCIsImRvYy9JU08tODg1OS00LnR4dCI6ImQyN2Y2NTIwYzZjNWJmYmNj MTkxNzZiNzFkMDgxY2RiM2JjY2RlMTYyMmJiM2U0MjBkNTY4MGU4MTI2MzJkNTMiLCJkb2MvSVNP LTg4NTktNS50eHQiOiJhMTBlYzhkNmVhN2E3OGFkMTVkYTcyNzVmNmNiMWEzMzY1MTE4NTI3ZTI4 ZjlhZjZkMGQ1ODMwNTAxMzAzZjNhIiwiZG9jL0lTTy04ODU5LTYudHh0IjoiY2NkYThhMmVmYzk2 MTE1MzM2YmRkNzc3NzY2MzdiOTcxMjQyNWU0NGZiY2Y3NDUzNTNiOTA1N2ZiZWYxNDRlNyIsImRv Yy9JU08tODg1OS03LnR4dCI6IjE3OTAwZmExZjI3YTQ0NTk1OGYwYTc3ZDdkOTA1NmJlMzc1YTZi ZDdlZTQ0OTJhYTY4MGM3YzE1MDBiYWI4NWUiLCJkb2MvSVNPLTg4NTktOC1JLnR4dCI6IjgzNTc1 NTU2NDZkNTQyNjVhOWI5ZmZhM2U2OGIwOGQxMzIzMTJmMTU2MWM2MDEwOGZmOWI4YjExNjdiNmVj ZjIiLCJkb2MvSVNPLTg4NTktOC50eHQiOiI3MmNkNmYzYWZiN2I0YTljMTZhNjZhMzYyNDczMzE1 NzcwYjc3NTVkNzJjODZjODcwZTUyZmMzZWJhODZjOGFmIiwiZG9jL0tPSTgtUi50eHQiOiI4Mzlj ZjE5YTM4ZGE5OTQ0ODgwMDRlZDc4MTRiMWY2MTUxNjQwMTU2YTlhMmFmMDJiZjJlZmNhNzQ1ZmI1 OTY2IiwiZG9jL0tPSTgtVS50eHQiOiIwY2M3NjYyNGVkMWYwMjQxODNlMjI5OGI3ZTAxOTk1N2Rh MmM3MGM4Y2EwNmUwZmM0ZTZmMzUzZjUwYTUwNTRmIiwiZG9jL1NoaWZ0X0pJUy50eHQiOiIzNGM0 OTE0MTgxOGNiOWRkYmNmNTljYzg1OGY3OGE3OWJlOGFkMTQ4ZDU2M2YyNjQxNTEwOGFlMWYxNDg0 NDNmIiwiZG9jL1VURi0xNkJFLnR4dCI6ImUyZTI4MGQ4YWNiYWE2ZDJhNmIzNTY5ZDYwZTE3NTAw YTI4NWYyYmFhMGRmMzM2M2RkODU1MzdjZDVhMWVmOGYiLCJkb2MvVVRGLTE2TEUudHh0IjoiNzBi ZGMxNzBlM2ZjNTI5OGJhNjhmMTAxMjVmYjVlZWI4YjA3NzAzNmNjOTZiYjQ0MTZjNGRlMzk2ZjZk NzZjMSIsImRvYy9VVEYtOC50eHQiOiJlYTdiYWU3NDJlNjEzMDEwY2VkMDAyY2Y0YjYwMWE3Mzdk MjIwM2ZhZDY1ZTExNTYxMTQ1MWJjNDQyOGY1NDhhIiwiZG9jL2diMTgwMzAudHh0IjoiZGM3MTM3 OGE4ZjA3YTJkODY1OWY2OWVlODFmYjg3OTFmZWY1NmJhODZmMTI0YjQyOTk3ODI4NTIzN2JiNGE3 YiIsImRvYy9tYWNpbnRvc2gudHh0IjoiNTc0OTFlNTM4NjY3MTFiNDY3MmQ5YjlmZjM1MzgwYjlk YWM5ZTBkOGUzZDZjMjBiZGQ2MTQwNjAzNjg3YzAyMyIsImRvYy9yZXBsYWNlbWVudC50eHQiOiI0 YjZjM2JiZDc5OTlkOWQ0MTA4YTI4MTU5NGJkMDJkMTM2MDdlMzM0YTk1NDY1YWZmZjhjMmMwOGQz OTVmMGU0IiwiZG9jL3dpbmRvd3MtMTI1MC50eHQiOiI2MTI5NmJiNmEyMWNkYWI2MDIzMDBkMzJl Y2ZiYTQzNGNiODJkZTVhYzNiYzg4ZDU4NzEwZDJmMTI1ZTI4ZDM5IiwiZG9jL3dpbmRvd3MtMTI1 MS50eHQiOiI3ZGVlYTFjNjFkZWExNDg1YzhmZjAyZGIyYzdkNTc4ZGI3YTlhYWI2M2FiMWNmZDAy ZWMwNGI1MTU4NjQ2ODllIiwiZG9jL3dpbmRvd3MtMTI1Mi50eHQiOiI5MzNlZjNiZGRkZmNlNWVl MTMyYjlmMWExYWE4YjQ3NDIzZDI1ODdiYmU0NzViMTkwMjhkMGE2ZDM4ZTE4MGI2IiwiZG9jL3dp bmRvd3MtMTI1My50eHQiOiIxYTM4NzQ4Yjg4ZTk5MDcxYTVjN2IzZDU0NTZlYWQ0Y2FlZGVhYmFi NTBkNTBkNjU4YmUxMDViYzExMzcxNGRlIiwiZG9jL3dpbmRvd3MtMTI1NC50eHQiOiJmODM3MmY4 NmM2ZjhkNjQyNTYzY2Q2ZGRjMDI1MjYwNTUzMjkyYTM5NDIzZGYxNjgzYTk4NjcwYmQ3YmYyYjQ3 IiwiZG9jL3dpbmRvd3MtMTI1NS50eHQiOiI0ZTU4NTI0OTQ3MzAwNTRlMmRhMjU4YTc0ZTFiOWQ3 ODBhYmJjZGQ4Y2UyMmViYzIxOGNhMmVmZTllOTA0OTNkIiwiZG9jL3dpbmRvd3MtMTI1Ni50eHQi OiJjMDg3OWM1MTcyYWJlZGVhZDMwMmE0MDZlOGY2MGQ5Y2Q5NTk4Njk0YTBmZmE0ZmQyODhmZmU0 ZmVmN2I4ZWExIiwiZG9jL3dpbmRvd3MtMTI1Ny50eHQiOiJjMjhhMGM5Zjk2NGZjYjJiNDZkMjFm NTM3YzQwMjQ0NjUwMWEyODAwNjcwNDgxZDZhYmY5ZmQ5ZTkwMThkNTIzIiwiZG9jL3dpbmRvd3Mt MTI1OC50eHQiOiI1MDE5YWU0ZDYxODA1Yzc5YWFjYmYxN2M5Mzc5MzM0MmRiYjA5OGQ2NWExODM3 NzgzYmMzZTJjNmQ2YTIzNjAyIiwiZG9jL3dpbmRvd3MtODc0LnR4dCI6IjRlZjBlNDUwMWM1ZmVi YThiMTdhZWUxODE4NjAyZWQ0NGIzNmNhODQ3NWRiNzcxY2UyZmMxNmQzOTJjYWJlY2MiLCJkb2Mv eC1tYWMtY3lyaWxsaWMudHh0IjoiNThiZTE1NGQ4YTg4OGNhM2Q0ODRiODNiNDRmNzQ5ODIzZWYz MzlhYjI3ZjE0ZDkwY2E5YTg1NmY1MDUwYThiZCIsImRvYy94LXVzZXItZGVmaW5lZC50eHQiOiJm OWNkMDdjNDMyMWJmNWNmYjBiZTRiZGRkZDI1MTA3Mjk5OWIwNGE2Y2Y3YTZmNWJjNjM3MDlhODRl MmMxZmZjIiwiZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weSI6ImJlOTg5ZGQyNWM2Yjk0NmUzZTg3 NDVmZGM4ZThhODBmY2YyNGIzYmU5OWFkMGI0Yjc4MTUzYmEzZjZhYjYzMTAiLCJydXN0Zm10LnRv bWwiOiI4NWMxYTNiNDM4MmZkODllOTkxY2JiODFiNzBmYjUyNzgwNDcyZWRjMDY0Yzk2Mzk0M2Nk YWFhNTZlMGEyMDMwIiwic3JjL2FzY2lpLnJzIjoiNTg4ZTM4YjAxZTY2NmQ1ZTc0NjI2MTdlYTdl OTBhMTA4ZDYwOGRlYzllMDE2ZjNkMjczYWMwNzQ0YWYyZTA1ZCIsInNyYy9iaWc1LnJzIjoiZWM2 ZTI5MTMwMTFhMzhlOWEzZTgyNWExNzMxZjEzOWE3Y2ExZDViMjY0ZmVmYWU1MWEzY2MxYTY4YTU3 Y2VmOSIsInNyYy9kYXRhLnJzIjoiOGE2MTdjYzU3MDMyMDkyZDY1ODUwZWIyN2UwMGRlNjg3Yzgw YWVhMzI5OWU4MzlhMWY1OGI0MmQwYjM1YWJmMyIsInNyYy9ldWNfanAucnMiOiIzMjA0N2Y1YjU0 MDE4OGM0Y2IxOWMwNzE2NWY4NDZiOTc4NmEwOWYxOGUzMTVlZDNlOWJkYTEyOTNkYWU1MmFhIiwi c3JjL2V1Y19rci5ycyI6IjliMjVhZmM3MmQ5Mzc4NzAwZWVjZmFjNThkNTVhZDFjNTk0NmQ2Y2Qw Y2NkZTJjMjljMDgyMDBlZjJkZTZiYjkiLCJzcmMvZ2IxODAzMC5ycyI6IjgwODU4NzE2OGQ3M2Yw YzgwZjg1MjBmMGNhOWIxNjE4NjZlZDJlZmViMTdhMDVlODVmZGYzYjhlZmU3YmEyOGEiLCJzcmMv aGFuZGxlcy5ycyI6ImIwOGNlZjFmNTc4NWJiNmE0ODIyZjJlODQ0YzZkZjFiMDQ2YjczN2I3YTA3 NWU0NTkzZWFhOGM0MjA4ZTlmZTIiLCJzcmMvaXNvXzIwMjJfanAucnMiOiI5YmI0ODVlODI1NzRm NGI3ZDRiMjM2NGYwZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBlYzVlMDRjMTk2NjUyIiwic3Jj L2xpYi5ycyI6IjgzNGY0NGI2NzBlYzQ4ZWU4MmMwZTEyMjIzZDE1NjczMTNmZGQ5Zjg4YmNhNWY0 YjExN2M4MmMxODI4ZjU1OWYiLCJzcmMvbWFjcm9zLnJzIjoiMjAwOTk3Zjg4NzBkZThiZmQ4Y2Rj NDc1ZTkyMTE1ZGY0MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZlMWQ5OSIsInNyYy9tZW0ucnMi OiI5NDg1NzExMzdkM2IxNTFkZjhkYjRmYjJjNzMzZTc0YWU1OTVkMDU1Y2RmMGFkODNhYmNhYjkz NDFkNmFkYWJlIiwic3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIzNGE1M2Y4YzFjYTJiZGZhMGU1 MWU4NDNlYzI4MzI2OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMwOCIsInNyYy9zaGlmdF9qaXMu cnMiOiI2OTUxYWU2N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4YjFiNGFlMGUyYmRlNTIwNjBi MjliZDBmMTZkOWQ5Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIwNWM2ZTc3YWY3NGJmZTczY2QzOWE3 NTIwNjdjMTE0MjVkNmI0NmU1ZGE0MTk5MTBmNTRiZjc1YTVjMDJhOTg0Iiwic3JjL3NpbmdsZV9i eXRlLnJzIjoiM2FkODcxMTZmYjMzOTQzNGE0YjU4ZThmMmIxNTQ4NWYyYjY2YjlmNzgxNGQ3MDhm MTYxOTRlZDA4ZjZkNmNjZiIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbi50eHQiOiI0YzVhODY5MWY4 ZGM3MTczMTE4ODljNjM4OTQwMjZkMmZiNjI3MjVhODZjNDIwOGNhMjc0YTljYzhkNDJhNTAzIiwi c3JjL3Rlc3RfZGF0YS9iaWc1X2luX3JlZi50eHQiOiI5OWQzOTllMTc3NTBjZjljN2NmMzBiYjI1 M2RiZmUzNWI4MWM0ZmNiZGVhZDkzY2ZhNDhiMTQyOTIxMzQ3M2M3Iiwic3JjL3Rlc3RfZGF0YS9i aWc1X291dC50eHQiOiI2MTkzY2E5N2MyOTdhYTIwZTA5Mzk2MDM4ZDE4ZTkzOGJiN2VhMzMxYzI2 ZjBmMjQ1NDA5NzI5NjcyM2EwYjEzIiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0Ijoi MzY1Njc2OTFmNTU3ZGYxNDRmNmNjNTIwMDE1YTg3MDM4ZGZhMTU2ZjI5NmZjZjEwM2I1NmFlOWE3 MThiZTFmYyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6ImM4NmE3MjI0ZjMyMTVmYTBk MDRlNjg1NjIyYTc1MmZkYzcyNzYzZThhZTA3NjIzMGM3ZmQ2MmRlNTdlYzQwNzQiLCJzcmMvdGVz dF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IjoiMWY0MTlmNGNhNDdkNzA4YjU0YzczYzQ2MTU0NWEw MjJhZTJlMjA0OThmZGJmODAwNWE0ODNkNzUyYTIwNDg4MyIsInNyYy90ZXN0X2RhdGEvZXVjX2ty X291dC50eHQiOiJlN2YzMmUwMjZmNzBiZTFlMWI1OGUwMDQ3YmFmN2QzZDJjNTIwMjY5YzRmOWI5 OTkyZTE1OGI0ZGVjYjBhMWEzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQiOiJj OTkwNzg1Nzk4MGIyMGI4ZTllM2I1ODQ0ODJlZDY1NjdhMmJlNjE4NWQ3MjIzN2I2MzIyZjA0MDQ5 NDQ5MjRlIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6ImFiNzIzMWIyZDNlOWFmYWNk YmQ3ZDdmM2I5ZTUzNjFhN2ZmOWY3ZTFjZmRiNGYzYmQ5MDViOTM2MmIzMDllNTMiLCJzcmMvdGVz dF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCI6ImRjNTA2OTQyMWFkY2EyMDQzYzU1ZjUwMTJiNTVh NzZmZGZmNjUxZDIyZTZlNjk5ZmQwOTc4ZjhkNTcwNjgxNWMiLCJzcmMvdGVzdF9kYXRhL2diMTgw MzBfb3V0LnR4dCI6ImYwMjA4ZDUyN2Y1Y2E2M2RlN2Q5YTAzMjNiZThkNWNmMTJkOGExMDRiMjk0 M2Q5MmMyNzAxZjBjMzM2NGRhYzEiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQi OiI2ODE5ZmU0NzYyN2U0ZWEwMTAyNzAwM2ZjNTE0YjlmMjFhMTMyMmU3MzJkN2YxZmI5MmNjNmM1 NDU1YmM2YzA3Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQiOiJjZDI0YmJkY2Ix ODM0ZTI1ZGI1NDY0NmZiZjRjNDE1NjBhMTNkYzc1NDBmNmJlM2RiYTRmNWQ5N2Q0NDUxM2FmIiwi c3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IjoiM2RjNGU2YTVlMDY0NzE5NDJk MDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMyY2RmNSIsInNyYy90ZXN0 X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dCI6IjliNmYwMTUzMjlkZGE2YzNmOWVlNWNlNmRiZDZm YTljODlhY2MyMTI4M2U4ODY4MzZjNzhiOGQ4MzM0ODBjMjEiLCJzcmMvdGVzdF9kYXRhL2lzb18y MDIyX2pwX291dF9yZWYudHh0IjoiNzhjYjI2MDA5M2EyMDExNmFkOWE0MmY0M2IwNWQxODQ4YzVh YjEwMGI2YjlhODUwNzQ5ODA5ZTk0Mzg4NGIzNSIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50 eHQiOiI2ZGYzMDMwNTUzZmZiMGE2NjE1YmIzM2RjOGVhOWRjYTZkOTYyM2E5MDI4ZTJmZmVjNzU0 Y2UzYzNkYTgyNGNjIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3JlZi50eHQiOiIzZGM0ZTZh NWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2ZjNmNDdlNDM3MTdlNGJjMmVhYzJjZGY1 Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQiOiI0ZWMyNDQ3N2UxNjc1Y2U3NTA3MzNi ZGMzYzVhZGQxY2QyN2I2YmQ0Y2UxZjA5Mjg5NTY0NjQ2ZTk2NTRlODU3Iiwic3JjL3Rlc3RfZGF0 YS9qaXMwMjA4X291dF9yZWYudHh0IjoiYzNlMWNlZjUwMzJiMmIxZDkzYTQwNmYzMWZmOTQwYzRl MmRmZTg4NTliOGIxN2NhMjc2MWZlZTdhNzVhMGU0OCIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9p bi50eHQiOiJjMDExZjBkZDcyYmQ3YzhjZDkyMmRmOTM3NGVmOGQyNzY5YTc3MTkwNTE0Yzc3ZjZj NjJiNDE1ODUyZWViOWZlIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luX3JlZi50eHQiOiI3ZDk0 NThiM2QyZjczZTcwOTJhN2Y1MDVjMDhjZTFkMjMzZGRlMThhYTY3OWZiY2Y5ODg5MjU2MjM5Y2M5 ZTA2Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IjoiMDJlMzg5Y2NlZjBkZDIxMjJl NjNmNTAzODk5NDAyY2I3Zjc5NzkxMmMyNDQ0Y2M4MGFiOTMxMzExMTZjNTUyNCIsInNyYy90ZXN0 X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQiOiI1MTJmOTg1OTUwY2E5MDJlNjQzYzg4NjgyZGJh OTcwOGI3YzM4ZDNjNWVjMjkyNTE2OGFiMDBhYzk0YWIxOWY5Iiwic3JjL3Rlc3RfZGF0YS9zaGlm dF9qaXNfb3V0LnR4dCI6IjVmYmM0NGRhN2JmNjM5YmY2Y2ZlMGZhMWZkM2ViYTcxMDJiODhmODE5 MTljOWVhOTkxMzAyNzEyZjY5NDI2ZmIiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVm LnR4dCI6IjQ2NjMyMmM2ZmVkODI4NmM2NDU4MjczMTc1NTI5MGMyMjk2NTA4ZWZkZDI1ODgyNmU2 Mjc5Njg2NjQ5YjQ4MWYiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMucnMiOiIyM2EyZTExYjAyYjNi OGQxNWZiNTYxM2E2MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4NzE5YTQwODgyMDBkIiwic3Jj L3Rlc3RpbmcucnMiOiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThjNmJlNGQ3MWU2NzBiZjUyZjdl MjBlYjE2MDVkOTkwYWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6ImMwNzFhMTQ3ZmFkMzhkNzUw YzJjMjQ3ZTE0MWI3NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2FlY2RhZjJmMjUiLCJzcmMvdXRm XzgucnMiOiI3YjdkODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3Mjc1OGE0Y2U3NmMyOGYzYjQ1 YzE5NDY3ODUxYWE3ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFiNTM2MzU4OGExNTU0YTcxNjlk ZTg3MzFlYTljZGVkN2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhjMjdiIiwic3JjL3hfdXNlcl9k ZWZpbmVkLnJzIjoiOTQ1NmNhNDYxNjhlZjg2Yzk4Mzk5YTI1MzZmNTc3ZWY3YmUzY2RkZTkwYzBj NTEzOTJkOGFjNDg1MTlkM2ZhZSJ9LCJwYWNrYWdlIjoiYjQ1ZGU5MDRhYTBiMDEwYmNlMmFiNDUy NjRkMDYzMTY4MTg0N2ZhN2I2ZjJlYWE3ZGFiNzYxOTk0M2JjNGY1OSJ9CitcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKKyt7ImZpbGVzIjp7IkNPTlRSSUJVVElORy5tZCI6ImNhMTkwMWYzZTg1 MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTkyZDFlZDU0ZWFjZjM2MmEiLCJD T1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3ODljNjhkZGI1NzNhMTExMDVl MzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6ImQ3NDA1ZDJiY2Y5OWNmOTcyOTA3NTQ3 M2M0NWY2Nzc2MzBmNGMxOTQ3YzhiYTk3NTdkYjYwN2YyMDI1YTdkYTIiLCJJZGVhcy5tZCI6ImI3 NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1NGVkMDJlODkyYzQ2N2VkN2Vj MzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1 NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNFTlNFLU1JVCI6IjNmYTRjYTgz ZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0Njk0ZDhiYmYwZGNiZWY3MmMi LCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRiYmFlZWQxM2UxYzdmM2ViZjg4 YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQiOiI5ODI2MTM3ZWQ0Mjk3YmUz YjIwMTliNzRhOGY2MTExYTc5NmZmNTA3YmRlNDFkZjJmMjA3MTI1Mzk3MDRiOWU5IiwiY2kvbWly aS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcxNGE0MTg4Y2NlZjBjZWNjMDQw ODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVkYzVjYjZjMmQxNDBiYTZlMDdm NDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBiIiwiZG9jL0VVQy1KUC50eHQi OiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRkYmRkZGI2Y2YwYzE1N2E2NTY1 NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2YzYjEyNGU4YmRmYjQzM2M4Y2Yy NzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwiZG9jL0dCSy50eHQiOiI4MjI5 ZTU5MDc2ZDhiZGRiMDE4NjVjZGNmNmFmZGEzNTMzMjM4ZDdjMjNkOTdmOTg4MjBmOWUzYjJkMTM1 MDVkIiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNhZjc4NTAxNTE3OWZiYzFkOWIw ZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lTTy0yMDIyLUpQLnR4dCI6ImFm ODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3NTMwY2EwOTFmMWIyODE5OGU4 ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3YzgxY2ExNzY4OTUxMDFlZDgx YTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIsImRvYy9JU08tODg1OS0xMy50 eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0NTI5Mzg4YjdkYzhkY2QwZDYy ZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNkMzMwNzg0YTAzNzRmZDI1NWEz OGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2MjNhZGMiLCJkb2MvSVNPLTg4 NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4NmUyNDY5NGQwYTM2MTVmNTNi NWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50eHQiOiJjZTAyNzI1NTliOTJi YTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgzOTJlNDRhZGQ0ZDI1IiwiZG9j L0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVhMzkxOWIxZTNkZTQ4OTA0NWM0 YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1OS0zLnR4dCI6IjIxNzk4NDA0 YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0MjczMjFmY2NjZTdkMjg0OWExMzAi LCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJjYzE5MTc2YjcxZDA4MWNkYjNi Y2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lTTy04ODU5LTUudHh0IjoiYTEw ZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2UyOGY5YWY2ZDBkNTgzMDUwMTMw M2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5NjExNTMzNmJkZDc3Nzc2NjM3 Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJkb2MvSVNPLTg4NTktNy50eHQi OiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2YmQ3ZWU0NDkyYWE2ODBjN2Mx NTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3NTU1NjQ2ZDU0MjY1YTliOWZm YTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZlY2YyIiwiZG9jL0lTTy04ODU5 LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMxNTc3MGI3NzU1ZDcyYzg2Yzg3 MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5Y2YxOWEzOGRhOTk0NDg4MDA0 ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZiNTk2NiIsImRvYy9LT0k4LVUu dHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdkYTJjNzBjOGNhMDZlMGZjNGU2 ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRjNDkxNDE4MThjYjlkZGJjZjU5 Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4NDQzZiIsImRvYy9VVEYtMTZC RS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUwMGEyODVmMmJhYTBkZjMzNjNk ZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6IjcwYmRjMTcwZTNmYzUyOThiYTY4 ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2ZDc2YzEiLCJkb2MvVVRGLTgu dHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3ZDIyMDNmYWQ2NWUxMTU2MTE0 NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6IjY3YTAxNjY1Yzc1NTA1MzMwYjBmZTVi OGQ4OGQ1ODczZDhjZTU1NWExNDVjNzdkY2EwNGE0NjdmYTI2ODA3NDQiLCJkb2MvbWFjaW50b3No LnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5ZGFjOWUwZDhlM2Q2YzIwYmRk NjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0IjoiNGI2YzNiYmQ3OTk5ZDlkNDEw OGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhkMzk1ZjBlNCIsImRvYy93aW5k b3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMyZWNmYmE0MzRjYjgyZGU1YWMz YmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEyNTEudHh0IjoiN2RlZWExYzYx ZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQwMmVjMDRiNTE1ODY0Njg5ZSIs ImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVlZTEzMmI5ZjFhMWFhOGI0NzQy M2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93aW5kb3dzLTEyNTMudHh0Ijoi MWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJhYjUwZDUwZDY1OGJlMTA1YmMx MTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJmODZjNmY4ZDY0MjU2M2NkNmRk YzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0NyIsImRvYy93aW5kb3dzLTEy NTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlkNzgwYWJiY2RkOGNlMjJlYmMy MThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0IjoiYzA4NzljNTE3MmFiZWRl YWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZlNGZlZjdiOGVhMSIsImRvYy93 aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIxZjUzN2M0MDI0NDY1MDFhMjgw MDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dzLTEyNTgudHh0IjoiNTAxOWFl NGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgzNzc4M2JjM2UyYzZkNmEyMzYw MiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZlYmE4YjE3YWVlMTgxODYwMmVk NDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9jL3gtbWFjLWN5cmlsbGljLnR4 dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2VmMzM5YWIyN2YxNGQ5MGNhOWE4 NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmluZWQudHh0IjoiZjljZDA3YzQzMjFiZjVjZmIw YmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0ZTJjMWZmYyIsImdlbmVyYXRl LWVuY29kaW5nLWRhdGEucHkiOiI2ZjM0YTg0NTc4NWY1MzQyNWFjY2YzMDc1OWVkYzU2Njg3M2Zj YjBjMjE4ODY0OGUwN2IwOWM4OThmMzlkZGRiIiwicnVzdGZtdC50b21sIjoiODVjMWEzYjQzODJm ZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNjZGFhYTU2ZTBhMjAzMCIsInNy Yy9hc2NpaS5ycyI6IjU4OGUzOGIwMWU2NjZkNWU3NDYyNjE3ZWE3ZTkwYTEwOGQ2MDhkZWM5ZTAx NmYzZDI3M2FjMDc0NGFmMmUwNWQiLCJzcmMvYmlnNS5ycyI6ImVjNmUyOTEzMDExYTM4ZTlhM2U4 MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1N2NlZjkiLCJzcmMvZGF0YS5y cyI6ImI5M2YzNDAyNWZlNWM2YTg1YjRiOWYwMDM3YmY1ODk2MTM1MmJmMTljODNmOTFiMDliMzVl Yjg0OTU2MjVlZWMiLCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1NDAxODhjNGNiMTljMDcxNjVm ODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIsInNyYy9ldWNfa3IucnMiOiI5 YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNkMGNjZGUyYzI5YzA4MjAwZWYy ZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4OWNkNmFlMjI0N2FkZDNmMzQ3MWE2OTliYzEyMTEz YTlhZTJmNmI5MWE1MjIzYWJiZjE1YjY4YTEzNTM3ZGNkIiwic3JjL2diMTgwMzBfMjAyMi5ycyI6 IjNjMmUwNjQ5MmM1ZTAwZmNkMzk1MTVlNGFmNGM1NjBkOGNlZTVjMzFlN2E3ZTM4OGRiNjgyYmM5 ZWUzM2VlMzIiLCJzcmMvaGFuZGxlcy5ycyI6ImIwOGNlZjFmNTc4NWJiNmE0ODIyZjJlODQ0YzZk ZjFiMDQ2YjczN2I3YTA3NWU0NTkzZWFhOGM0MjA4ZTlmZTIiLCJzcmMvaXNvXzIwMjJfanAucnMi OiI5YmI0ODVlODI1NzRmNGI3ZDRiMjM2NGYwZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBlYzVl MDRjMTk2NjUyIiwic3JjL2xpYi5ycyI6ImM0ZDlmYTFjNDMxMDVlMjMxMDEyMmYxYjkxOTcxMjUw MzJlNjA3ZmU2Zjc5YmMyMjc2OWIzNDBkZTc2ZTI0MzAiLCJzcmMvbWFjcm9zLnJzIjoiMjAwOTk3 Zjg4NzBkZThiZmQ4Y2RjNDc1ZTkyMTE1ZGY0MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZlMWQ5 OSIsInNyYy9tZW0ucnMiOiI5NDg1NzExMzdkM2IxNTFkZjhkYjRmYjJjNzMzZTc0YWU1OTVkMDU1 Y2RmMGFkODNhYmNhYjkzNDFkNmFkYWJlIiwic3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIzNGE1 M2Y4YzFjYTJiZGZhMGU1MWU4NDNlYzI4MzI2OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMwOCIs InNyYy9zaGlmdF9qaXMucnMiOiI2OTUxYWU2N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4YjFi NGFlMGUyYmRlNTIwNjBiMjliZDBmMTZkOWQ5Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIwNWM2ZTc3 YWY3NGJmZTczY2QzOWE3NTIwNjdjMTE0MjVkNmI0NmU1ZGE0MTk5MTBmNTRiZjc1YTVjMDJhOTg0 Iiwic3JjL3NpbmdsZV9ieXRlLnJzIjoiM2FkODcxMTZmYjMzOTQzNGE0YjU4ZThmMmIxNTQ4NWYy YjY2YjlmNzgxNGQ3MDhmMTYxOTRlZDA4ZjZkNmNjZiIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbi50 eHQiOiJhNWFlMjkwNzg2NjEwYzdmYWNkYmIxZDA2YmU2ODE1ZThiYjgxZDY4ZGZhNzM4MGVkYzdk ZGI2YjhjN2U0MTJlIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luX3JlZi50eHQiOiI1MjczM2Q5OTcw ZmI4OTg3ZjAxNGZhMGVhYzI3OTIyNTAxMjNjZjU4M2IzNjNiZWIyY2U3YjNjNTVlM2RjNTU1Iiwi c3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQiOiI1NzQyMGNhNDFhNjY5Yzk0OTczOGM4NGNhYjYy MDAyMDk1OTU3MmQyZWU5N2I0ZTA1OTQwNWJmZTI2YTc5YjZkIiwic3JjL3Rlc3RfZGF0YS9iaWc1 X291dF9yZWYudHh0IjoiMDBlNWY2N2MyMjJkZDVjZDNiYjE3MzkyNzY5MTBiOGYwMDMyZjQ1NGNi YTdjZjdjM2VhYTI1NWE1NjQxODhkMCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6IjIx NTM0ZWM4N2U4MmQ3ODVkMTI4Zjk4MDkwMmQxM2ZhYjZkOWRlYTE1YzY5YTk5MWY0MDlkOWIwYWZk MWM4NTIiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IjoiYjMwMDllNmE5NDk2N2Rm MWYxMTM1YzY2ZjAwNTYxMGJlYmFkNjY2NmQ2MzRhZWM3MmQyYWQ3N2MzMjExYmRhMyIsInNyYy90 ZXN0X2RhdGEvZXVjX2tyX291dC50eHQiOiIyMDIwNWIwYjViZTRmNTc5MjcxMTkzYjViZmJjNTQ5 YTYxYTlmZDUyMTdjMzNlZWNmYTYxNzg0YTNmZmUyZTlkIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jf b3V0X3JlZi50eHQiOiJiNWY1NjYyMzdmOGQ0ZWY0ZDAzYWQyNjEzNWNhOTdkZmQ3Mzk4NjA4YTgy MTY1YmQ0ODUzYjUxMzRhYjIyY2I1Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6IjBk ZDFmYmYwMzYwOTMwZGFhZmRjZTdlNjc2MTg1MjAwNWE4ZjkyZjc5MTAxODBkZjE5YTA3MGI2YzNj NTlkZWUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCI6ImYzZWFlYTExMTU4NTcw NTRjZjMwZjhiYTE4MjE5ZTcyMzc3ZjJhNGFmZDg0OGNjZjIyMzc3MGQ3NWFhNDI1MWQiLCJzcmMv dGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dCI6IjcxODRmZTk1OTI2MDk1OTdkNTVjMjczMzYwNmI0 YzRiMWExOGI3OWIyNDUzM2UxYTE2YTE0ZmY5MmU3ZDJiNTUiLCJzcmMvdGVzdF9kYXRhL2diMTgw MzBfb3V0X3JlZi50eHQiOiIyM2JiODUwZGRjNjlhYWYxYmRmZWFiZTA1YTEyZDkzZjYxNGU1NTYw ZGFjODc5ZDVmMDI5MjllZTRhN2MwNmM1Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50 eHQiOiI5OGZiODIzNTMwYTMwYTc2ZWIwYmE3YWI2YWM3OTY5NTllODg2OWMxZWMxNDNmMDE4YTE5 NjQ1ODFhZTgxM2FhIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IjoiZGY4 MjE2NmQyZTAxYmI0NDYyMTFkN2U0NmYzM2I0N2Q5M2FjMWJhZmVhZTJlZDg4MGVlOTNjNDA5NmQx MTIxMCIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dCI6ImJlZjhlYjQ4MDRlZDA4 NDNiOWRmZmRkMWQxNjg3Mzg2MzVjYzc3ZjhkMDkyOWJlYjI1MzJiNjg2MzE4ZGRhZTYiLCJzcmMv dGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9yZWYudHh0IjoiYjIyMWIzNmIyYmNlNDlkNDliNjIw ZGM4YmE4MGQ3N2JhYzc0ZTg2NjBhODZhMTE2MjhlNzliNjdmMWQ5ODk2NCIsInNyYy90ZXN0X2Rh dGEvamlzMDIwOF9pbi50eHQiOiIzYzFhN2FhYWRhMDBkNmZmZjQxZTYwYmQ3NTg5ZDdhZTk0YWZh ZjU2Mjc1OWIxMTY5NThiMWQ4NDcxMWQxN2I2Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3Jl Zi50eHQiOiJkZjgyMTY2ZDJlMDFiYjQ0NjIxMWQ3ZTQ2ZjMzYjQ3ZDkzYWMxYmFmZWFlMmVkODgw ZWU5M2M0MDk2ZDExMjEwIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQiOiJhNjE4OGI2 N2ViMDBiYTk4MGNiODMwNTYxODZjODliY2RkZGMxYjAyMTBhZjlhZmE3OGVkMWM5YjdhMDk4OTUw Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0IjoiZTc1YTk4NmZlNWU3OGU2NGJm OGZhZmQ3MzkyYWU5NmVlMGNiMGE0YjJlN2VmMmZlNzIyYjNjYWFjZjNlMmY3MCIsInNyYy90ZXN0 X2RhdGEvamlzMDIxMl9pbi50eHQiOiI5ZWRhNzY2MDAyNjQ2YTI3MzEwNDU3YzY2MTgzMjQyOWJl ZmY5MDg5ZDI3MDMzNTU4MTJjNGNhYzMwZDgwMGI1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2lu X3JlZi50eHQiOiJmY2Y3NGM1OGQyY2JlOWIzZjNkYjRmYTllZmYyNmUwOWY1ZTk2NDQwOTdjNzg2 MTRjMDMxNzdlOTM4OTg4ZDAzIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IjoiZTY1 ZGY3NDZiZTkwMzU5ZTcwNDIyODY4NTIyYTdhYTNlOGVkMjBlMGQ0YzBjZjk5OTVkOWRlMjQ4YmY5 MzM4OCIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQiOiIxM2IxNWFlZDY0ZTll N2NiMzVlNmE3NDBiNjc0MTNmMGMyODVmZGE5NDRmNDgxNGQ0NWE3NjE5ZWEzMzhmYjVlIiwic3Jj L3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dCI6IjE5MmQwYTRhOGNlNWQwZjkwNGM1Y2IyODNk ZmI5NzQ1NzdlZTY2N2NmMWU3MTk1NWE2ZGQ2YWVjZTJiMzU0ZWYiLCJzcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19vdXRfcmVmLnR4dCI6ImNiNmQ1MGIwYzExYmFkMWQxZjFmY2MwMmQ3Nzk2NzJhOGI5 YTI1MDljYmJhZmRjNjM5MmFjZWI0OWM4YjQyNjgiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMucnMi OiIyM2EyZTExYjAyYjNiOGQxNWZiNTYxM2E2MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4NzE5 YTQwODgyMDBkIiwic3JjL3Rlc3RpbmcucnMiOiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThjNmJl NGQ3MWU2NzBiZjUyZjdlMjBlYjE2MDVkOTkwYWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6ImMw NzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3ZTE0MWI3NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2FlY2Rh ZjJmMjUiLCJzcmMvdXRmXzgucnMiOiI3YjdkODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3Mjc1 OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3ODUxYWE3ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFiNTM2 MzU4OGExNTU0YTcxNjlkZTg3MzFlYTljZGVkN2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhjMjdi Iiwic3JjL3hfdXNlcl9kZWZpbmVkLnJzIjoiOTQ1NmNhNDYxNjhlZjg2Yzk4Mzk5YTI1MzZmNTc3 ZWY3YmUzY2RkZTkwYzBjNTEzOTJkOGFjNDg1MTlkM2ZhZSJ9LCJwYWNrYWdlIjoiNzUwMzBmM2M0 ZjQ1ZGFmZDc1ODZkZDY3ODA5NjVhOGM3ZThlMjg1YTVlY2I4NjcxM2U2M2E3OWM1YjI3NjZmMyJ9 CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L0NhcmdvLnRvbWwKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9t bAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCitAQCAtOCwx OCArOCwyMyBAQAorICMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0 IHRoZSBvcmlnaW5hbCBDYXJnby50b21sCisgIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVy ZW50IChhbmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgorICMgU2VlIENhcmdvLnRvbWwub3JpZyBm b3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgorIAorIFtwYWNrYWdlXQorIGVkaXRpb24gPSAiMjAx OCIKKyBydXN0LXZlcnNpb24gPSAiMS4zNiIKKyBuYW1lID0gImVuY29kaW5nX3JzIgorLXZlcnNp b24gPSAiMC44LjM0IgorK3ZlcnNpb24gPSAiMC44LjM1IgorIGF1dGhvcnMgPSBbIkhlbnJpIFNp dm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPiJdCisrYnVpbGQgPSBmYWxzZQorK2F1dG9iaW5z ID0gZmFsc2UKKythdXRvZXhhbXBsZXMgPSBmYWxzZQorK2F1dG90ZXN0cyA9IGZhbHNlCisrYXV0 b2JlbmNoZXMgPSBmYWxzZQorIGRlc2NyaXB0aW9uID0gIkEgR2Vja28tb3JpZW50ZWQgaW1wbGVt ZW50YXRpb24gb2YgdGhlIEVuY29kaW5nIFN0YW5kYXJkIgorIGhvbWVwYWdlID0gImh0dHBzOi8v ZG9jcy5ycy9lbmNvZGluZ19ycy8iCisgZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMv ZW5jb2RpbmdfcnMvIgorIHJlYWRtZSA9ICJSRUFETUUubWQiCisga2V5d29yZHMgPSBbCisgICAg ICJlbmNvZGluZyIsCisgICAgICJ3ZWIiLAorICAgICAidW5pY29kZSIsCitAQCAtMzIsMTYgKzM3 LDIwIEBAIGNhdGVnb3JpZXMgPSBbCisgICAgICJpbnRlcm5hdGlvbmFsaXphdGlvbiIsCisgXQor IGxpY2Vuc2UgPSAiKEFwYWNoZS0yLjAgT1IgTUlUKSBBTkQgQlNELTMtQ2xhdXNlIgorIHJlcG9z aXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX3JzIgorIAorIFtw cm9maWxlLnJlbGVhc2VdCisgbHRvID0gdHJ1ZQorIAorK1tsaWJdCisrbmFtZSA9ICJlbmNvZGlu Z19ycyIKKytwYXRoID0gInNyYy9saWIucnMiCisrCisgW2RlcGVuZGVuY2llcy5hbnlfYWxsX3dv cmthcm91bmRdCisgdmVyc2lvbiA9ICIwLjEuMCIKKyBvcHRpb25hbCA9IHRydWUKKyAKKyBbZGVw ZW5kZW5jaWVzLmNmZy1pZl0KKyB2ZXJzaW9uID0gIjEuMCIKKyAKKyBbZGVwZW5kZW5jaWVzLnNl cmRlXQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1k IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1kCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL1JFQURNRS5tZAorQEAgLTEwMywxNyArMTAzLDE3IEBAIEZvciBtYXBwaW5ncyB0 byBhbmQgZnJvbSBXaW5kb3dzIGNvZGUgcGEKKyBUaGlzIGNyYXRlIGRvZXMgbm90IHN1cHBvcnQg c2luZ2xlLWJ5dGUgRE9TIGVuY29kaW5ncyB0aGF0IGFyZW4ndCByZXF1aXJlZCBieQorIHRoZSBX ZWIgUGxhdGZvcm0sIGJ1dCB0aGUgW2BvZW1fY3BgXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMv b2VtX2NwKSBjcmF0ZSBkb2VzLgorIAorICMjIFByZXBhcmluZyBUZXh0IGZvciB0aGUgRW5jb2Rl cnMKKyAKKyBOb3JtYWxpemluZyB0ZXh0IGludG8gVW5pY29kZSBOb3JtYWxpemF0aW9uIEZvcm0g QyBwcmlvciB0byBlbmNvZGluZyB0ZXh0IGludG8KKyBhIGxlZ2FjeSBlbmNvZGluZyBtaW5pbWl6 ZXMgdW5tYXBwYWJsZSBjaGFyYWN0ZXJzLiBUZXh0IGNhbiBiZSBub3JtYWxpemVkIHRvCisgVW5p Y29kZSBOb3JtYWxpemF0aW9uIEZvcm0gQyB1c2luZyB0aGUKKy1bYHVuaWMtbm9ybWFsYF0oaHR0 cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3VuaWMtbm9ybWFsKSBjcmF0ZS4KKytbYGljdV9ub3JtYWxp emVyYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL2ljdV9ub3JtYWxpemVyKSBjcmF0ZS4KKyAK KyBUaGUgZXhjZXB0aW9uIGlzIHdpbmRvd3MtMTI1OCwgd2hpY2ggYWZ0ZXIgbm9ybWFsaXppbmcg dG8gVW5pY29kZSBOb3JtYWxpemF0aW9uCisgRm9ybSBDIHJlcXVpcmVzIHRvbmUgbWFya3MgdG8g YmUgZGVjb21wb3NlZCBpbiBvcmRlciB0byBtaW5pbWl6ZSB1bm1hcHBhYmxlCisgY2hhcmFjdGVy cy4gVmlldG5hbWVzZSB0b25lIG1hcmtzIGNhbiBiZSBkZWNvbXBvc2VkIHVzaW5nIHRoZQorIFtg ZGV0b25lYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL2RldG9uZSkgY3JhdGUuCisgCisgIyMg TGljZW5zaW5nCisgCitAQCAtMzg2LDIwICszODYsMTkgQEAgVG8gcmVnZW5lcmF0ZSB0aGUgZ2Vu ZXJhdGVkIGNvZGU6CisgCisgICogSGF2ZSBQeXRob24gMiBpbnN0YWxsZWQuCisgICogQ2xvbmUg W2BodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2RpbmdfY2BdKGh0dHBzOi8vZ2l0aHVi LmNvbS9oc2l2b25lbi9lbmNvZGluZ19jKQorICAgIG5leHQgdG8gdGhlIGBlbmNvZGluZ19yc2Ag ZGlyZWN0b3J5LgorICAqIENsb25lIFtgaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2NvZGVw YWdlYF0oaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2NvZGVwYWdlKQorICAgIG5leHQgdG8g dGhlIGBlbmNvZGluZ19yc2AgZGlyZWN0b3J5LgorICAqIENsb25lIFtgaHR0cHM6Ly9naXRodWIu Y29tL3doYXR3Zy9lbmNvZGluZ2BdKGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZW5jb2Rpbmcp CisgICAgbmV4dCB0byB0aGUgYGVuY29kaW5nX3JzYCBkaXJlY3RvcnkuCistICogQ2hlY2tvdXQg cmV2aXNpb24gYGJlMzMzNzQ1MGU3ZGYxYzQ5ZGNhNzg3MjE1M2M0YzQ2NzBkZDgyNTZgIG9mIHRo ZSBgZW5jb2RpbmdgIHJlcG8uCisrICogQ2hlY2tvdXQgcmV2aXNpb24gYDFkNTE5YmY4ZTU1NTVj ZWY2NGNmM2E3MTI0ODVmNDFjZDFhNmE5OTBgIG9mIHRoZSBgZW5jb2RpbmdgIHJlcG8uCisgICAg KE5vdGU6IGBmMzgxMzg5YCB3YXMgdGhlIHJldmlzaW9uIG9mIGBlbmNvZGluZ2AgdXNlZCBmcm9t IGJlZm9yZSB0aGUgYGVuY29kaW5nYCByZXBvCistICAgbGljZW5zZSBjaGFuZ2UuIFNvIGZhciwg b25seSBvdXRwdXQgY2hhbmdlZCBzaW5jZSB0aGVuIGhhcyBiZWVuIHVwZGF0ZWQgdG8KKy0gICB0 aGUgbmV3IGxpY2Vuc2UgbGVnZW5kLikKKysgICBsaWNlbnNlIGNoYW5nZS4pCisgICogV2l0aCB0 aGUgYGVuY29kaW5nX3JzYCBkaXJlY3RvcnkgYXMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBydW4K KyAgICBgcHl0aG9uIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHlgLgorIAorICMjIFJvYWRtYXAK KyAKKyAtIFt4XSBEZXNpZ24gdGhlIGxvdy1sZXZlbCBBUEkuCisgLSBbeF0gUHJvdmlkZSBSdXN0 LW9ubHkgY29udmVuaWVuY2UgZmVhdHVyZXMuCisgLSBbeF0gUHJvdmlkZSBhbiBzdGwvZ3NsLWZs YXZvcmVkIEMrKyBBUEkuCitAQCAtNDMzLDE2ICs0MzIsMjAgQEAgVG8gcmVnZW5lcmF0ZSB0aGUg Z2VuZXJhdGVkIGNvZGU6CisgLSBbeF0gQWRkIGFjdHVhbGx5IGZhc3QgQ0pLIGVuY29kZSBvcHRp b25zLgorIC0gWyBdIH5JbnZlc3RpZ2F0ZSBbQm9iIFN0ZWFnYWxsJ3MgbG9va3VwIHRhYmxlIGFj Y2VsZXJhdGlvbiBmb3IgVVRGLThdKGh0dHBzOi8vZ2l0aHViLmNvbS9Cb2JTdGVhZ2FsbC9DcHBO b3cyMDE4L2Jsb2IvbWFzdGVyL0Zhc3RDb252ZXJzaW9uRnJvbVVURi04L0Zhc3QlMjBDb252ZXJz aW9uJTIwRnJvbSUyMFVURi04JTIwd2l0aCUyMEMlMkIlMkIlMkMlMjBERkFzJTJDJTIwYW5kJTIw U1NFJTIwSW50cmluc2ljcyUyMC0lMjBCb2IlMjBTdGVhZ2FsbCUyMC0lMjBDJTJCJTJCTm93JTIw MjAxOC5wZGYpLn4KKyAtIFt4XSBQcm92aWRlIGEgYnVpbGQgbW9kZSB0aGF0IHdvcmtzIHdpdGhv dXQgYGFsbG9jYCAod2l0aCBsZXNzZXIgQVBJIHN1cmZhY2UpLgorIC0gW3hdIE1pZ3JhdGUgdG8g YHN0ZDo6c2ltZGAgfm9uY2UgaXQgaXMgc3RhYmxlIGFuZCBkZWNsYXJlIDEuMC5+CisgLSBbIF0g TWlncmF0ZSBgdW5zYWZlYCBzbGljZSBhY2Nlc3MgYnkgbGFyZ2VyIHR5cGVzIHRoYW4gYHU4YC9g dTE2YCB0byBgYWxpZ25fdG9gLgorIAorICMjIFJlbGVhc2UgTm90ZXMKKyAKKysjIyMgMC44LjM1 CisrCisrKiBJbXBsZW1lbnQgY2hhbmdlcyBmb3IgR0IxODAzMC0yMDIyLiAoSW50ZW50aW9uYWxs eSBub3QgdHJlYXRlZCBhcyBhIHNlbXZlciBicmVhayBpbiBwcmFjdGljZSBldmVuIGlmIHRoaXMg Y291bGQgYmUgYXJndWVkIHRvIGJlIGEgYnJlYWtpbmcgY2hhbmdlIGluIHRoZW9yeS4pCisrCisg IyMjIDAuOC4zNAorIAorICogVXNlIHRoZSBgcG9ydGFibGVfc2ltZGAgbmlnaHRseSBmZWF0dXJl IG9mIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGluc3RlYWQgb2YgdGhlIGBwYWNrZWRfc2ltZGAgY3Jh dGUuIE9ubHkgYWZmZWN0cyB0aGUgYHNpbWQtYWNjZWxgIG9wdGlvbmFsIG5pZ2h0bHkgZmVhdHVy ZS4KKyAqIEludGVybmFsIGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzIGFuZCBtaW5vciBjb2Rl IGltcHJvdmVtZW50cyBhcm91bmQgYHVuc2FmZWAuCisgKiBBZGRlZCBgcnVzdC12ZXJzaW9uYCB0 byBgQ2FyZ28udG9tbGAuCisgCisgIyMjIDAuOC4zMworIAorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvZG9jL0dCSy50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL2RvYy9HQksudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL2Rv Yy9HQksudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL2RvYy9HQksudHh0 CitAQCAtMSwxMyArMSwxNCBAQAorIC8vLyBUaGUgZGVjb2RlciBmb3IgdGhpcyBlbmNvZGluZyBp cyB0aGUgc2FtZSBhcyB0aGUgZGVjb2RlciBmb3IgZ2IxODAzMC4KKyAvLy8gVGhlIGVuY29kZXIg c2lkZSBvZiB0aGlzIGVuY29kaW5nIGlzIEdCSyB3aXRoIFdpbmRvd3MgY29kZSBwYWdlIDkzNiBl dXJvCistLy8vIHNpZ24gYmVoYXZpb3IuIEdCSyBleHRlbmRzIEdCMjMxMi04MCB0byBjb3ZlciB0 aGUgQ0pLIFVuaWZpZWQgSWRlb2dyYXBocworLS8vLyBVbmljb2RlIGJsb2NrIGFzIHdlbGwgYXMg YSBoYW5kZnVsIG9mIGlkZW9ncmFwaHMgZnJvbSB0aGUgQ0pLIFVuaWZpZWQKKy0vLy8gSWRlb2dy YXBocyBFeHRlbnNpb24gQSBhbmQgQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBocyBibG9ja3Mu CisrLy8vIHNpZ24gYmVoYXZpb3IgYW5kIHdpdGggdGhlIGNoYW5nZXMgdG8gdHdvLWJ5dGUgc2Vx dWVuY2VzIG1hZGUgaW4gR0IxODAzMC0yMDIyLgorKy8vLyBHQksgZXh0ZW5kcyBHQjIzMTItODAg dG8gY292ZXIgdGhlIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgVW5pY29kZSBibG9jayBhcworKy8v LyB3ZWxsIGFzIGEgaGFuZGZ1bCBvZiBpZGVvZ3JhcGhzIGZyb20gdGhlIENKSyBVbmlmaWVkIElk ZW9ncmFwaHMgRXh0ZW5zaW9uIEEKKysvLy8gYW5kIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFw aHMgYmxvY2tzLgorIC8vLworIC8vLyBVbmxpa2UgZS5nLiBpbiB0aGUgY2FzZSBvZiBJU08tODg1 OS0xIGFuZCB3aW5kb3dzLTEyNTIsIEdCSyBlbmNvZGVyIHdhc24ndAorIC8vLyB1bmlmaWVkIHdp dGggdGhlIGdiMTgwMzAgZW5jb2RlciBpbiB0aGUgRW5jb2RpbmcgU3RhbmRhcmQgb3V0IG9mIGNv bmNlcm4KKyAvLy8gdGhhdCBzZXJ2ZXJzIHRoYXQgZXhwZWN0IEdCSyBmb3JtIHN1Ym1pc3Npb25z IG1pZ2h0IG5vdCBiZSBhYmxlIHRvIGhhbmRsZQorIC8vLyB0aGUgZm91ci1ieXRlIHNlcXVlbmNl cy4KKyAvLy8KKyAvLy8gW0luZGV4IHZpc3VhbGl6YXRpb24gZm9yIHRoZSB0d28tYnl0ZSBzZXF1 ZW5jZXNdKGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnL2diMTgwMzAuaHRtbCksCisg Ly8vIFtWaXN1YWxpemF0aW9uIG9mIEJNUCBjb3ZlcmFnZSBvZiB0aGUgdHdvLWJ5dGUgaW5kZXhd KGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnL2diMTgwMzAtYm1wLmh0bWwpCitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9kb2MvZ2IxODAzMC50eHQgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL2RvYy9nYjE4MDMwLnR4dAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9kb2MvZ2IxODAzMC50eHQKKysrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvZG9jL2diMTgwMzAudHh0CitAQCAtMSw5ICsxLDEwIEBACistLy8v IFRoaXMgZW5jb2RpbmcgbWF0Y2hlcyBHQjE4MDMwLTIwMDUgZXhjZXB0IHRoZSB0d28tYnl0ZSBz ZXF1ZW5jZSAweEEzIDB4QTAKKy0vLy8gbWFwcyB0byBVKzMwMDAgZm9yIGNvbXBhdGliaWxpdHkg d2l0aCBleGlzdGluZyBXZWIgY29udGVudC4gQXMgYSByZXN1bHQsCistLy8vIHRoaXMgZW5jb2Rp bmcgY2FuIHJlcHJlc2VudCBhbGwgb2YgVW5pY29kZSBleGNlcHQgZm9yIHRoZSBwcml2YXRlLXVz ZQorLS8vLyBjaGFyYWN0ZXIgVStFNUU1LgorKy8vLyBUaGlzIGVuY29kaW5nIG1hdGNoZXMgR0Ix ODAzMC0yMDIyIGV4Y2VwdCB0aGUgdHdvLWJ5dGUgc2VxdWVuY2UgMHhBMyAweEEwCisrLy8vIG1h cHMgdG8gVSszMDAwIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgV2ViIGNvbnRlbnQg YW5kIHRoZSBmb3VyLWJ5dGUKKysvLy8gc2VxdWVuY2VzIGZvciB0aGUgbm9uLVBVQSBjaGFyYWN0 ZXJzIHRoYXQgZ290IHR3by1ieXRlIHNlcXVlbmNlcyBzdGlsbCBkZWNvZGUKKysvLy8gdG8gdGhl IHNhbWUgbm9uLVBVQSBjaGFyYWN0ZXJzIGFzIGluIEdCMTgwMzAtMjAwNS4gQXMgYSByZXN1bHQs IHRoaXMgZW5jb2RpbmcKKysvLy8gY2FuIHJlcHJlc2VudCBhbGwgb2YgVW5pY29kZSBleGNlcHQg Zm9yIDE5IHByaXZhdGUtdXNlIGNoYXJhY3RlcnMuCisgLy8vCisgLy8vIFtJbmRleCB2aXN1YWxp emF0aW9uIGZvciB0aGUgdHdvLWJ5dGUgc2VxdWVuY2VzXShodHRwczovL2VuY29kaW5nLnNwZWMu d2hhdHdnLm9yZy9nYjE4MDMwLmh0bWwpLAorIC8vLyBbVmlzdWFsaXphdGlvbiBvZiBCTVAgY292 ZXJhZ2Ugb2YgdGhlIHR3by1ieXRlIGluZGV4XShodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdn Lm9yZy9nYjE4MDMwLWJtcC5odG1sKQorIC8vLworIC8vLyBUaGlzIGVuY29kaW5nIG1hdGNoZXMg dGhlIFdpbmRvd3MgY29kZSBwYWdlIDU0OTM2LgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weSBiL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9nZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5CisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL2dlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKK0BAIC0x MCwxNyArMTAsMTcgQEAKKyAjIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCisgCisg aW1wb3J0IGpzb24KKyBpbXBvcnQgc3VicHJvY2VzcworIGltcG9ydCBzeXMKKyBpbXBvcnQgb3Mu cGF0aAorIAorIGlmIChub3Qgb3MucGF0aC5pc2ZpbGUoIi4uL2VuY29kaW5nL2VuY29kaW5ncy5q c29uIikpIG9yIChub3Qgb3MucGF0aC5pc2ZpbGUoIi4uL2VuY29kaW5nL2luZGV4ZXMuanNvbiIp KToKKy0gIHN5cy5zdGRlcnIud3JpdGUoIlRoaXMgc2NyaXB0IG5lZWRzIGEgY2xvbmUgb2YgaHR0 cHM6Ly9naXRodWIuY29tL3doYXR3Zy9lbmNvZGluZy8gKHByZWZlcmFibHkgYXQgcmV2aXNpb24g ZjM4MTM4OSkgbmV4dCB0byB0aGUgZW5jb2RpbmdfcnMgZGlyZWN0b3J5LlxuIik7CisrICBzeXMu c3RkZXJyLndyaXRlKCJUaGlzIHNjcmlwdCBuZWVkcyBhIGNsb25lIG9mIGh0dHBzOi8vZ2l0aHVi LmNvbS93aGF0d2cvZW5jb2RpbmcvIChwcmVmZXJhYmx5IGF0IHJldmlzaW9uIDFkNTE5YmY4ZTU1 NTVjZWY2NGNmM2E3MTI0ODVmNDFjZDFhNmE5OTAgKSBuZXh0IHRvIHRoZSBlbmNvZGluZ19ycyBk aXJlY3RvcnkuXG4iKTsKKyAgIHN5cy5leGl0KC0xKQorIAorIGlmIG5vdCBvcy5wYXRoLmlzZmls ZSgiLi4vZW5jb2RpbmdfYy9zcmMvbGliLnJzIik6CisgICBzeXMuc3RkZXJyLndyaXRlKCJUaGlz IHNjcmlwdCBhbHNvIHdyaXRlcyB0aGUgZ2VuZXJhdGVkIHBhcnRzIG9mIHRoZSBlbmNvZGluZ19j IGNyYXRlIGFuZCBuZWVkcyBhIGNsb25lIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9l bmNvZGluZ19jIG5leHQgdG8gdGhlIGVuY29kaW5nX3JzIGRpcmVjdG9yeS5cbiIpOworICAgc3lz LmV4aXQoLTEpCisgCisgaWYgbm90IG9zLnBhdGguaXNmaWxlKCIuLi9jb2RlcGFnZS9zcmMvbGli LnJzIik6CisgICBzeXMuc3RkZXJyLndyaXRlKCJUaGlzIHNjcmlwdCBhbHNvIHdyaXRlcyB0aGUg Z2VuZXJhdGVkIHBhcnRzIG9mIHRoZSBjb2RlcGFnZSBjcmF0ZSBhbmQgbmVlZHMgYSBjbG9uZSBv ZiBodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vY29kZXBhZ2UgbmV4dCB0byB0aGUgZW5jb2Rp bmdfcnMgZGlyZWN0b3J5LlxuIik7CitAQCAtMTYwNywxOCArMTYwNywxNyBAQCB1dGZfOF9maWxl LndyaXRlKCIiIgorIAorICIiIikKKyAKKyB1dGZfOF9maWxlLndyaXRlKHV0Zl84X3JzX2VuZCkK KyB1dGZfOF9maWxlLmNsb3NlKCkKKyAKKyAjIFVuaXQgdGVzdHMKKyAKKy1URVNUX0hFQURFUiA9 ICcnJ0FueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMg ZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMu b3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytURVNUX0hFQURFUiA9ICcnJ0dlbmVyYXRlZCBm cm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlz IGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2Ug cmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5CisgJycnCisgCisgaW5k ZXggPSBpbmRleGVzWyJqaXMwMjA4Il0KKyAKKyBqaXMwMjA4X2luX2ZpbGUgPSBvcGVuKCJzcmMv dGVzdF9kYXRhL2ppczAyMDhfaW4udHh0IiwgInciKQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2RhdGEucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy9kYXRhLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9k YXRhLnJzCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9kYXRhLnJzCitA QCAtMiwxNiArMiw0NyBAQAorIC8vIGZpbGUgYXQgdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2Yg dGhpcyBkaXN0cmlidXRpb24uCisgLy8KKyAvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExp Y2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgorIC8vIGh0dHBzOi8vd3d3LmFw YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQorIC8vIDxM SUNFTlNFLU1JVCBvciBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGF0IHlv dXIKKyAvLyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9y IGRpc3RyaWJ1dGVkCisgLy8gZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KKyAKKysv LyBUaGUgYWJvdmUgbGljZW5zZSBhcHBsaWVzIHRvIGNvZGUgaW4gdGhpcyBmaWxlLiBUaGUgZGF0 YSBpbiB0aGlzCisrLy8gZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBXSEFUV0cncyBpbmRleGVzLmpz b24sIHdoaWNoIGNhbWUgdW5kZXIKKysvLyB0aGUgZm9sbG93aW5nIGxpY2Vuc2U6CisrCisrLy8g Q29weXJpZ2h0IMKpIFdIQVRXRyAoQXBwbGUsIEdvb2dsZSwgTW96aWxsYSwgTWljcm9zb2Z0KS4K KysvLworKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y bXMsIHdpdGggb3Igd2l0aG91dAorKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92 aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorKy8vCisrLy8gMS4g UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlLCB0aGlzCisrLy8gICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s bG93aW5nIGRpc2NsYWltZXIuCisrLy8KKysvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5 IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisrLy8gICAg dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0 aGUgZG9jdW1lbnRhdGlvbgorKy8vICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKy8vCisrLy8gMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0 aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cworKy8vICAgIGNvbnRyaWJ1 dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm cm9tCisrLy8gICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g cGVybWlzc2lvbi4KKysvLworKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorKy8vIEFORCBBTlkgRVhQ UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBUSEUKKysvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKysvLyBESVNDTEFJTUVELiBJTiBOTyBF VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF CisrLy8gRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKysvLyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorKy8vIFNFUlZJ Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU SU9OKSBIT1dFVkVSCisrLy8gQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKysvLyBPUiBUT1JUIChJTkNM VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg VEhFIFVTRQorKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisrCisgLy8gQkVHSU4gR0VORVJBVEVEIENPREUuIFBM RUFTRSBETyBOT1QgRURJVC4KKyAvLyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBn ZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5CisgCisgI1tyZXByKGFsaWduKDY0KSldIC8vIEFsaWdu IHRvIGNhY2hlIGxpbmVzCisgcHViIHN0cnVjdCBTaW5nbGVCeXRlRGF0YSB7CisgICAgIHB1YiBp Ym04NjY6IFt1MTY7IDEyOF0sCisgICAgIHB1YiBpc29fODg1OV8yOiBbdTE2OyAxMjhdLAorICAg ICBwdWIgaXNvXzg4NTlfMzogW3UxNjsgMTI4XSwKK0BAIC04ODA1NiwyMyArODgwODcsMjMgQEAg cHViIHN0YXRpYyBHQktfT1RIRVJfVU5TT1JURURfT0ZGU0VUUzogWworICAgICAweDIyOTUsIDB4 MzAxMiwgMHgzMDFELCAweEU3QkMsIDB4MzAyMSwgMHgzMkEzLCAweDMzOEUsIDB4MzM5QywgMHgz M0ExLCAweDMzQzQsIDB4MzNDRSwgMHgzM0QxLAorICAgICAweDMzRDUsIDB4RkUzMCwgMHhGRkUy LCAweEZGRTQsIDB4RTdFMiwgMHgyMTIxLCAweDMyMzEsIDB4RTdFMywgMHgyMDEwLCAweEU3RTQs IDB4MzBGQywgMHgzMDlCLAorICAgICAweDMwRkQsIDB4MzAwNiwgMHgzMDlELCAweEZFNDksIDB4 RkU1NCwgMHhGRTU5LCAweEZFNjgsIDB4MzAzRSwgMHgyRkYwLCAweDMwMDcsIDB4RTdGNCwKKyBd OworIAorIHB1YiBzdGF0aWMgR0JLX0JPVFRPTTogW3UxNjsgMTAxXSA9IFsKKyAgICAgMHhGOTJD LCAweEY5NzksIDB4Rjk5NSwgMHhGOUU3LCAweEY5RjEsIDB4RkEwQywgMHhGQTBELCAweEZBMEUs IDB4RkEwRiwgMHhGQTExLCAweEZBMTMsIDB4RkExNCwKKyAgICAgMHhGQTE4LCAweEZBMUYsIDB4 RkEyMCwgMHhGQTIxLCAweEZBMjMsIDB4RkEyNCwgMHhGQTI3LCAweEZBMjgsIDB4RkEyOSwgMHgy RTgxLCAweEU4MTYsIDB4RTgxNywKKy0gICAgMHhFODE4LCAweDJFODQsIDB4MzQ3MywgMHgzNDQ3 LCAweDJFODgsIDB4MkU4QiwgMHhFODFFLCAweDM1OUUsIDB4MzYxQSwgMHgzNjBFLCAweDJFOEMs IDB4MkU5NywKKy0gICAgMHgzOTZFLCAweDM5MTgsIDB4RTgyNiwgMHgzOUNGLCAweDM5REYsIDB4 M0E3MywgMHgzOUQwLCAweEU4MkIsIDB4RTgyQywgMHgzQjRFLCAweDNDNkUsIDB4M0NFMCwKKy0g ICAgMHgyRUE3LCAweEU4MzEsIDB4RTgzMiwgMHgyRUFBLCAweDQwNTYsIDB4NDE1RiwgMHgyRUFF LCAweDQzMzcsIDB4MkVCMywgMHgyRUI2LCAweDJFQjcsIDB4RTgzQiwKKy0gICAgMHg0M0IxLCAw eDQzQUMsIDB4MkVCQiwgMHg0M0RELCAweDQ0RDYsIDB4NDY2MSwgMHg0NjRDLCAweEU4NDMsIDB4 NDcyMywgMHg0NzI5LCAweDQ3N0MsIDB4NDc4RCwKKysgICAgMHhFODE4LCAweDJFODQsIDB4MzQ3 MywgMHgzNDQ3LCAweDJFODgsIDB4MkU4QiwgMHg5RkI0LCAweDM1OUUsIDB4MzYxQSwgMHgzNjBF LCAweDJFOEMsIDB4MkU5NywKKysgICAgMHgzOTZFLCAweDM5MTgsIDB4OUZCNSwgMHgzOUNGLCAw eDM5REYsIDB4M0E3MywgMHgzOUQwLCAweDlGQjYsIDB4OUZCNywgMHgzQjRFLCAweDNDNkUsIDB4 M0NFMCwKKysgICAgMHgyRUE3LCAweEU4MzEsIDB4OUZCOCwgMHgyRUFBLCAweDQwNTYsIDB4NDE1 RiwgMHgyRUFFLCAweDQzMzcsIDB4MkVCMywgMHgyRUI2LCAweDJFQjcsIDB4RTgzQiwKKysgICAg MHg0M0IxLCAweDQzQUMsIDB4MkVCQiwgMHg0M0RELCAweDQ0RDYsIDB4NDY2MSwgMHg0NjRDLCAw eDlGQjksIDB4NDcyMywgMHg0NzI5LCAweDQ3N0MsIDB4NDc4RCwKKyAgICAgMHgyRUNBLCAweDQ5 NDcsIDB4NDk3QSwgMHg0OTdELCAweDQ5ODIsIDB4NDk4MywgMHg0OTg1LCAweDQ5ODYsIDB4NDk5 RiwgMHg0OTlCLCAweDQ5QjcsIDB4NDlCNiwKKy0gICAgMHhFODU0LCAweEU4NTUsIDB4NENBMywg MHg0QzlGLCAweDRDQTAsIDB4NENBMSwgMHg0Qzc3LCAweDRDQTIsIDB4NEQxMywgMHg0RDE0LCAw eDREMTUsIDB4NEQxNiwKKy0gICAgMHg0RDE3LCAweDREMTgsIDB4NEQxOSwgMHg0REFFLCAweEU4 NjQsCisrICAgIDB4OUZCQSwgMHhFODU1LCAweDRDQTMsIDB4NEM5RiwgMHg0Q0EwLCAweDRDQTEs IDB4NEM3NywgMHg0Q0EyLCAweDREMTMsIDB4NEQxNCwgMHg0RDE1LCAweDREMTYsCisrICAgIDB4 NEQxNywgMHg0RDE4LCAweDREMTksIDB4NERBRSwgMHg5RkJCLAorIF07CisgCisgcHViIHN0YXRp YyBHQjIzMTJfSEFOWkk6IFt1MTY7IDY3NjhdID0gWworICAgICAweDU1NEEsIDB4OTYzRiwgMHg1 N0MzLCAweDYzMjgsIDB4NTRDRSwgMHg1NTA5LCAweDU0QzAsIDB4NzY5MSwgMHg3NjRDLCAweDg1 M0MsIDB4NzdFRSwgMHg4MjdFLAorICAgICAweDc4OEQsIDB4NzIzMSwgMHg5Njk4LCAweDk3OEQs IDB4NkMyOCwgMHg1Qjg5LCAweDRGRkEsIDB4NjMwOSwgMHg2Njk3LCAweDVDQjgsIDB4ODBGQSwg MHg2ODQ4LAorICAgICAweDgwQUUsIDB4NjYwMiwgMHg3NkNFLCAweDUxRjksIDB4NjU1NiwgMHg3 MUFDLCAweDdGRjEsIDB4ODg4NCwgMHg1MEIyLCAweDU5NjUsIDB4NjFDQSwgMHg2RkIzLAorICAg ICAweDgyQUQsIDB4NjM0QywgMHg2MjUyLCAweDUzRUQsIDB4NTQyNywgMHg3QjA2LCAweDUxNkIs IDB4NzVBNCwgMHg1REY0LCAweDYyRDQsIDB4OERDQiwgMHg5Nzc2LAorICAgICAweDYyOEEsIDB4 ODAxOSwgMHg1NzVELCAweDk3MzgsIDB4N0Y2MiwgMHg3MjM4LCAweDc2N0QsIDB4NjdDRiwgMHg3 NjdFLCAweDY0NDYsIDB4NEY3MCwgMHg4RDI1LAorQEAgLTg4NjQ1LDM3ICs4ODY3NiwzNyBAQCBw dWIgc3RhdGljIEdCMjMxMl9TWU1CT0xTOiBbdTE2OyA5NF0gPSBbCisgICAgIDB4MjI5OSwgMHgy MjJCLCAweDIyMkUsIDB4MjI2MSwgMHgyMjRDLCAweDIyNDgsIDB4MjIzRCwgMHgyMjFELCAweDIy NjAsIDB4MjI2RSwgMHgyMjZGLCAweDIyNjQsCisgICAgIDB4MjI2NSwgMHgyMjFFLCAweDIyMzUs IDB4MjIzNCwgMHgyNjQyLCAweDI2NDAsIDB4MDBCMCwgMHgyMDMyLCAweDIwMzMsIDB4MjEwMywg MHhGRjA0LCAweDAwQTQsCisgICAgIDB4RkZFMCwgMHhGRkUxLCAweDIwMzAsIDB4MDBBNywgMHgy MTE2LCAweDI2MDYsIDB4MjYwNSwgMHgyNUNCLCAweDI1Q0YsIDB4MjVDRSwgMHgyNUM3LCAweDI1 QzYsCisgICAgIDB4MjVBMSwgMHgyNUEwLCAweDI1QjMsIDB4MjVCMiwgMHgyMDNCLCAweDIxOTIs IDB4MjE5MCwgMHgyMTkxLCAweDIxOTMsIDB4MzAxMywKKyBdOworIAorIHB1YiBzdGF0aWMgR0Iy MzEyX1NZTUJPTFNfQUZURVJfR1JFRUs6IFt1MTY7IDIyXSA9IFsKKyAgICAgMHhGRTM1LCAweEZF MzYsIDB4RkUzOSwgMHhGRTNBLCAweEZFM0YsIDB4RkU0MCwgMHhGRTNELCAweEZFM0UsIDB4RkU0 MSwgMHhGRTQyLCAweEZFNDMsIDB4RkU0NCwKKy0gICAgMHhFNzk0LCAweEU3OTUsIDB4RkUzQiwg MHhGRTNDLCAweEZFMzcsIDB4RkUzOCwgMHhGRTMxLCAweEU3OTYsIDB4RkUzMywgMHhGRTM0LAor KyAgICAweEZFMTcsIDB4RkUxOCwgMHhGRTNCLCAweEZFM0MsIDB4RkUzNywgMHhGRTM4LCAweEZF MzEsIDB4RkUxOSwgMHhGRTMzLCAweEZFMzQsCisgXTsKKyAKKyBwdWIgc3RhdGljIEdCMjMxMl9Q SU5ZSU46IFt1MTY7IDMyXSA9IFsKKyAgICAgMHgwMTAxLCAweDAwRTEsIDB4MDFDRSwgMHgwMEUw LCAweDAxMTMsIDB4MDBFOSwgMHgwMTFCLCAweDAwRTgsIDB4MDEyQiwgMHgwMEVELCAweDAxRDAs IDB4MDBFQywKKyAgICAgMHgwMTRELCAweDAwRjMsIDB4MDFEMiwgMHgwMEYyLCAweDAxNkIsIDB4 MDBGQSwgMHgwMUQ0LCAweDAwRjksIDB4MDFENiwgMHgwMUQ4LCAweDAxREEsIDB4MDFEQywKKyAg ICAgMHgwMEZDLCAweDAwRUEsIDB4MDI1MSwgMHgxRTNGLCAweDAxNDQsIDB4MDE0OCwgMHgwMUY5 LCAweDAyNjEsCisgXTsKKyAKKy1wdWIgc3RhdGljIEdCMjMxMl9PVEhFUl9QT0lOVEVSUzogW3Ux NjsgNDRdID0gWworK3B1YiBzdGF0aWMgR0IyMzEyX09USEVSX1BPSU5URVJTOiBbdTE2OyA0N10g PSBbCisgICAgIDB4MDAwMCwgMHgwMDBBLCAweDAwMTAsIDB4MDAyNCwgMHgwMDM4LCAweDAwNDIs IDB4MDA0MywgMHgwMDQ0LCAweDAwNEUsIDB4MDA1MCwgMHgwMDVDLCAweDAwNUUsCisgICAgIDB4 MDA2MSwgMHgwMDYyLCAweDAwQkIsIDB4MDBCQywgMHgwMTBGLCAweDAxMUEsIDB4MDE3MCwgMHgw MTc4LCAweDAxODksIDB4MDE5MCwgMHgwMTk4LCAweDAxQTksCistICAgIDB4MDFCMCwgMHgwMUI3 LCAweDAxQ0QsIDB4MDFENiwgMHgwMURDLCAweDAxREQsIDB4MDFGNywgMHgwMjA2LCAweDAyMEMs IDB4MDIwRCwgMHgwMjI3LCAweDAyMzQsCistICAgIDB4MDI1NCwgMHgwMjU4LCAweDAyN0QsIDB4 MDI5MiwgMHgwMjk1LCAweDAyRTEsIDB4MDJGMCwgMHgwNTI0LAorKyAgICAweDAxQjAsIDB4MDFC MSwgMHgwMUIyLCAweDAxQjMsIDB4MDFCNywgMHgwMUNELCAweDAxRDYsIDB4MDFEQywgMHgwMURE LCAweDAxRjcsIDB4MDIwNiwgMHgwMjBDLAorKyAgICAweDAyMEQsIDB4MDIyNywgMHgwMjM0LCAw eDAyNTQsIDB4MDI1OCwgMHgwMjdELCAweDAyOTIsIDB4MDI5NSwgMHgwMkUxLCAweDAyRjAsIDB4 MDUyNCwKKyBdOworIAorLXB1YiBzdGF0aWMgR0IyMzEyX09USEVSX1VOU09SVEVEX09GRlNFVFM6 IFt1MTY7IDQzXSA9IFsKKytwdWIgc3RhdGljIEdCMjMxMl9PVEhFUl9VTlNPUlRFRF9PRkZTRVRT OiBbdTE2OyA0Nl0gPSBbCisgICAgIDB4MjE3MCwgMHhFNzY2LCAweDI0ODgsIDB4MjQ3NCwgMHgy NDYwLCAweDIwQUMsIDB4RTc2RCwgMHgzMjIwLCAweEU3NkUsIDB4MjE2MCwgMHhFNzcwLCAweEZG MDEsCisgICAgIDB4RkZFNSwgMHhGRjA1LCAweEZGRTMsIDB4MzA0MSwgMHhFNzcyLCAweDMwQTEs IDB4RTc3RCwgMHgwMzkxLCAweDAzQTMsIDB4RTc4NSwgMHgwM0IxLCAweDAzQzMsCistICAgIDB4 RTc4RCwgMHgwMDAwLCAweEU3OTcsIDB4MDQxMCwgMHgwNDAxLCAweDA0MTYsIDB4RTdBMCwgMHgw NDMwLCAweDA0NTEsIDB4MDQzNiwgMHhFN0FGLCAweDAwMDAsCistICAgIDB4RTdDOSwgMHgzMTA1 LCAweEU3Q0QsIDB4RTdGRSwgMHgyNTAwLCAweEU4MDEsIDB4RTAwMCwKKysgICAgMHhGRTEwLCAw eEZFMTIsIDB4RkUxMSwgMHhGRTEzLCAweDAwMDAsIDB4RTc5NywgMHgwNDEwLCAweDA0MDEsIDB4 MDQxNiwgMHhFN0EwLCAweDA0MzAsIDB4MDQ1MSwKKysgICAgMHgwNDM2LCAweEU3QUYsIDB4MDAw MCwgMHhFN0M5LCAweDMxMDUsIDB4RTdDRCwgMHhFN0ZFLCAweDI1MDAsIDB4RTgwMSwgMHhFMDAw LAorIF07CisgCisgcHViIHN0YXRpYyBHQjE4MDMwX1JBTkdFX1BPSU5URVJTOiBbdTE2OyAyMDZd ID0gWworICAgICAweDAwMDAsIDB4MDAyNCwgMHgwMDI2LCAweDAwMkQsIDB4MDAzMiwgMHgwMDUx LCAweDAwNTksIDB4MDA1RiwgMHgwMDYwLCAweDAwNjQsIDB4MDA2NywgMHgwMDY4LAorICAgICAw eDAwNjksIDB4MDA2RCwgMHgwMDdFLCAweDAwODUsIDB4MDA5NCwgMHgwMEFDLCAweDAwQUYsIDB4 MDBCMywgMHgwMEQwLCAweDAxMzIsIDB4MDEzMywgMHgwMTM0LAorICAgICAweDAxMzUsIDB4MDEz NiwgMHgwMTM3LCAweDAxMzgsIDB4MDEzOSwgMHgwMTU1LCAweDAxQUMsIDB4MDFCQiwgMHgwMjIw LCAweDAyMjEsIDB4MDIyRSwgMHgwMkU1LAorICAgICAweDAyRTYsIDB4MDJFRCwgMHgwMkVFLCAw eDAzMjUsIDB4MDMzMywgMHgwMzM0LCAweDFFRjIsIDB4MUVGNCwgMHgxRUY1LCAweDFFRjcsIDB4 MUVGRSwgMHgxRjA3LAorICAgICAweDFGMDgsIDB4MUYwOSwgMHgxRjBFLCAweDFGN0UsIDB4MUZE NCwgMHgxRkQ1LCAweDFGRDgsIDB4MUZFNCwgMHgxRkVFLCAweDIwMkMsIDB4MjAzMCwgMHgyMDQ2 LAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2diMTgwMzAu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9nYjE4MDMwLnJzCistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9nYjE4MDMwLnJzCisrKysgYi90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9nYjE4MDMwLnJzCitAQCAtNCwxNiArNCwxNyBAQAor IC8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VO U0UtQVBBQ0hFIG9yCisgLy8gaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNF LTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCisgLy8gPExJQ0VOU0UtTUlUIG9yIGh0dHBzOi8vb3Bl bnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgorIC8vIG9wdGlvbi4gVGhpcyBmaWxl IG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKKyAvLyBleGNlcHQg YWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorIAorIHVzZSBzdXBlcjo6KjsKKyB1c2UgY3JhdGU6 OmRhdGE6Oio7CisrdXNlIGNyYXRlOjpnYjE4MDMwXzIwMjI6Oio7CisgdXNlIGNyYXRlOjpoYW5k bGVzOjoqOworIHVzZSBjcmF0ZTo6dmFyaWFudDo6KjsKKyAvLyBSdXN0IDEuMTQuMCByZXF1aXJl cyB0aGUgZm9sbG93aW5nIGRlc3BpdGUgdGhlIGFzdGVyaXNrIGFib3ZlLgorIHVzZSBzdXBlcjo6 aW5faW5jbHVzaXZlX3JhbmdlMTY7CisgdXNlIHN1cGVyOjppbl9yYW5nZTE2OworIAorIGVudW0g R2IxODAzMFBlbmRpbmcgeworICAgICBOb25lLAorQEAgLTM0MiwxOCArMzQzLDI1IEBAIGZuIGdi a19lbmNvZGVfbm9uX3VuaWZpZWQoYm1wOiB1MTYpIC0+IE8KKyAgICAgICAgIHsKKyAgICAgICAg ICAgICAvLyBEaWFjcml0aWNzIGFuZCBMYXRpbiAxIHN5bWJvbHMKKyAgICAgICAgICAgICBpZiBs ZXQgU29tZShwb3MpID0gcG9zaXRpb24oJkdCMjMxMl9TWU1CT0xTWzMuLigweEFDIC0gMHg2MCld LCBibXApIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKDB4QTEsIHBvcyArIDB4QTEg KyAzKSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIE5vbmU7 CisgICAgIH0KKy0gICAgaWYgYm1wID49IDB4RTc5NCB7CistICAgICAgICAvLyBWYXJpb3VzIGJy YWNrZXRzLCBhbGwgaW4gUFVBIG9yIGZ1bGwtd2lkdGggcmVnaW9ucworKworKyAgICBpZiBpbl9p bmNsdXNpdmVfcmFuZ2UxNihibXAsIDB4RTc4RCwgMHhFODY0KSB7CisrICAgICAgICAvLyBUaGUg YXJyYXkgaXMgc29ydGVkIGJ1dCBzaG9ydCwgc28gbGV0J3MgZG8gbGluZWFyIHNlYXJjaC4KKysg ICAgICAgIGlmIGxldCBTb21lKHBvcykgPSBwb3NpdGlvbigmR0IxODAzMF8yMDIyX09WRVJSSURF X1BVQVsuLl0sIGJtcCkgeworKyAgICAgICAgICAgIGxldCBwYWlyID0gJkdCMTgwMzBfMjAyMl9P VkVSUklERV9CWVRFU1twb3NdOworKyAgICAgICAgICAgIHJldHVybiBTb21lKChwYWlyWzBdLmlu dG8oKSwgcGFpclsxXS5pbnRvKCkpKTsKKysgICAgICAgIH0KKysgICAgfSBlbHNlIGlmIGJtcCA+ PSAweEZFMTcgeworKyAgICAgICAgLy8gVmFyaW91cyBicmFja2V0cywgYWxsIGluIGZ1bGwtd2lk dGggcmVnaW9ucworICAgICAgICAgaWYgbGV0IFNvbWUocG9zKSA9IHBvc2l0aW9uKCZHQjIzMTJf U1lNQk9MU19BRlRFUl9HUkVFS1suLl0sIGJtcCkgeworICAgICAgICAgICAgIHJldHVybiBTb21l KCgweEE2LCBwb3MgKyAoMHg5RiAtIDB4NjAgKyAweEExKSkpOworICAgICAgICAgfQorICAgICB9 IGVsc2UgaWYgYm1wID09IDB4MUUzRiB7CisgICAgICAgICAvLyBUaGUgb25lIFBpbnlpbiBwbGFj ZWQgZWxzZXdoZXJlIG9uIHRoZSBCTVAKKyAgICAgICAgIHJldHVybiBTb21lKCgweEE4LCAweDdC IC0gMHg2MCArIDB4QTEpKTsKKyAgICAgfSBlbHNlIGlmIGluX3JhbmdlMTYoYm1wLCAweEEwMDAs IDB4RDgwMCkgeworICAgICAgICAgLy8gU2luY2UgS29yZWFuIGhhcyB1c2FnZSBpbiBDaGluYSwg bGV0J3Mgc3BlbmQgYSBicmFuY2ggdG8gZmFzdC10cmFjaworQEAgLTM3NSwxOCArMzgzLDIxIEBA IGZuIGdia19lbmNvZGVfbm9uX3VuaWZpZWQoYm1wOiB1MTYpIC0+IE8KKyAgICAgfQorICAgICAv LyBHQksgb3RoZXIgKGV4Y2VwdCByYWRpY2FscyBhbmQgUFVBIGluIEdCS19CT1RUT00pLgorICAg ICBpZiBsZXQgU29tZShvdGhlcl9wb2ludGVyKSA9IGdia19vdGhlcl9lbmNvZGUoYm1wKSB7Cisg ICAgICAgICBsZXQgb3RoZXJfbGVhZCA9IG90aGVyX3BvaW50ZXIgYXMgdXNpemUgLyAoMTkwIC0g OTQpOworICAgICAgICAgbGV0IG90aGVyX3RyYWlsID0gb3RoZXJfcG9pbnRlciBhcyB1c2l6ZSAl ICgxOTAgLSA5NCk7CisgICAgICAgICBsZXQgb2Zmc2V0ID0gaWYgb3RoZXJfdHJhaWwgPCAweDNG IHsgMHg0MCB9IGVsc2UgeyAweDQxIH07CisgICAgICAgICByZXR1cm4gU29tZSgob3RoZXJfbGVh ZCArICgweDgxICsgMHgyMCksIG90aGVyX3RyYWlsICsgb2Zmc2V0KSk7CisgICAgIH0KKy0gICAg Ly8gQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQgb3IgUFVBIGluIEdCS19CT1RUT00KKy0gICAgaWYg aW5faW5jbHVzaXZlX3JhbmdlMTYoYm1wLCAweDJFODEsIDB4MkVDQSkgfHwgaW5faW5jbHVzaXZl X3JhbmdlMTYoYm1wLCAweEU4MTYsIDB4RTg2NCkgeworKyAgICAvLyBDSksgUmFkaWNhbHMgU3Vw cGxlbWVudCwgUFVBLCBhbmQgVSs5RkJ4IGlkZW9ncmFwaHMgaW4gR0JLX0JPVFRPTQorKyAgICBp ZiBpbl9pbmNsdXNpdmVfcmFuZ2UxNihibXAsIDB4MkU4MSwgMHgyRUNBKQorKyAgICAgICAgfHwg aW5faW5jbHVzaXZlX3JhbmdlMTYoYm1wLCAweDlGQjQsIDB4OUZCQikKKysgICAgICAgIHx8IGlu X2luY2x1c2l2ZV9yYW5nZTE2KGJtcCwgMHhFODE2LCAweEU4NTUpCisrICAgIHsKKyAgICAgICAg IGlmIGxldCBTb21lKHBvcykgPSBwb3NpdGlvbigmR0JLX0JPVFRPTVsyMS4uXSwgYm1wKSB7Cisg ICAgICAgICAgICAgbGV0IHRyYWlsID0gcG9zICsgMTY7CisgICAgICAgICAgICAgbGV0IG9mZnNl dCA9IGlmIHRyYWlsIDwgMHgzRiB7IDB4NDAgfSBlbHNlIHsgMHg0MSB9OworICAgICAgICAgICAg IHJldHVybiBTb21lKCgweEZFLCB0cmFpbCArIG9mZnNldCkpOworICAgICAgICAgfQorICAgICB9 CisgICAgIC8vIEdCMjMxMiBib3R0b20gUFVBCisgICAgIGxldCBibXBfbWludXNfZ2IyMzEyX2Jv dHRvbV9wdWEgPSBibXAud3JhcHBpbmdfc3ViKDB4RTIzNCk7CitAQCAtNjAyLDIxICs2MTMsMjgg QEAgbW9kIHRlc3RzIHsKKyAKKyAgICAgICAgIC8vIHR3byBieXRlcworICAgICAgICAgZGVjb2Rl X2diMTgwMzAoYiJceDgxXHg0MCIsICJcdXs0RTAyfSIpOworICAgICAgICAgZGVjb2RlX2diMTgw MzAoYiJceDgxXHg3RSIsICJcdXs0RThBfSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJc eDgxXHg3RiIsICJcdXtGRkZEfVx1ezAwN0Z9Iik7CisgICAgICAgICBkZWNvZGVfZ2IxODAzMChi Ilx4ODFceDgwIiwgIlx1ezRFOTB9Iik7CisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4ODFc eEZFIiwgIlx1ezRGQTJ9Iik7CisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4RkVceDQwIiwg Ilx1e0ZBMEN9Iik7CistICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4RkVceDdFIiwgIlx1e0U4 NDN9Iik7CisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4RkVceDdGIiwgIlx1e0ZGRkR9XHV7 MDA3Rn0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhGRVx4ODAiLCAiXHV7NDcyM30i KTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhGRVx4RkUiLCAiXHV7RTRDNX0iKTsKKyAK KysgICAgICAgIC8vIENoYW5nZXMgYmV0d2VlbiBHQjE4MDMwLTIwMDUgYW5kIEdCMTgwMzAtMjAy MgorKyAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEZFXHg3RSIsICJcdXs5RkI5fSIpOworKyAg ICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEE2XHhERCIsICJcdXtGRTE0fSIpOworKworKyAgICAg ICAgLy8gVGhlc2UgbWFwcGluZ3MgcmVtYWluIGluIHBsYWNlIHRoZSBHQjE4MDMwLTIwMDUgd2F5 IGRlc3BpdGUgR0IxODAzMC0yMDIyCisrICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4ODJceDM1 XHg5MVx4MzIiLCAiXHV7OUZCOX0iKTsKKysgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4NFx4 MzFceDgzXHgzMCIsICJcdXtGRTE0fSIpOworKworICAgICAgICAgLy8gVGhlIGRpZmZlcmVuY2Ug ZnJvbSB0aGUgb3JpZ2luYWwgR0IxODAzMAorICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEEz XHhBMCIsICJcdXszMDAwfSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEExXHhBMSIs ICJcdXszMDAwfSIpOworIAorICAgICAgICAgLy8gMHhGRgorICAgICAgICAgZGVjb2RlX2diMTgw MzAoYiJceEZGXHg0MCIsICJcdXtGRkZEfVx1ezAwNDB9Iik7CisgICAgICAgICBkZWNvZGVfZ2Ix ODAzMChiIlx4RTNceEZGXHg5QVx4MzMiLCAiXHV7RkZGRH1cdXtGRkZEfSIpOyAvLyBub3QgXHV7 RkZGRH1cdXtGRkZEfVx1ezAwMzN9ICEKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhGRlx4 MzJceDlBXHgzMyIsICJcdXtGRkZEfVx1ezAwMzJ9XHV7RkZGRH0iKTsgLy8gbm90IFx1e0ZGRkR9 XHV7MDAzMn1cdXtGRkZEfVx1ezAwMzN9ICEKK0BAIC02NzQsMTYgKzY5MiwyNSBAQCBtb2QgdGVz dHMgeworICAgICAgICAgICAgIC8vIE1pcmkgaXMgdG9vIHNsb3cKKyAgICAgICAgICAgICBlbmNv ZGVfZ2IxODAzMCgiXHV7MjYwM30iLCBiIlx4ODFceDM3XHhBM1x4MzAiKTsKKyAgICAgICAgICAg ICBlbmNvZGVfZ2IxODAzMCgiXHV7MUY0QTl9IiwgYiJceDk0XHgzOVx4REFceDMzIik7CisgICAg ICAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1ezEwRkZGRn0iLCBiIlx4RTNceDMyXHg5QVx4MzUi KTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIC8vIEVkZ2UgY2FzZXMKKyAgICAgICAgIGVuY29k ZV9nYjE4MDMwKCJcdXswMEY3fSIsIGIiXHhBMVx4QzIiKTsKKysKKysgICAgICAgIC8vIEdCMTgw MzAtMjAyMgorKyAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1ezlGQjl9IiwgYiJceEZFXHg3RSIp OworKyAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1e0ZFMTR9IiwgYiJceEE2XHhERCIpOworKyAg ICAgICAgZW5jb2RlX2diMTgwMzAoIlx1e0U4NDN9IiwgYiJceEZFXHg3RSIpOworKyAgICAgICAg ZW5jb2RlX2diMTgwMzAoIlx1e0U3OTF9IiwgYiJceEE2XHhERCIpOworKworKyAgICAgICAgLy8g Tm9uLWNoYW5nZSBpbiBHQjE4MDMwLTIwMjIKKysgICAgICAgIGVuY29kZV9nYjE4MDMwKCJcdXtF ODE3fSIsIGIiXHhGRVx4NTIiKTsKKyAgICAgfQorIAorICAgICAjW3Rlc3RdCisgICAgIGZuIHRl c3RfZ2JrX2VuY29kZSgpIHsKKyAgICAgICAgIC8vIEVtcHR5CisgICAgICAgICBlbmNvZGVfZ2Jr KCIiLCBiIiIpOworIAorICAgICAgICAgLy8gQVNDSUkKK0BAIC03MTYsMTYgKzc0MywyNSBAQCBt b2QgdGVzdHMgeworICAgICAgICAgICAgIC8vIE1pcmkgaXMgdG9vIHNsb3cKKyAgICAgICAgICAg ICBlbmNvZGVfZ2JrKCJcdXsyNjAzfSIsIGIiJiM5NzMxOyIpOworICAgICAgICAgICAgIGVuY29k ZV9nYmsoIlx1ezFGNEE5fSIsIGIiJiMxMjgxNjk7Iik7CisgICAgICAgICAgICAgZW5jb2RlX2di aygiXHV7MTBGRkZGfSIsIGIiJiMxMTE0MTExOyIpOworICAgICAgICAgfQorIAorICAgICAgICAg Ly8gRWRnZSBjYXNlcworICAgICAgICAgZW5jb2RlX2diaygiXHV7MDBGN30iLCBiIlx4QTFceEMy Iik7CisrCisrICAgICAgICAvLyBHQjE4MDMwLTIwMjIKKysgICAgICAgIGVuY29kZV9nYjE4MDMw KCJcdXs5RkI5fSIsIGIiXHhGRVx4N0UiKTsKKysgICAgICAgIGVuY29kZV9nYjE4MDMwKCJcdXtG RTE0fSIsIGIiXHhBNlx4REQiKTsKKysgICAgICAgIGVuY29kZV9nYjE4MDMwKCJcdXtFODQzfSIs IGIiXHhGRVx4N0UiKTsKKysgICAgICAgIGVuY29kZV9nYjE4MDMwKCJcdXtFNzkxfSIsIGIiXHhB Nlx4REQiKTsKKysKKysgICAgICAgIC8vIE5vbi1jaGFuZ2UgaW4gR0IxODAzMC0yMDIyCisrICAg ICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RTgxN30iLCBiIlx4RkVceDUyIik7CisgICAgIH0KKyAK KyAgICAgI1t0ZXN0XQorICAgICAjW2NmZ19hdHRyKG1pcmksIGlnbm9yZSldIC8vIE1pcmkgaXMg dG9vIHNsb3cKKyAgICAgZm4gdGVzdF9nYjE4MDMwX2RlY29kZV9hbGwoKSB7CisgICAgICAgICBs ZXQgaW5wdXQgPSBpbmNsdWRlX2J5dGVzISgidGVzdF9kYXRhL2diMTgwMzBfaW4udHh0Iik7Cisg ICAgICAgICBsZXQgZXhwZWN0YXRpb24gPSBpbmNsdWRlX3N0ciEoInRlc3RfZGF0YS9nYjE4MDMw X2luX3JlZi50eHQiKTsKKyAgICAgICAgIGxldCAoY293LCBoYWRfZXJyb3JzKSA9IEdCMTgwMzAu ZGVjb2RlX3dpdGhvdXRfYm9tX2hhbmRsaW5nKGlucHV0KTsKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9nYjE4MDMwXzIwMjIucnMgYi90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy9nYjE4MDMwXzIwMjIucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9n YjE4MDMwXzIwMjIucnMKK0BAIC0wLDAgKzEsNTQgQEAKKysvLyBDb3B5cmlnaHQgwqkgV0hBVFdH IChBcHBsZSwgR29vZ2xlLCBNb3ppbGxhLCBNaWNyb3NvZnQpLgorKy8vCisrLy8gUmVkaXN0cmli dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0 CisrLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisrLy8KKysvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMK KysvLyAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K KysvLworKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj ZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKysvLyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0 aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisr Ly8gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp b24uCisrLy8KKysvLyAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVy IG5vciB0aGUgbmFtZXMgb2YgaXRzCisrLy8gICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKysvLyAgICB0aGlzIHNv ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorKy8vCisr Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E IENPTlRSSUJVVE9SUyAiQVMgSVMiCisrLy8gQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKy8vIElNUExJRUQg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFSRQorKy8vIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ UklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKysvLyBGT1IgQU5ZIERJUkVD VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO VElBTAorKy8vIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisrLy8gU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKysvLyBD QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU LCBTVFJJQ1QgTElBQklMSVRZLAorKy8vIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisrLy8gT0YgVEhJ UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB TUFHRS4KKysKKysvLy8gVGhlIFBVQSBjb2RlIHBvaW50cyBzcGVjaWFsLWNhc2VkIGluIHRoZSBH QjE4MDMwIGVuY29kZXIuCisrcHViKGNyYXRlKSBzdGF0aWMgR0IxODAzMF8yMDIyX09WRVJSSURF X1BVQTogW3UxNjsgMThdID0gWworKyAgICAweEU3OEQsIDB4RTc4RSwgMHhFNzhGLCAweEU3OTAs IDB4RTc5MSwgMHhFNzkyLCAweEU3OTMsIDB4RTc5NCwgMHhFNzk1LCAweEU3OTYsIDB4RTgxRSwg MHhFODI2LAorKyAgICAweEU4MkIsIDB4RTgyQywgMHhFODMyLCAweEU4NDMsIDB4RTg1NCwgMHhF ODY0LAorK107CisrCisrLy8vIFRoZSBieXRlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBQVUEgY29k ZSBwb2ludHMgc3BlY2lhbC1jYXNlZCBpbiB0aGUgR0IxODAzMCBlbmNvZGVyLgorK3B1YihjcmF0 ZSkgc3RhdGljIEdCMTgwMzBfMjAyMl9PVkVSUklERV9CWVRFUzogW1t1ODsgMl07IDE4XSA9IFsK KysgICAgWzB4QTYsIDB4RDldLAorKyAgICBbMHhBNiwgMHhEQV0sCisrICAgIFsweEE2LCAweERC XSwKKysgICAgWzB4QTYsIDB4RENdLAorKyAgICBbMHhBNiwgMHhERF0sCisrICAgIFsweEE2LCAw eERFXSwKKysgICAgWzB4QTYsIDB4REZdLAorKyAgICBbMHhBNiwgMHhFQ10sCisrICAgIFsweEE2 LCAweEVEXSwKKysgICAgWzB4QTYsIDB4RjNdLAorKyAgICBbMHhGRSwgMHg1OV0sCisrICAgIFsw eEZFLCAweDYxXSwKKysgICAgWzB4RkUsIDB4NjZdLAorKyAgICBbMHhGRSwgMHg2N10sCisrICAg IFsweEZFLCAweDZEXSwKKysgICAgWzB4RkUsIDB4N0VdLAorKyAgICBbMHhGRSwgMHg5MF0sCisr ICAgIFsweEZFLCAweEEwXSwKKytdOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL2xpYi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xp Yi5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJzCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMKK0BAIC0yLDE2ICsyLDQ3 IEBACisgLy8gZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGlzIGRpc3RyaWJ1 dGlvbi4KKyAvLworIC8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lv biAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCisgLy8gaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNl bnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCisgLy8gPExJQ0VOU0UtTUlUIG9y IGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgorIC8vIG9wdGlv bi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQK KyAvLyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorIAorKy8vIFRoZSBhYm92ZSBs aWNlbnNlIGFwcGxpZXMgdG8gY29kZSBpbiB0aGlzIGZpbGUuIFRoZSBsYWJlbCBkYXRhIGluCisr Ly8gdGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIFdIQVRXRydzIGVuY29kaW5ncy5qc29uLCB3 aGljaCBjYW1lIHVuZGVyCisrLy8gdGhlIGZvbGxvd2luZyBsaWNlbnNlOgorKworKy8vIENvcHly aWdodCDCqSBXSEFUV0cgKEFwcGxlLCBHb29nbGUsIE1vemlsbGEsIE1pY3Jvc29mdCkuCisrLy8K KysvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3 aXRoIG9yIHdpdGhvdXQKKysvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKysvLworKy8vIDEuIFJlZGlz dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSwgdGhpcworKy8vICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu ZyBkaXNjbGFpbWVyLgorKy8vCisrLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorKy8vICAgIHRoaXMg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRv Y3VtZW50YXRpb24KKysvLyAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg dGhlIGRpc3RyaWJ1dGlvbi4KKysvLworKy8vIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNv cHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKysvLyAgICBjb250cmlidXRvcnMg bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor Ky8vICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p c3Npb24uCisrLy8KKysvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKysvLyBBTkQgQU5ZIEVYUFJFU1Mg T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF CisrLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisrLy8gRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorKy8v IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ LCBPUiBDT05TRVFVRU5USUFMCisrLy8gREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKysvLyBTRVJWSUNFUzsg TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg SE9XRVZFUgorKy8vIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisrLy8gT1IgVE9SVCAoSU5DTFVESU5H IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV U0UKKysvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM SVRZIE9GIFNVQ0ggREFNQUdFLgorKworICMhW2NmZ19hdHRyKAorICAgICBmZWF0dXJlID0gImNh cmdvLWNsaXBweSIsCisgICAgIGFsbG93KGRvY19tYXJrZG93biwgaW5saW5lX2Fsd2F5cywgbmV3 X3JldF9ub19zZWxmKQorICldCisgCisgLy8hIGVuY29kaW5nX3JzIGlzIGEgR2Vja28tb3JpZW50 ZWQgRnJlZSBTb2Z0d2FyZSAvIE9wZW4gU291cmNlIGltcGxlbWVudGF0aW9uCisgLy8hIG9mIHRo ZSBbRW5jb2RpbmcgU3RhbmRhcmRdKGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnLykg aW4gUnVzdC4KKyAvLyEgR2Vja28tb3JpZW50ZWQgbWVhbnMgdGhhdCBjb252ZXJ0aW5nIHRvIGFu ZCBmcm9tIFVURi0xNiBpcyBzdXBwb3J0ZWQgaW4KK0BAIC03MjUsMTYgKzc1NiwxNyBAQCBtb2Qg c2ltZF9mdW5jczsKKyAKKyAjW2NmZyhhbGwodGVzdCwgZmVhdHVyZSA9ICJhbGxvYyIpKV0KKyBt b2QgdGVzdGluZzsKKyAKKyBtb2QgYmlnNTsKKyBtb2QgZXVjX2pwOworIG1vZCBldWNfa3I7Cisg bW9kIGdiMTgwMzA7CisrbW9kIGdiMTgwMzBfMjAyMjsKKyBtb2QgaXNvXzIwMjJfanA7CisgbW9k IHJlcGxhY2VtZW50OworIG1vZCBzaGlmdF9qaXM7CisgbW9kIHNpbmdsZV9ieXRlOworIG1vZCB1 dGZfMTY7CisgbW9kIHV0Zl84OworIG1vZCB4X3VzZXJfZGVmaW5lZDsKKyAKK0BAIC05MDksMTkg Kzk0MSwyMCBAQCBwdWIgc3RhdGljIEdCS19JTklUOiBFbmNvZGluZyA9IEVuY29kaW5nCisgICAg IG5hbWU6ICJHQksiLAorICAgICB2YXJpYW50OiBWYXJpYW50RW5jb2Rpbmc6OkdiaywKKyB9Owor IAorIC8vLyBUaGUgR0JLIGVuY29kaW5nLgorIC8vLworIC8vLyBUaGUgZGVjb2RlciBmb3IgdGhp cyBlbmNvZGluZyBpcyB0aGUgc2FtZSBhcyB0aGUgZGVjb2RlciBmb3IgZ2IxODAzMC4KKyAvLy8g VGhlIGVuY29kZXIgc2lkZSBvZiB0aGlzIGVuY29kaW5nIGlzIEdCSyB3aXRoIFdpbmRvd3MgY29k ZSBwYWdlIDkzNiBldXJvCistLy8vIHNpZ24gYmVoYXZpb3IuIEdCSyBleHRlbmRzIEdCMjMxMi04 MCB0byBjb3ZlciB0aGUgQ0pLIFVuaWZpZWQgSWRlb2dyYXBocworLS8vLyBVbmljb2RlIGJsb2Nr IGFzIHdlbGwgYXMgYSBoYW5kZnVsIG9mIGlkZW9ncmFwaHMgZnJvbSB0aGUgQ0pLIFVuaWZpZWQK Ky0vLy8gSWRlb2dyYXBocyBFeHRlbnNpb24gQSBhbmQgQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dy YXBocyBibG9ja3MuCisrLy8vIHNpZ24gYmVoYXZpb3IgYW5kIHdpdGggdGhlIGNoYW5nZXMgdG8g dHdvLWJ5dGUgc2VxdWVuY2VzIG1hZGUgaW4gR0IxODAzMC0yMDIyLgorKy8vLyBHQksgZXh0ZW5k cyBHQjIzMTItODAgdG8gY292ZXIgdGhlIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgVW5pY29kZSBi bG9jayBhcworKy8vLyB3ZWxsIGFzIGEgaGFuZGZ1bCBvZiBpZGVvZ3JhcGhzIGZyb20gdGhlIENK SyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEKKysvLy8gYW5kIENKSyBDb21wYXRpYmls aXR5IElkZW9ncmFwaHMgYmxvY2tzLgorIC8vLworIC8vLyBVbmxpa2UgZS5nLiBpbiB0aGUgY2Fz ZSBvZiBJU08tODg1OS0xIGFuZCB3aW5kb3dzLTEyNTIsIEdCSyBlbmNvZGVyIHdhc24ndAorIC8v LyB1bmlmaWVkIHdpdGggdGhlIGdiMTgwMzAgZW5jb2RlciBpbiB0aGUgRW5jb2RpbmcgU3RhbmRh cmQgb3V0IG9mIGNvbmNlcm4KKyAvLy8gdGhhdCBzZXJ2ZXJzIHRoYXQgZXhwZWN0IEdCSyBmb3Jt IHN1Ym1pc3Npb25zIG1pZ2h0IG5vdCBiZSBhYmxlIHRvIGhhbmRsZQorIC8vLyB0aGUgZm91ci1i eXRlIHNlcXVlbmNlcy4KKyAvLy8KKyAvLy8gW0luZGV4IHZpc3VhbGl6YXRpb24gZm9yIHRoZSB0 d28tYnl0ZSBzZXF1ZW5jZXNdKGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnL2diMTgw MzAuaHRtbCksCisgLy8vIFtWaXN1YWxpemF0aW9uIG9mIEJNUCBjb3ZlcmFnZSBvZiB0aGUgdHdv LWJ5dGUgaW5kZXhdKGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnL2diMTgwMzAtYm1w Lmh0bWwpCitAQCAtMTY1MywyMCArMTY4NiwyMSBAQCBwdWIgc3RhdGljIFVURl84OiAmJ3N0YXRp YyBFbmNvZGluZyA9ICZVCisgLy8vIGl0ZW1zLgorIHB1YiBzdGF0aWMgR0IxODAzMF9JTklUOiBF bmNvZGluZyA9IEVuY29kaW5nIHsKKyAgICAgbmFtZTogImdiMTgwMzAiLAorICAgICB2YXJpYW50 OiBWYXJpYW50RW5jb2Rpbmc6OkdiMTgwMzAsCisgfTsKKyAKKyAvLy8gVGhlIGdiMTgwMzAgZW5j b2RpbmcuCisgLy8vCistLy8vIFRoaXMgZW5jb2RpbmcgbWF0Y2hlcyBHQjE4MDMwLTIwMDUgZXhj ZXB0IHRoZSB0d28tYnl0ZSBzZXF1ZW5jZSAweEEzIDB4QTAKKy0vLy8gbWFwcyB0byBVKzMwMDAg Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBXZWIgY29udGVudC4gQXMgYSByZXN1bHQs CistLy8vIHRoaXMgZW5jb2RpbmcgY2FuIHJlcHJlc2VudCBhbGwgb2YgVW5pY29kZSBleGNlcHQg Zm9yIHRoZSBwcml2YXRlLXVzZQorLS8vLyBjaGFyYWN0ZXIgVStFNUU1LgorKy8vLyBUaGlzIGVu Y29kaW5nIG1hdGNoZXMgR0IxODAzMC0yMDIyIGV4Y2VwdCB0aGUgdHdvLWJ5dGUgc2VxdWVuY2Ug MHhBMyAweEEwCisrLy8vIG1hcHMgdG8gVSszMDAwIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZXhp c3RpbmcgV2ViIGNvbnRlbnQgYW5kIHRoZSBmb3VyLWJ5dGUKKysvLy8gc2VxdWVuY2VzIGZvciB0 aGUgbm9uLVBVQSBjaGFyYWN0ZXJzIHRoYXQgZ290IHR3by1ieXRlIHNlcXVlbmNlcyBzdGlsbCBk ZWNvZGUKKysvLy8gdG8gdGhlIHNhbWUgbm9uLVBVQSBjaGFyYWN0ZXJzIGFzIGluIEdCMTgwMzAt MjAwNS4gQXMgYSByZXN1bHQsIHRoaXMgZW5jb2RpbmcKKysvLy8gY2FuIHJlcHJlc2VudCBhbGwg b2YgVW5pY29kZSBleGNlcHQgZm9yIDE5IHByaXZhdGUtdXNlIGNoYXJhY3RlcnMuCisgLy8vCisg Ly8vIFtJbmRleCB2aXN1YWxpemF0aW9uIGZvciB0aGUgdHdvLWJ5dGUgc2VxdWVuY2VzXShodHRw czovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLmh0bWwpLAorIC8vLyBbVmlzdWFs aXphdGlvbiBvZiBCTVAgY292ZXJhZ2Ugb2YgdGhlIHR3by1ieXRlIGluZGV4XShodHRwczovL2Vu Y29kaW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLWJtcC5odG1sKQorIC8vLworIC8vLyBUaGlz IGVuY29kaW5nIG1hdGNoZXMgdGhlIFdpbmRvd3MgY29kZSBwYWdlIDU0OTM2LgorIC8vLworIC8v LyBUaGlzIHdpbGwgY2hhbmdlIGZyb20gYHN0YXRpY2AgdG8gYGNvbnN0YCBpZiBSdXN0IGNoYW5n ZXMKKyAvLy8gdG8gbWFrZSB0aGUgcmVmZXJlbnQgb2YgYHB1YiBjb25zdCBGT086ICYnc3RhdGlj IEVuY29kaW5nYAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L3Rlc3RfZGF0YS9iaWc1X2luLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L3Rlc3RfZGF0YS9iaWc1X2luLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9pbi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1Bbnkg Y29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRl ZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJs aWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsg c2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNl IGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRl LWVuY29kaW5nLWRhdGEucHkKKyDvv71ACisg77+9QQorIO+/vUIKKyDvv71DCisg77+9RAorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1 X2luX3JlZi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEv YmlnNV9pbl9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90 ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55 IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0 ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVi bGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247 IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFz ZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0 ZS1lbmNvZGluZy1kYXRhLnB5Cisg77+9QAorIO+/vUEKKyDvv71CCisg77+9QworIO+/vUQKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmln NV9vdXQudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2Jp ZzVfb3V0LnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9k YXRhL2JpZzVfb3V0LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv dGVzdF9kYXRhL2JpZzVfb3V0LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQg dG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQor LVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96 ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5T RS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVk aXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2Rpbmct ZGF0YS5weQorIOOAgAorIO+8jAorIOOAgQorIOOAggorIO+8jgorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0IGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfb3V0X3JlZi50 eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1 X291dF9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvYmlnNV9vdXRfcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQg dG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQor LVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96 ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5T RS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVk aXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2Rpbmct ZGF0YS5weQorIO+/vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4 dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19r cl9pbi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9ldWNfa3JfaW4udHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUg dGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGlj IERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4w LworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRX Ry4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJ bnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5 Cisg77+9QQorIO+/vUIKKyDvv71DCisg77+9RAorIO+/vUUKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3JlZi50eHQgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3JlZi50 eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNf a3JfaW5fcmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVz dF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdo dCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhl CistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWlu L3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNF TlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3Qg ZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGlu Zy1kYXRhLnB5Cisg6rCCCisg6rCDCisg6rCFCisg6rCGCisg6rCLCitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQudHh0IGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQudHh0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2ty X291dC50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9ldWNfa3Jfb3V0LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhl IHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1Ymxp YyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEu MC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFU V0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisg SW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5w eQorIOqwggorIOqwgworIOqwhQorIOqwhgorIOqwiworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2ty X291dF9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvZXVjX2tyX291dF9yZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdo dCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhl CistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWlu L3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNF TlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3Qg ZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGlu Zy1kYXRhLnB5Cisg77+9QQorIO+/vUIKKyDvv71DCisg77+9RAorIO+/vUUKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50 eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9p bi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9n YjE4MDMwX2luLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVz dF9kYXRhL2diMTgwMzBfaW4udHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0 byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCist UHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3pl cm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNF LVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRp dC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1k YXRhLnB5Cisg77+9QAorIO+/vUEKKyDvv71CCisg77+9QworIO+/vUQKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYu dHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBf aW5fcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9k YXRhL2diMTgwMzBfaW5fcmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFu eSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNh dGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1 YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29u OyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVh c2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJh dGUtZW5jb2RpbmctZGF0YS5weQorIOS4ggorIOS4hAorIOS4hQorIOS4hgorIOS4jworQEAgLTcx ODAsNDMgKzcxNzksNDMgQEAgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJh dAorIM+BCisgz4MKKyDPhAorIM+FCisgz4YKKyDPhworIM+ICisgz4kKKy3uno0KKy3uno4KKy3u no8KKy3unpAKKy3unpEKKy3unpIKKy3unpMKKyvvuJAKKyvvuJIKKyvvuJEKKyvvuJMKKyvvuJQK KyvvuJUKKyvvuJYKKyDvuLUKKyDvuLYKKyDvuLkKKyDvuLoKKyDvuL8KKyDvuYAKKyDvuL0KKyDv uL4KKyDvuYEKKyDvuYIKKyDvuYMKKyDvuYQKKy3unpQKKy3unpUKKyvvuJcKKyvvuJgKKyDvuLsK KyDvuLwKKyDvuLcKKyDvuLgKKyDvuLEKKy3unpYKKyvvuJkKKyDvuLMKKyDvuLQKKyDunpcKKyDu npgKKyDunpkKKyDunpoKKyDunpsKKyDunpwKK0BAIC0yMzc3Myw4NyArMjM3NzIsODcgQEAgSW5z dGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdAorIO6glgorIO6glworIO6gmAor IOK6hAorIOORsworIOORhworIOK6iAorIOK6iworLe6gngorK+m+tAorIOOWngorIOOYmgorIOOY jgorIOK6jAorIOK6lworIOOlrgorIOOkmAorLe6gpgorK+m+tQorIOOnjworIOOnnworIOOpswor IOOnkAorLe6gqworLe6grAorK+m+tgorK+m+tworIOOtjgorIOOxrgorIOOzoAorIOK6pworIO6g sQorLe6gsgorK+m+uAorIOK6qgorIOSBlgorIOSFnworIOK6rgorIOSMtworIOK6sworIOK6tgor IOK6tworIO6guworIOSOsQorIOSOrAorIOK6uworIOSPnQorIOSTlgorIOSZoQorIOSZjAorLe6h gworK+m+uQorIOScoworIOScqQorIOSdvAorIOSejQorIOK7igorIOSlhworIOSlugorIOSlvQor IOSmggorIOSmgworIOSmhQorIOSmhgorIOSmnworIOSmmworIOSmtworIOSmtgorLe6hlAorK+m+ ugorIO6hlQorIOSyoworIOSynworIOSyoAorIOSyoQorIOSxtworIOSyogorIOS0kworIOS0lAor IOS0lQorIOS0lgorIOS0lworIOS0mAorIOS0mQorIOS2rgorLe6hpAorK+m+uworIO6RqAorIO6R qQorIO6RqgorIO6RqworIO6RrAorIO6RrQorIO6RrgorIO6RrworZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dC50eHQgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXQudHh0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAz MF9vdXQudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2Rh dGEvZ2IxODAzMF9vdXQudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0 aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVi bGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8v MS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdI QVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4K KyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRh LnB5Cisg5LiCCisg5LiECisg5LiFCisg5LiGCisg5LiPCitAQCAtNzE3OSw0MyArNzE3OCw0MyBA QCBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0Cisgz4EKKyDPgworIM+E Cisgz4UKKyDPhgorIM+HCisgz4gKKyDPiQorLe6ejQorLe6ejgorLe6ejworLe6ekAorLe6ekQor Le6ekgorLe6ekworK++4kAorK++4kgorK++4kQorK++4kworK++4lAorK++4lQorK++4lgorIO+4 tQorIO+4tgorIO+4uQorIO+4ugorIO+4vworIO+5gAorIO+4vQorIO+4vgorIO+5gQorIO+5ggor IO+5gworIO+5hAorLe6elAorLe6elQorK++4lworK++4mAorIO+4uworIO+4vAorIO+4tworIO+4 uAorIO+4sQorLe6elgorK++4mQorIO+4sworIO+4tAorIO6elworIO6emAorIO6emQorIO6emgor IO6emworIO6enAorQEAgLTIzNzcyLDg3ICsyMzc3MSw4NyBAQCBJbnN0ZWFkLCBwbGVhc2UgcmVn ZW5lcmF0ZSB1c2luZyBnZW5lcmF0Cisg7qCWCisg7qCXCisg7qCYCisg4rqECisg45GzCisg45GH Cisg4rqICisg4rqLCist7qCeCisr6b60Cisg45aeCisg45iaCisg45iOCisg4rqMCisg4rqXCisg 46WuCisg46SYCist7qCmCisr6b61Cisg46ePCisg46efCisg46mzCisg46eQCist7qCrCist7qCs Cisr6b62Cisr6b63Cisg462OCisg47GuCisg47OgCisg4rqnCisg7qCxCist7qCyCisr6b64Cisg 4rqqCisg5IGWCisg5IWfCisg4rquCisg5Iy3Cisg4rqzCisg4rq2Cisg4rq3Cisg7qC7Cisg5I6x Cisg5I6sCisg4rq7Cisg5I+dCisg5JOWCisg5JmhCisg5JmMCist7qGDCisr6b65Cisg5JyjCisg 5JypCisg5J28Cisg5J6NCisg4ruKCisg5KWHCisg5KW6Cisg5KW9Cisg5KaCCisg5KaDCisg5KaF Cisg5KaGCisg5KafCisg5KabCisg5Ka3Cisg5Ka2Cist7qGUCisr6b66Cisg7qGVCisg5LKjCisg 5LKfCisg5LKgCisg5LKhCisg5LG3Cisg5LKiCisg5LSTCisg5LSUCisg5LSVCisg5LSWCisg5LSX Cisg5LSYCisg5LSZCisg5LauCist7qGkCisr6b67Cisg7pGoCisg7pGpCisg7pGqCisg7pGrCisg 7pGsCisg7pGtCisg7pGuCisg7pGvCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQgYi90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4dAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3Jl Zi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9n YjE4MDMwX291dF9yZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0 aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVi bGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8v MS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdI QVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4K KyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRh LnB5Cisg77+9QAorIO+/vUEKKyDvv71CCisg77+9QworIO+/vUQKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0 IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pw X2luLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2lzb18yMDIyX2pwX2luLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9z cmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBj b3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVk IHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1Ymxp Y2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBz ZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2Ug ZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUt ZW5jb2RpbmctZGF0YS5weQorIBskQiEhGyhCCisgGyRCISIbKEIKKyAbJEIhIxsoQgorIBskQiEk GyhCCisgGyRCISUbKEIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5f cmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2lzb18yMDIyX2pwX2luX3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0 IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUK Ky1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4v emVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VO U0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBl ZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5n LWRhdGEucHkKKyDjgIAKKyDjgIEKKyDjgIIKKyDvvIwKKyDvvI4KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4 dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9q cF9vdXQudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2Rh dGEvaXNvXzIwMjJfanBfb3V0LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1B bnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGlj YXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9w dWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNv bjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxl YXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVy YXRlLWVuY29kaW5nLWRhdGEucHkKKyDjgIAKKyDjgIEKKyDjgIIKKyDvvIwKKyDvvI4KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIw MjJfanBfb3V0X3JlZi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvaXNvXzIwMjJfanBfb3V0X3JlZi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9y ZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2Rl IGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4g aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVy YXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBU aGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBw bGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5CisgGyRCISEb KEIKKyAbJEIhIhsoQgorIBskQiEjGyhCCisgGyRCISQbKEIKKyAbJEIhJRsoQgorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2lu LnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4 X2luLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2ppczAyMDhfaW4udHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90 ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0 IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUK Ky1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4v emVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VO U0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBl ZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5n LWRhdGEucHkKKyDvv73vv70KKyDvv73vv70KKyDvv73vv70KKyDvv73vv70KKyDvv73vv70KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlz MDIwOF9pbl9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9k YXRhL2ppczAyMDhfaW5fcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4dAorQEAgLTEsMTAg KzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1l bnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNv bW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cg aW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRl ZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUg dXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIOOAgAorIOOAgQorIOOAggorIO+8jAor IO+8jgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3Rf ZGF0YS9qaXMwMjA4X291dC50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90 ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0CitAQCAtMSwxMCArMSw5 IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBp cyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9u cy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRl eGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZp bGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2lu ZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg44CACisg44CBCisg44CCCisg77yMCisg77yO CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2ppczAyMDhfb3V0X3JlZi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90 ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0X3JlZi50eHQKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0CitA QCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRo aXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2Ny ZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9t IFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEg Z2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVn ZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg77+977+9Cisg77+977+9 Cisg77+977+9Cisg77+977+9Cisg77+977+9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0IGIvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQKKysr KyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2lu LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBi ZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0 dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0 ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhp cyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxl YXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/ve+/ve+/ vQorIO+/ve+/ve+/vQorIO+/ve+/ve+/vQorIO+/ve+/ve+/vQorIO+/ve+/ve+/vQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjEy X2luX3JlZi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEv amlzMDIxMl9pbl9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0CitAQCAtMSwxMCArMSw5 IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBp cyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9u cy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRl eGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZp bGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2lu ZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg77+9Cisg77+9Cisg77+9Cisg77+9Cisg77+9 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L3NoaWZ0X2ppc19pbi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvc2hpZnRfamlzX2luLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0CitAQCAtMSwxMCArMSw5 IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBp cyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9u cy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRl eGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZp bGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2lu ZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg77+9QAorIO+/vUEKKyDvv71CCisg77+9Qwor IO+/vUQKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVmLnR4dAorKysrIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9y ZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2Rl IGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4g aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVy YXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBU aGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBw bGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg44CACisg 44CBCisg44CCCisg77yMCisg77yOCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0IGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dC50eHQK KysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9q aXNfb3V0LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3Qg Y29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21h aW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytH ZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisg CisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVh ZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIOOA gAorIOOAgQorIOOAggorIO+8jAorIO+8jgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQgYi90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRf amlzX291dF9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90 ZXN0X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNv cHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQg dG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGlj ZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNl ZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBk byBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1l bmNvZGluZy1kYXRhLnB5Cisg77+9QAorIO+/vUEKKyDvv71CCisg77+9QworIO+/vUQKCmRpZmYg LS1naXQgYS9zZWFtb25rZXktMi41My4yNC1tb3ppbGxhLTE4ODIyMDkucGF0Y2ggYi9zZWFtb25r ZXktMi41My4yNC1tb3ppbGxhLTE4ODIyMDkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uOTBjMTk3OAotLS0gL2Rldi9udWxsCisrKyBiL3NlYW1vbmtleS0yLjUzLjI0 LW1vemlsbGEtMTg4MjIwOS5wYXRjaApAQCAtMCwwICsxLDI1Mzg0IEBACisjIEhHIGNoYW5nZXNl dCBwYXRjaAorIyBVc2VyIEhlbnJpIFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPgorIyBE YXRlIDE3MTQ0NjIxODQgMAorIyBOb2RlIElEIDFkYjJlZjEyNmE2YTg1NTVkYmY1MDM0NWUxNjQ5 MmM5NzdiNDJlOTIKKyMgUGFyZW50ICA3ODdkOWNkMDYyNDEyYTQyNjQ5YThjNjE2MTliOTVhYjIw NGFiNTcxCitCdWcgMTg4MjIwOSAtIFVwZGF0ZSBlbmNvZGluZ19ycyB0byAwLjguMzQgdG8gZGVh bCB3aXRoIHJ1c3RjIGNoYW5nZXMuIHI9Z2xhbmRpdW0sc3VwcGx5LWNoYWluLXJldmlld2Vycwor CitEaWZmZXJlbnRpYWwgUmV2aXNpb246IGh0dHBzOi8vcGhhYnJpY2F0b3Iuc2VydmljZXMubW96 aWxsYS5jb20vRDIwNzE2NworCitkaWZmIC0tZ2l0IGEvLmNhcmdvL2NvbmZpZy5pbiBiLy5jYXJn by9jb25maWcuaW4KKy0tLSBhLy5jYXJnby9jb25maWcuaW4KKysrKyBiLy5jYXJnby9jb25maWcu aW4KK0BAIC0yLDE1ICsyLDE1IEBACisgcmVnaXN0cnkgPSAnaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgnCisgcmVwbGFjZS13aXRoID0gJ3ZlbmRvcmVkLXNvdXJj ZXMnCisgCisgW3NvdXJjZS4iaHR0cHM6Ly9naXRodWIuY29tL3NlcnZvL3NlcmRlIl0KKyBnaXQg PSAiaHR0cHM6Ly9naXRodWIuY29tL3NlcnZvL3NlcmRlIgorIGJyYW5jaCA9ICJkZXNlcmlhbGl6 ZV9mcm9tX2VudW1zOCIKKyByZXBsYWNlLXdpdGggPSAidmVuZG9yZWQtc291cmNlcyIKKyAKKy1b c291cmNlLiJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2VkX3NpbWQiXQorLWdpdCA9 ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2VkX3NpbWQiCisrW3NvdXJjZS4iZ2l0 K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91bmQ/cmV2PTdmYjFi NzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiXQorK2dpdCA9ICJodHRwczovL2dp dGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5kIgorK3JldiA9ICI3ZmIxYjcwMzRj OWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIgorIHJlcGxhY2Utd2l0aCA9ICJ2ZW5kb3Jl ZC1zb3VyY2VzIgorLXJldiA9ICJlNTg4Y2ViNTY4ODc4ZTFhMzE1NmVhOWNlNTUxZDViNjNlZjBj ZGM0IgorIAorIFtzb3VyY2UudmVuZG9yZWQtc291cmNlc10KKyBkaXJlY3RvcnkgPSAnQHRvcF9z cmNkaXJAL3RoaXJkX3BhcnR5L3J1c3QnCitkaWZmIC0tZ2l0IGEvQ2FyZ28ubG9jayBiL0Nhcmdv LmxvY2sKKy0tLSBhL0NhcmdvLmxvY2sKKysrKyBiL0NhcmdvLmxvY2sKK0BAIC0xNiwxNiArMTYs MjUgQEAgbmFtZSA9ICJhbnNpX3Rlcm0iCisgdmVyc2lvbiA9ICIwLjExLjAiCisgc291cmNlID0g InJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4Igor IGNoZWNrc3VtID0gImVlNDliYWY2Y2I2MTdiODUzYWE4ZDkzYmY0MjBkYjIzODNmYWI0NmQzMTQ0 ODJjYTI4MDNiNDBkNWZkZTk3OWIiCisgZGVwZW5kZW5jaWVzID0gWworICAid2luYXBpIDAuMy43 IiwKKyBdCisgCisgW1twYWNrYWdlXV0KKytuYW1lID0gImFueV9hbGxfd29ya2Fyb3VuZCIKKyt2 ZXJzaW9uID0gIjAuMS4wIgorK3NvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL2hzaXZv bmVuL2FueV9hbGxfd29ya2Fyb3VuZD9yZXY9N2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRl OGQ4YTQ4YWY4MCM3ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIgorK2Rl cGVuZGVuY2llcyA9IFsKKysgImNmZy1pZiAxLjAuMCIsCisrICJ2ZXJzaW9uX2NoZWNrIiwKKytd CisrCisrW1twYWNrYWdlXV0KKyBuYW1lID0gImFwcF91bml0cyIKKyB2ZXJzaW9uID0gIjAuNy4w IgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRl cy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICI5ZGFkYzY2ODM5MGIzNzNlNzNlNGFiYmZjMWYwNzIz OGIwOWEyNTg1OGYyZjM5YzA2Y2ViYzZkOGUxNDFkNzc0IgorIGRlcGVuZGVuY2llcyA9IFsKKyAg Im51bS10cmFpdHMiLAorICAic2VyZGUiLAorIF0KK0BAIC02MDUsMjIgKzYxNCwyMiBAQCB2ZXJz aW9uID0gIjAuMS4wIgorIGRlcGVuZGVuY2llcyA9IFsKKyAgImVuY29kaW5nX3JzIiwKKyAgIm5z ZXJyb3IiLAorICAibnNzdHJpbmciLAorIF0KKyAKKyBbW3BhY2thZ2VdXQorIG5hbWUgPSAiZW5j b2RpbmdfcnMiCistdmVyc2lvbiA9ICIwLjguMzMiCisrdmVyc2lvbiA9ICIwLjguMzQiCisgc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgorLWNoZWNrc3VtID0gIjcyNjhiMzg2Mjk2YTAyNWU0NzRkNTE0MDY3OGY3NWQ2ZGU5NDkz YWU1NWE1ZDcwOWVlYjlkZDA4MTQ5OTQ1ZTEiCisrY2hlY2tzdW0gPSAiYjQ1ZGU5MDRhYTBiMDEw YmNlMmFiNDUyNjRkMDYzMTY4MTg0N2ZhN2I2ZjJlYWE3ZGFiNzYxOTk0M2JjNGY1OSIKKyBkZXBl bmRlbmNpZXMgPSBbCisrICJhbnlfYWxsX3dvcmthcm91bmQiLAorICAiY2ZnLWlmIDEuMC4wIiwK Ky0gInBhY2tlZF9zaW1kIiwKKyBdCisgCisgW1twYWNrYWdlXV0KKyBuYW1lID0gImVudl9sb2dn ZXIiCisgdmVyc2lvbiA9ICIwLjUuMTMiCisgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorIGNoZWNrc3VtID0gIjE1YjBhNGQy ZTM5Zjg0MjAyMTBiZThiMjdlZWRhMjgwMjk3MjllMmZkNDI5MTAxOTQ1NTAxNmMzNDgyNDBjMzgi CisgZGVwZW5kZW5jaWVzID0gWworQEAgLTEzMjQsMjUgKzEzMzMsMTYgQEAgbmFtZSA9ICJvd25p bmdfcmVmIgorIHZlcnNpb24gPSAiMC40LjAiCisgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorIGNoZWNrc3VtID0gIjQ5YTRi OGVhMjE3OWU2YTJlMjc0MTFkM2JjYTA5Y2E2ZGQ2MzA4MjFjZjY4OTRjNmM3Yzg0NjdhOGVlN2Vm MTMiCisgZGVwZW5kZW5jaWVzID0gWworICAic3RhYmxlX2RlcmVmX3RyYWl0IiwKKyBdCisgCisg W1twYWNrYWdlXV0KKy1uYW1lID0gInBhY2tlZF9zaW1kIgorLXZlcnNpb24gPSAiMC4zLjkiCist c291cmNlID0gImdpdCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2VkX3NpbWQ/cmV2 PWU1ODhjZWI1Njg4NzhlMWEzMTU2ZWE5Y2U1NTFkNWI2M2VmMGNkYzQjZTU4OGNlYjU2ODg3OGUx YTMxNTZlYTljZTU1MWQ1YjYzZWYwY2RjNCIKKy1kZXBlbmRlbmNpZXMgPSBbCistICJjZmctaWYg MS4wLjAiLAorLSAibnVtLXRyYWl0cyIsCistXQorLQorLVtbcGFja2FnZV1dCisgbmFtZSA9ICJw YXJraW5nX2xvdCIKKyB2ZXJzaW9uID0gIjAuOC4wIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICJm YTc3Njc4MTc3MDFjY2U3MDFkNTU4NWI5YzRkYjNjZGQwMjA4NjM5ODMyMmMxZDdlOGJmNTA5NGE5 NmEyY2U3IgorIGRlcGVuZGVuY2llcyA9IFsKKyAgImxvY2tfYXBpIiwKKyAgInBhcmtpbmdfbG90 X2NvcmUiLAorICAicnVzdGNfdmVyc2lvbiIsCitAQCAtMjM2NiwxNiArMjM2NiwyMiBAQCBjaGVj a3N1bSA9ICIwMjVjZTQwYTAwN2UxOTA3ZTU4ZDViYzFhNTk0CisgCisgW1twYWNrYWdlXV0KKyBu YW1lID0gInZlY19tYXAiCisgdmVyc2lvbiA9ICIwLjguMCIKKyBzb3VyY2UgPSAicmVnaXN0cnkr aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hlY2tzdW0g PSAiODg3YjViNjMxYzJhZDAxNjI4YmJiYWE3ZGQ0Yzg2OWY4MGQzMTg2Njg4ZjhkMGI2ZjU4Nzc0 ZmJlMzI0OTg4YyIKKyAKKyBbW3BhY2thZ2VdXQorK25hbWUgPSAidmVyc2lvbl9jaGVjayIKKyt2 ZXJzaW9uID0gIjAuOS40IgorK3NvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKytjaGVja3N1bSA9ICI0OTg3NGI1MTY3YjY1ZDcx OTNiOGFiYTE1NjdmNWM3ZDkzZDAwMWNhZmMzNDYwMGNlZTAwM2VkYTc4N2U0ODNmIgorKworK1tb cGFja2FnZV1dCisgbmFtZSA9ICJ2b2lkIgorIHZlcnNpb24gPSAiMS4wLjIiCisgc291cmNlID0g InJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4Igor IGNoZWNrc3VtID0gIjZhMDJlNDg4NWVkM2JjMGYyZGU5MGVhNmRkNDVlYmNiYjY2ZGFjZmZlMDM1 NDdmYWRiYjBlZWFlMjc3MDg4N2QiCisgCisgW1twYWNrYWdlXV0KKyBuYW1lID0gIndhbGtkaXIi CisgdmVyc2lvbiA9ICIyLjEuNCIKK2RpZmYgLS1naXQgYS9DYXJnby50b21sIGIvQ2FyZ28udG9t bAorLS0tIGEvQ2FyZ28udG9tbAorKysrIGIvQ2FyZ28udG9tbAorQEAgLTQ4LDkgKzQ4LDkgQEAg b3B0LWxldmVsID0gMgorIHJwYXRoID0gZmFsc2UKKyBkZWJ1Zy1hc3NlcnRpb25zID0gZmFsc2UK KyBwYW5pYyA9ICJhYm9ydCIKKyBjb2RlZ2VuLXVuaXRzID0gMQorIAorIFtwYXRjaC5jcmF0ZXMt aW9dCisgbGlidWRldi1zeXMgPSB7IHBhdGggPSAiZG9tL3dlYmF1dGhuL2xpYnVkZXYtc3lzIiB9 Cisgc2VyZGVfZGVyaXZlID0geyBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL3NlcnZvL3NlcmRl IiwgYnJhbmNoID0gImRlc2VyaWFsaXplX2Zyb21fZW51bXM4IiB9CistcGFja2VkX3NpbWQgPSB7 IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2VkX3NpbWQiLCByZXYgPSAi ZTU4OGNlYjU2ODg3OGUxYTMxNTZlYTljZTU1MWQ1YjYzZWYwY2RjNCIgfQorK2FueV9hbGxfd29y a2Fyb3VuZCA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dv cmthcm91bmQiLCByZXYgPSAiN2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4 MCIgfQorZGlmZiAtLWdpdCBhL2NvbmZpZy9tYWtlZmlsZXMvcnVzdC5tayBiL2NvbmZpZy9tYWtl ZmlsZXMvcnVzdC5taworLS0tIGEvY29uZmlnL21ha2VmaWxlcy9ydXN0Lm1rCisrKysgYi9jb25m aWcvbWFrZWZpbGVzL3J1c3QubWsKK0BAIC02MSwxNyArNjEsMTcgQEAgZW5kaWYKKyBlbmRpZgor IGVuZGlmCisgCisgaWZuZGVmIFJVU1RDX0JPT1RTVFJBUAorIGlmZXEgKCwkKGZpbHRlciAxLjQ3 LiUgMS40OC4lIDEuNDkuJSwkKFJVU1RDX1ZFUlNJT04pKSkKKyAjIFJVU1RDX0JPT1RTVFJBUCA6 PSBna3J1c3Rfc2hhcmVkLHFjbXMgZm9yIGxhdGVyCisgUlVTVENfQk9PVFNUUkFQIDo9IGdrcnVz dF9zaGFyZWQKKyBpZmRlZiBNT1pfUlVTVF9TSU1ECistUlVTVENfQk9PVFNUUkFQIDo9ICQoUlVT VENfQk9PVFNUUkFQKSxlbmNvZGluZ19ycyxwYWNrZWRfc2ltZAorK1JVU1RDX0JPT1RTVFJBUCA6 PSAkKFJVU1RDX0JPT1RTVFJBUCksZW5jb2RpbmdfcnMsYW55X2FsbF93b3JrYXJvdW5kCisgZW5k aWYKKyBleHBvcnQgUlVTVENfQk9PVFNUUkFQCisgZW5kaWYKKyBlbmRpZgorIAorIGlmZGVmIENB UkdPX0lOQ1JFTUVOVEFMCisgZXhwb3J0IENBUkdPX0lOQ1JFTUVOVEFMCisgZW5kaWYKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC8uY2FyZ28tY2hlY2tz dW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kLy5jYXJnby1jaGVj a3N1bS5qc29uCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24KK0BA IC0wLDAgKzEsMSBAQAorK3siZmlsZXMiOnsiQ2FyZ28udG9tbCI6ImY4YzEyNzQ0OWRjOTQzMmQ0 MDRjMjFjOTk4MzNlNDYxN2FiODhhNzk3NDQ1YWYyNDlhN2ZlM2M5ODk5ODVkNmQiLCJMSUNFTlNF LUFQQUNIRSI6ImE2MGVlYTgxNzUxNDUzMTY2OGQ3ZTAwNzY1NzMxNDQ5ZmUxNGQwNTlkMzI0OWUw YmM5M2IzNmRlNDVmNzU5ZjIiLCJMSUNFTlNFLU1JVCI6IjY0ODViOGVkMzEwZDNmMDM0MGJmMWFk MWY0NzY0NTA2OWNlNDA2OWRjYzZiYjQ2YzdkNWM2ZmFmNDFkZTFmZGIiLCJMSUNFTlNFLU1JVC1R Q01TIjoiMzZkODQ3YWU4ODJmNjU3NGViYzcyZjU2YTRmMzU0ZTRmMTA0ZmRlNGE1ODQzNzM0OTY0 ODJlOTdkNTJkMzFiYyIsIlJFQURNRS5tZCI6IjRjNjE3YjhjZWQzYTI3YjdlZGVjZjBlNWU0MWVk NDUxYzA0ZTg4ZGFiNTI5ZTdhMzVmY2NjNGUxNTUxZWZiZDciLCJidWlsZC5ycyI6IjU2YjI5YWI2 ZGEzZTQ5MDc1YmZkMGE3YjY5MDI2N2M4MDE2Mjk4YmYwZDMzMmUyZTY4YmJhZjE5ZGVjYmJmNzEi LCJzcmMvbGliLnJzIjoiNzExODEwNjY5MGI5ZDI1YzVkMGEzZTIwNzlmZWI4M2Q3NmYxZDQzNGQw ZGEzNmI5ZDAzNTE4MDZkMjdjODUwZCJ9LCJwYWNrYWdlIjpudWxsfQorXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmth cm91bmQvQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0Nh cmdvLnRvbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9DYXJnby50b21sCitAQCAtMCwwICsxLDI4 IEBACisrIyBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQgQlkgQ0FSR08KKysj CisrIyBXaGVuIHVwbG9hZGluZyBjcmF0ZXMgdG8gdGhlIHJlZ2lzdHJ5IENhcmdvIHdpbGwgYXV0 b21hdGljYWxseQorKyMgIm5vcm1hbGl6ZSIgQ2FyZ28udG9tbCBmaWxlcyBmb3IgbWF4aW1hbCBj b21wYXRpYmlsaXR5CisrIyB3aXRoIGFsbCB2ZXJzaW9ucyBvZiBDYXJnbyBhbmQgYWxzbyByZXdy aXRlIGBwYXRoYCBkZXBlbmRlbmNpZXMKKysjIHRvIHJlZ2lzdHJ5IChlLmcuLCBjcmF0ZXMuaW8p IGRlcGVuZGVuY2llcy4KKysjCisrIyBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxlIGJlIGF3 YXJlIHRoYXQgdGhlIG9yaWdpbmFsIENhcmdvLnRvbWwKKysjIHdpbGwgbGlrZWx5IGxvb2sgdmVy eSBkaWZmZXJlbnQgKGFuZCBtdWNoIG1vcmUgcmVhc29uYWJsZSkuCisrIyBTZWUgQ2FyZ28udG9t bC5vcmlnIGZvciB0aGUgb3JpZ2luYWwgY29udGVudHMuCisrCisrW3BhY2thZ2VdCisrZWRpdGlv biA9ICIyMDIxIgorK25hbWUgPSAiYW55X2FsbF93b3JrYXJvdW5kIgorK3ZlcnNpb24gPSAiMC4x LjAiCisrYXV0aG9ycyA9IFsiSGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4uZmk+Il0K KytkZXNjcmlwdGlvbiA9ICJXb3JrYXJvdW5kIGZvciBiYWQgTExWTSBjb2RlZ2VuIGZvciBib29s ZWFuIHJlZHVjdGlvbnMgb24gMzItYml0IEFSTSIKKytob21lcGFnZSA9ICJodHRwczovL2RvY3Mu cnMvYW55X2FsbF93b3JrYXJvdW5kLyIKKytkb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5y cy9hbnlfYWxsX3dvcmthcm91bmQvIgorK3JlYWRtZSA9ICJSRUFETUUubWQiCisrbGljZW5zZSA9 ICJNSVQgT1IgQXBhY2hlLTIuMCIKKytyZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9o c2l2b25lbi9hbnlfYWxsX3dvcmthcm91bmQiCisrCisrW2RlcGVuZGVuY2llc10KKytjZmctaWYg PSAiMS4wIgorKworK1tidWlsZC1kZXBlbmRlbmNpZXNdCisrdmVyc2lvbl9jaGVjayA9ICIwLjki CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5T RS1BUEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLUFQ QUNIRQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hFCitAQCAtMCwwICsxLDIw MSBAQAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisrICAg ICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorKyAgICAgICAg ICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKysKKytURVJNUyBB TkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKysK KysxLiBEZWZpbml0aW9ucy4KKysKKysgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorKyAgIGFuZCBkaXN0cmlidXRp b24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50Lgor KworKyAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0 eSBhdXRob3JpemVkIGJ5CisrICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5n IHRoZSBMaWNlbnNlLgorKworKyAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9u IG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKysgICBvdGhlciBlbnRpdGllcyB0aGF0IGNv bnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisrICAgY29udHJv bCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwK KysgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0 byBjYXVzZSB0aGUKKysgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwg d2hldGhlciBieSBjb250cmFjdCBvcgorKyAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAg b2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorKyAgIG91dHN0YW5kaW5nIHNo YXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisrCisr ICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVu dGl0eQorKyAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2Uu CisrCisrICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3Ig bWFraW5nIG1vZGlmaWNhdGlvbnMsCisrICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBz b2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorKyAgIHNvdXJjZSwgYW5kIGNvbmZp Z3VyYXRpb24gZmlsZXMuCisrCisrICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3Jt IHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKysgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xh dGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisrICAgbm90IGxpbWl0ZWQgdG8g Y29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorKyAgIGFuZCBj b252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKysKKysgICAiV29yayIgc2hhbGwgbWVh biB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorKyAgIE9iamVj dCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5 IGEKKysgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQg dG8gdGhlIHdvcmsKKysgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXgg YmVsb3cpLgorKworKyAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3 aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKysgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChv ciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisrICAgZWRpdG9yaWFs IHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0 aW9ucworKyAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRo b3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisrICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZl IFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisrICAgc2VwYXJhYmxl IGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2Vz IG9mLAorKyAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisrCisrICAg IkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRp bmcKKysgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNh dGlvbnMgb3IgYWRkaXRpb25zCisrICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3Mg dGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisrICAgc3VibWl0dGVkIHRvIExpY2Vuc29y IGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorKyAgIG9y IGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9u IGJlaGFsZiBvZgorKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2Yg dGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorKyAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0 cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKysgICB0byB0aGUg TGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRl ZCB0bworKyAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3Vy Y2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisrICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMg dGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKysgICBMaWNlbnNvciBm b3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQK KysgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2Vk IG9yIG90aGVyd2lzZQorKyAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0 IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorKworKyAgICJDb250cmlidXRvciIgc2hh bGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisrICAg b24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGlj ZW5zb3IgYW5kCisrICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsu CisrCisrMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1z IGFuZCBjb25kaXRpb25zIG9mCisrICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhl cmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1 c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisrICAgY29weXJpZ2h0 IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisrICAg cHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3Ry aWJ1dGUgdGhlCisrICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBv ciBPYmplY3QgZm9ybS4KKysKKyszLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0 byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29u dHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisrICAgd29ybGR3aWRl LCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKysg ICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1h a2UsIGhhdmUgbWFkZSwKKysgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5k IG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKysgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBw bGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorKyAgIGJ5IHN1Y2gg Q29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisrICAg Q29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1 dGlvbihzKQorKyAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykg d2FzIHN1Ym1pdHRlZC4gSWYgWW91CisrICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFn YWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKysgICBjcm9zcy1jbGFpbSBvciBjb3VudGVy Y2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisrICAgb3IgYSBDb250 cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QK KysgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50 IGxpY2Vuc2VzCisrICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0 IFdvcmsgc2hhbGwgdGVybWluYXRlCisrICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9u IGlzIGZpbGVkLgorKworKzQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQg ZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisrICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRo ZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisrICAgbW9kaWZpY2F0aW9ucywg YW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKysgICBtZWV0 IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysKKysgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkg b3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorKyAgICAgICBEZXJpdmF0aXZlIFdvcmtz IGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorKworKyAgIChiKSBZb3UgbXVzdCBjYXVzZSBh bnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKysgICAgICAgc3Rh dGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisrCisrICAgKGMpIFlvdSBtdXN0 IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisrICAg ICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJr LCBhbmQKKysgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBv ZiB0aGUgV29yaywKKysgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3Qg cGVydGFpbiB0byBhbnkgcGFydCBvZgorKyAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5k CisrCisrICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFz IHBhcnQgb2YgaXRzCisrICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBX b3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKysgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxl IGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisrICAgICAgIHdpdGhp biBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAor KyAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBh dCBsZWFzdCBvbmUKKysgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5P VElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKysgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZh dGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorKyAgICAgICBkb2N1bWVudGF0 aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKysg ICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3Ms IGlmIGFuZAorKyAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFs bHkgYXBwZWFyLiBUaGUgY29udGVudHMKKysgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBm b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorKyAgICAgICBkbyBub3QgbW9kaWZ5 IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorKyAgICAgICBu b3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25n c2lkZQorKyAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0 aGUgV29yaywgcHJvdmlkZWQKKysgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRp b24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisrICAgICAgIGFzIG1vZGlmeWluZyB0aGUg TGljZW5zZS4KKysKKysgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50 IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKysgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9y IGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisrICAgZm9yIHVzZSwgcmVw cm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorKyAg IGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIg dXNlLAorKyAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhl cndpc2UgY29tcGxpZXMgd2l0aAorKyAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExp Y2Vuc2UuCisrCisrNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4 cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorKyAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9u YWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworKyAgIGJ5IFlvdSB0byB0 aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisr ICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlv bnMuCisrICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwg c3VwZXJzZWRlIG9yIG1vZGlmeQorKyAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5z ZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisrICAgd2l0aCBMaWNlbnNvciByZWdh cmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorKworKzYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5z ZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKysgICBuYW1lcywg dHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5z b3IsCisrICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkg dXNlIGluIGRlc2NyaWJpbmcgdGhlCisrICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1 Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisrCisrNy4gRGlzY2xhaW1lciBv ZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisrICAgYWdy ZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAor KyAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMi IEJBU0lTLAorKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5E LCBlaXRoZXIgZXhwcmVzcyBvcgorKyAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1p dGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisrICAgb2YgVElUTEUsIE5PTi1J TkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorKyAgIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5n IHRoZQorKyAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUg V29yayBhbmQgYXNzdW1lIGFueQorKyAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJj aXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKysKKys4LiBMaW1pdGF0aW9u IG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKysg ICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90 aGVyd2lzZSwKKysgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMg ZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorKyAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8g aW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisrICAgbGlhYmxlIHRvIFlvdSBm b3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorKyAg IGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFy aXNpbmcgYXMgYQorKyAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ug b3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKysgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1p dGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisrICAgd29yayBzdG9wcGFnZSwg Y29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKysgICBvdGhl ciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9y CisrICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2Vz LgorKworKzkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hp bGUgcmVkaXN0cmlidXRpbmcKKysgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJl b2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorKyAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBh Y2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisrICAgb3Igb3RoZXIg bGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMK KysgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91 IG1heSBhY3Qgb25seQorKyAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJl c3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisrICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9y LCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorKyAgIGRlZmVuZCwgYW5kIGhv bGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorKyAgIGluY3Vy cmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSBy ZWFzb24KKysgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlv bmFsIGxpYWJpbGl0eS4KKysKKytFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKKysKKytBUFBF TkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCisrCisr ICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBm b2xsb3dpbmcKKysgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3Nl ZCBieSBicmFja2V0cyAiW10iCisrICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWlu ZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKKysgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRl eHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorKyAgIGNvbW1lbnQgc3lu dGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQorKyAgIGZp bGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBv biB0aGUKKysgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZv ciBlYXNpZXIKKysgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMu CisrCisrQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCisrCisrTGlj ZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNl Iik7CisreW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRo IHRoZSBMaWNlbnNlLgorK1lvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAor KworKwlodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKysKKytVbmxl c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNv ZnR3YXJlCisrZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24g YW4gIkFTIElTIiBCQVNJUywKKytXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBB TlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKytTZWUgdGhlIExpY2Vuc2UgZm9y IHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisrbGltaXRh dGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9h bnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxf d29ya2Fyb3VuZC9MSUNFTlNFLU1JVAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251 bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlU CitAQCAtMCwwICsxLDI1IEBACisrQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBSdXN0IFByb2plY3Qg RGV2ZWxvcGVycworKworK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkKKytwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkCisrZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBk ZWFsIGluIHRoZQorK1NvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo b3V0CisrbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwK KytwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YK Kyt0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2Fy ZQorK2lzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCisrY29u ZGl0aW9uczoKKysKKytUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZQorK3NoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMKKytvZiB0aGUgU29mdHdhcmUuCisrCisrVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YKKytBTlkgS0lORCwgRVhQUkVTUyBPUiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVECisrVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBCisrUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UCisrU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKytDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisrT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUgorK0lOIENPTk5FQ1RJT04gV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorK0RFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNF LU1JVC1RQ01TIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1N SVQtUUNNUworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJk X3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlULVFDTVMKK0BAIC0wLDAg KzEsMjEgQEAKKytxY21zCisrQ29weXJpZ2h0IChDKSAyMDA5LTIwMjQgTW96aWxsYSBDb3Jwb3Jh dGlvbgorK0NvcHlyaWdodCAoQykgMTk5OC0yMDA3IE1hcnRpIE1hcmlhCisrCisrUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIAorK2EgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgCisrdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiAKKyt0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi bGljZW5zZSwgCisrYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIAorK2lzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisrCisrVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk ZWQgaW4gCisrYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdh cmUuCisrCisrVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIAorK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyAKKytUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCAKKytOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIAorK0xJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gCisrT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIAorK1dJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL1JFQURNRS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvYW55 X2FsbF93b3JrYXJvdW5kL1JFQURNRS5tZAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2 L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL1JFQURNRS5t ZAorQEAgLTAsMCArMSwxMyBAQAorKyMgYW55X2FsbF93b3JrYXJvdW5kCisrCisrVGhpcyBpcyBh IHdvcmthcm91bmQgZm9yIGJhZCBjb2RlZ2VuIChbUnVzdCBidWddKGh0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmcvcG9ydGFibGUtc2ltZC9pc3N1ZXMvMTQ2KSwgW0xMVk0gYnVnXShodHRwczov L2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvaXNzdWVzLzUwNDY2KSkgZm9yIHRoZSBgYW55 KClgIGFuZCBgYWxsKClgIHJlZHVjdGlvbnMgZm9yIE5FT04tYmFja2VkIFNJTUQgdmVjdG9ycyBv biAzMi1iaXQgQVJNLiBPbiBvdGhlciBwbGF0Zm9ybXMgdGhlc2UgZGVsZWdhdGUgdG8gYGFueSgp YCBhbmQgYGFsbCgpYCBpbiBgY29yZTo6c2ltZGAuCisrCisrVGhlIHBsYW4gaXMgdG8gYWJhbmRv biB0aGlzIGNyYXRlIG9uY2UgdGhlIExMVk0gYnVnIGlzIGZpeGVkIG9yIGBjb3JlOjpzaW1kYCB3 b3JrcyBhcm91bmQgdGhlIExMVk0gYnVnLgorKworK1RoZSBjb2RlIGlzIGZvcmtlZCBmcm9tIHRo ZSBbYHBhY2tlZF9zaW1kYCBjcmF0ZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29t L2hzaXZvbmVuL3BhY2tlZF9zaW1kL2Q5MzhlMzliZWU5YmM1YzIyMmY1ZjJmMmEwZGY5ZTUzYjVj ZTM2YWUvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycykuCisrCisrVGhpcyBjcmF0 ZSByZXF1aXJlcyBOaWdodGx5IFJ1c3QgYXMgaXQgZGVwZW5kcyBvbiB0aGUgYHBvcnRhYmxlX3Np bWRgIGZlYXR1cmUuCisrCisrIyBMaWNlbnNlCisrCisrYE1JVCBPUiBBcGFjaGUtMi4wYCwgc2lu Y2UgdGhhdCdzIGhvdyBgcGFja2VkX3NpbWRgIGlzIGxpY2Vuc2VkLiAoVGhlIEFSTSBpbnRyaW5z aWNzIFJ1c3QgdmVyc2lvbiB3b3JrYXJvdW5kIGlzIGZyb20gcWNtcywgc2VlIExJQ0VOU0UtTUlU LVFDTVMuKQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5k L2J1aWxkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvYnVpbGQucnMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9y dXN0L2FueV9hbGxfd29ya2Fyb3VuZC9idWlsZC5ycworQEAgLTAsMCArMSw3IEBACisrZXh0ZXJu IGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7CisrCisrZm4gbWFpbigpIHsKKysgICAgaWYg cnVzdGM6OmlzX21pbl92ZXJzaW9uKCIxLjc4LjAiKS51bndyYXBfb3IoZmFsc2UpIHsKKysgICAg ICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9c3Rkc2ltZF9zcGxpdCIpOworKyAgICB9Cisr fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL3NyYy9s aWIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9zcmMvbGliLnJzCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVz dC9hbnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5ycworQEAgLTAsMCArMSwxMTAgQEAKKysvLyBU aGlzIGNvZGUgYmVnYW4gYXMgYSBmb3JrIG9mCisrLy8gaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNv bnRlbnQuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9kOTM4ZTM5YmVlOWJjNWMyMjJmNWYyZjJh MGRmOWU1M2I1Y2UzNmFlL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMKKysvLyB3 aGljaCBkaWRuJ3QgaGF2ZSBhIGxpY2Vuc2UgaGVhZGVyIG9uIHRoZSBmaWxlLCBidXQgQ2FyZ28u dG9tbCBzYWlkICJNSVQgT1IgQXBhY2hlLTIuMCIuCisrLy8gU2VlIExJQ0VOU0UtTUlUIGFuZCBM SUNFTlNFLUFQQUNIRS4KKysKKysjIVtub19zdGRdCisrIyFbZmVhdHVyZShwb3J0YWJsZV9zaW1k KV0KKysjIVtjZmdfYXR0cigKKysgICAgYWxsKAorKyAgICAgICAgc3Rkc2ltZF9zcGxpdCwKKysg ICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCisrICAgICAgICB0YXJnZXRfZW5kaWFuID0gImxp dHRsZSIsCisrICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKKysgICAgICAgIHRhcmdl dF9mZWF0dXJlID0gInY3IgorKyAgICApLAorKyAgICBmZWF0dXJlKHN0ZGFyY2hfYXJtX25lb25f aW50cmluc2ljcykKKyspXQorKyMhW2NmZ19hdHRyKAorKyAgICBhbGwoCisrICAgICAgICBub3Qo c3Rkc2ltZF9zcGxpdCksCisrICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAorKyAgICAgICAg dGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLAorKyAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVv biIsCisrICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIKKysgICAgKSwKKysgICAgZmVhdHVy ZShzdGRzaW1kKQorKyldCisrCisrdXNlIGNmZ19pZjo6Y2ZnX2lmOworK3VzZSBjb3JlOjpzaW1k OjptYXNrMTZ4ODsKKyt1c2UgY29yZTo6c2ltZDo6bWFzazMyeDQ7CisrdXNlIGNvcmU6OnNpbWQ6 Om1hc2s4eDE2OworKworK2NmZ19pZiEgeworKyAgICBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2gg PSAiYXJtIiwgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9u IiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjciKSldIHsKKysgICAgICAgIHVzZSBjb3JlOjpzaW1kOjpt YXNrOHg4OworKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6Om1hc2sxNng0OworKyAgICAgICAgdXNl IGNvcmU6OnNpbWQ6Om1hc2szMngyOworKyAgICAgICAgbWFjcm9fcnVsZXMhIGFybV8xMjhfdjdf bmVvbl9pbXBsIHsKKysgICAgICAgICAgICAoJGFsbDppZGVudCwgJGFueTppZGVudCwgJGlkOmlk ZW50LCAkaGFsZjppZGVudCwgJHZwbWluOmlkZW50LCAkdnBtYXg6aWRlbnQpID0+IHsKKysgICAg ICAgICAgICAgICAgI1tpbmxpbmVdCisrICAgICAgICAgICAgICAgIHB1YiBmbiAkYWxsKHM6ICRp ZCkgLT4gYm9vbCB7CisrICAgICAgICAgICAgICAgICAgICB1c2UgY29yZTo6YXJjaDo6YXJtOjok dnBtaW47CisrICAgICAgICAgICAgICAgICAgICB1c2UgY29yZTo6bWVtOjp0cmFuc211dGU7Cisr ICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworKyAgICAgICAgICAgICAgICAgICAgICAgIHVu aW9uIFUgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaGFsZiwgJGhh bGYpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUg eyB2ZWM6IHMgfS5oYWx2ZXM7CisrICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGg6ICRoYWxm ID0gdHJhbnNtdXRlKCR2cG1pbih0cmFuc211dGUoaGFsdmVzLjApLCB0cmFuc211dGUoaGFsdmVz LjEpKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgaC5hbGwoKQorKyAgICAgICAgICAgICAg ICAgICAgfQorKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICNbaW5saW5lXQor KyAgICAgICAgICAgICAgICBwdWIgZm4gJGFueShzOiAkaWQpIC0+IGJvb2wgeworKyAgICAgICAg ICAgICAgICAgICAgdXNlIGNvcmU6OmFyY2g6OmFybTo6JHZwbWF4OworKyAgICAgICAgICAgICAg ICAgICAgdXNlIGNvcmU6Om1lbTo6dHJhbnNtdXRlOworKyAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKKysgICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmVjOiAkaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzIH0uaGFsdmVzOworKyAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRyYW5zbXV0ZSgkdnBtYXgodHJh bnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkpOworKyAgICAgICAgICAgICAg ICAgICAgICAgIGguYW55KCkKKysgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAg ICAgfQorKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgfSBlbHNlIHsKKysgICAgICAg IG1hY3JvX3J1bGVzISBhcm1fMTI4X3Y3X25lb25faW1wbCB7CisrICAgICAgICAgICAgKCRhbGw6 aWRlbnQsICRhbnk6aWRlbnQsICRpZDppZGVudCwgJGhhbGY6aWRlbnQsICR2cG1pbjppZGVudCwg JHZwbWF4OmlkZW50KSA9PiB7CisrICAgICAgICAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisr ICAgICAgICAgICAgICAgIHB1YiBmbiAkYWxsKHM6ICRpZCkgLT4gYm9vbCB7CisrICAgICAgICAg ICAgICAgICAgICBzLmFsbCgpCisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAg I1tpbmxpbmUoYWx3YXlzKV0KKysgICAgICAgICAgICAgICAgcHViIGZuICRhbnkoczogJGlkKSAt PiBib29sIHsKKysgICAgICAgICAgICAgICAgICAgIHMuYW55KCkKKysgICAgICAgICAgICAgICAg fQorKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgfQorK30KKysKKythcm1fMTI4X3Y3 X25lb25faW1wbCEoCisrICAgIGFsbF9tYXNrOHgxNiwKKysgICAgYW55X21hc2s4eDE2LAorKyAg ICBtYXNrOHgxNiwKKysgICAgbWFzazh4OCwKKysgICAgdnBtaW5fdTgsCisrICAgIHZwbWF4X3U4 CisrKTsKKythcm1fMTI4X3Y3X25lb25faW1wbCEoCisrICAgIGFsbF9tYXNrMTZ4OCwKKysgICAg YW55X21hc2sxNng4LAorKyAgICBtYXNrMTZ4OCwKKysgICAgbWFzazE2eDQsCisrICAgIHZwbWlu X3UxNiwKKysgICAgdnBtYXhfdTE2CisrKTsKKythcm1fMTI4X3Y3X25lb25faW1wbCEoCisrICAg IGFsbF9tYXNrMzJ4NCwKKysgICAgYW55X21hc2szMng0LAorKyAgICBtYXNrMzJ4NCwKKysgICAg bWFzazMyeDIsCisrICAgIHZwbWluX3UzMiwKKysgICAgdnBtYXhfdTMyCisrKTsKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgorKysrIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgorQEAgLTEs MSArMSwxIEBACisteyJmaWxlcyI6eyJDT05UUklCVVRJTkcubWQiOiJjYTE5MDFmM2U4NTMyZmI0 Y2VjODk0ZmQzNjY0ZjBlYWE4OThjMGM0Yjk2MWQxYjk5MmQxZWQ1NGVhY2YzNjJhIiwiQ09QWVJJ R0hUIjoiMTE3ODlmNDViYjE4MDg0MWNkMzYyYTVlZWU2Nzg5YzY4ZGRiNTczYTExMTA1ZTMwNzY4 YzMwOGE2YWRkMDE5MCIsIkNhcmdvLnRvbWwiOiI0MmZhODMzMjJhYTlmZDY3MjNiNzdkMzVkMGNh Y2I5MmNiYjZlN2Y1NzNjZTExYzU1ZjUyMjUyOTI4NjZmOGY0IiwiSWRlYXMubWQiOiJiNzQ1Mjg5 M2Y1MDAxNjM4NjhkOGRlNTJjMDlhZGRhZjkxZTE2MzI0NTRlZDAyZTg5MmM0NjdlZDdlYzM5ZGJk IiwiTElDRU5TRS1BUEFDSEUiOiJjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQw NTNlODQ3YzEwZjNlYjAwMzQxN2JjNTIzZDMwIiwiTElDRU5TRS1NSVQiOiIzZmE0Y2E4M2RjYzky Mzc4MzliMWJkZWIyZTZkMTZiZGZiNWVjMGM1Y2U0MmIyNDY5NGQ4YmJmMGRjYmVmNzJjIiwiTElD RU5TRS1XSEFUV0ciOiI4MzgxMTgzODhmZTVjMmU3ZjFkYmJhZWVkMTNlMWM3ZjNlYmY4OGJlOTEz MTljN2MxZDc3YzE4ZTk4N2QxYTUwIiwiUkVBRE1FLm1kIjoiZDkzOGU4YWIwYjlhYjY3ZTc0YTFh NGY0OGYyM2ZkY2U5NTZkMGFkM2EzZjYxNDdhZTc2MTJhOTI3NjNjODhkNSIsImNpL21pcmkuc2gi OiI0M2NiOGQ4MmY0OWUzYmZlMmQyMjc0YjZjY2Q2ZjA3MTRhNDE4OGNjZWYwY2VjYzA0MDgyOTg4 M2NmZGJlZTI1IiwiZG9jL0JpZzUudHh0IjoiZjczYTJlZGM1Y2I2YzJkMTQwYmE2ZTA3ZjQ1NDJl MWM0YTIzNDk1MDM3OGFjZGUxZGY5MzQ4MGYwY2EwYmUwYiIsImRvYy9FVUMtSlAudHh0IjoiZWUy ODE4YjkwN2QwMTM3ZjQwYTlhYjlmZDUyNWZjNzAwYTQ0ZGJkZGRiNmNmMGMxNTdhNjU2NTY2YmFl NGJmMSIsImRvYy9FVUMtS1IudHh0IjoiNzFkOWUyY2NmM2IxMjRlOGJkZmI0MzNjOGNmMjc3M2Zk ODc4MDc3MDM4ZDBjZWMzYzcyMzdhNTBmNGE3OGEzMCIsImRvYy9HQksudHh0IjoiYzFiNTIyYjVh Nzk5ODg0ZTUwMDFkYTY2MWY0MmM1YThmNGQwYWNiOWVmMWQ3NGIyMDZmMjJiNWY2NTM2NTYwNiIs ImRvYy9JQk04NjYudHh0IjoiYTVhNDMzZTgwNGQwZjgzYWY3ODUwMTUxNzlmYmMxZDliMGVhZjFm Nzk2MGVmY2QwNDA5M2UxMzZiNTFmYmQwZSIsImRvYy9JU08tMjAyMi1KUC50eHQiOiJhZjg2Njg0 ZjVhOGYwZTI4NjhkN2IyYzI5Mjg2MDE0MGMzZDJlNTUyNzUzMGNhMDkxZjFiMjgxOThlOGUyZmU2 IiwiZG9jL0lTTy04ODU5LTEwLnR4dCI6IjZkMzk0OWFkN2M4MWNhMTc2ODk1MTAxZWQ4MWExZGI3 ZGYxMDYwZDY0ZTI2Mjg4MGI5NGJkMzFiYjM0NGFiNGQiLCJkb2MvSVNPLTg4NTktMTMudHh0Ijoi Mzk1MWRkODljZjkzZjc3MjkxNDgwOTE2ODNjZjg1MTFmNDUyOTM4OGI3ZGM4ZGNkMGQ2MmVhZWQ1 NWJlOTNmYSIsImRvYy9JU08tODg1OS0xNC50eHQiOiIzZDMzMDc4NGEwMzc0ZmQyNTVhMzhiNDc5 NDk2NzVjYzcxNjhjODAwNTMwNTM0YjBhMDFjYWM2ZWRjNjIzYWRjIiwiZG9jL0lTTy04ODU5LTE1 LnR4dCI6IjI0YjEwODRhYWI1MTI3YTg1YWFiOTkxNTNmODZlMjQ2OTRkMGEzNjE1ZjUzYjVjZTIz NjgzZjk3Y2Y2NmM0N2EiLCJkb2MvSVNPLTg4NTktMTYudHh0IjoiY2UwMjcyNTU5YjkyYmE3NmQ3 YTdlNDc2ZjY0MjRhZTRhNWNjNzJlNzViMTgzNjExYjA4MzkyZTQ0YWRkNGQyNSIsImRvYy9JU08t ODg1OS0yLnR4dCI6IjE4Y2VmZjg4YzEzZDFiNWJhNDU1YTM5MTliMWUzZGU0ODkwNDVjNGMzZDJk ZDdlODUyN2MxMjVjNzVkNTRhYWQiLCJkb2MvSVNPLTg4NTktMy50eHQiOiIyMTc5ODQwNGM2OGY0 ZjVkYjU5MjIzMzYyZjI0OTk5ZGE5Njk2OGMwNjI4NDI3MzIxZmNjY2U3ZDI4NDlhMTMwIiwiZG9j L0lTTy04ODU5LTQudHh0IjoiZDI3ZjY1MjBjNmM1YmZiY2MxOTE3NmI3MWQwODFjZGIzYmNjZGUx NjIyYmIzZTQyMGQ1NjgwZTgxMjYzMmQ1MyIsImRvYy9JU08tODg1OS01LnR4dCI6ImExMGVjOGQ2 ZWE3YTc4YWQxNWRhNzI3NWY2Y2IxYTMzNjUxMTg1MjdlMjhmOWFmNmQwZDU4MzA1MDEzMDNmM2Ei LCJkb2MvSVNPLTg4NTktNi50eHQiOiJjY2RhOGEyZWZjOTYxMTUzMzZiZGQ3Nzc3NjYzN2I5NzEy NDI1ZTQ0ZmJjZjc0NTM1M2I5MDU3ZmJlZjE0NGU3IiwiZG9jL0lTTy04ODU5LTcudHh0IjoiMTc5 MDBmYTFmMjdhNDQ1OTU4ZjBhNzdkN2Q5MDU2YmUzNzVhNmJkN2VlNDQ5MmFhNjgwYzdjMTUwMGJh Yjg1ZSIsImRvYy9JU08tODg1OS04LUkudHh0IjoiODM1NzU1NTY0NmQ1NDI2NWE5YjlmZmEzZTY4 YjA4ZDEzMjMxMmYxNTYxYzYwMTA4ZmY5YjhiMTE2N2I2ZWNmMiIsImRvYy9JU08tODg1OS04LnR4 dCI6IjcyY2Q2ZjNhZmI3YjRhOWMxNmE2NmEzNjI0NzMzMTU3NzBiNzc1NWQ3MmM4NmM4NzBlNTJm YzNlYmE4NmM4YWYiLCJkb2MvS09JOC1SLnR4dCI6IjgzOWNmMTlhMzhkYTk5NDQ4ODAwNGVkNzgx NGIxZjYxNTE2NDAxNTZhOWEyYWYwMmJmMmVmY2E3NDVmYjU5NjYiLCJkb2MvS09JOC1VLnR4dCI6 IjBjYzc2NjI0ZWQxZjAyNDE4M2UyMjk4YjdlMDE5OTU3ZGEyYzcwYzhjYTA2ZTBmYzRlNmYzNTNm NTBhNTA1NGYiLCJkb2MvU2hpZnRfSklTLnR4dCI6IjM0YzQ5MTQxODE4Y2I5ZGRiY2Y1OWNjODU4 Zjc4YTc5YmU4YWQxNDhkNTYzZjI2NDE1MTA4YWUxZjE0ODQ0M2YiLCJkb2MvVVRGLTE2QkUudHh0 IjoiZTJlMjgwZDhhY2JhYTZkMmE2YjM1NjlkNjBlMTc1MDBhMjg1ZjJiYWEwZGYzMzYzZGQ4NTUz N2NkNWExZWY4ZiIsImRvYy9VVEYtMTZMRS50eHQiOiI3MGJkYzE3MGUzZmM1Mjk4YmE2OGYxMDEy NWZiNWVlYjhiMDc3MDM2Y2M5NmJiNDQxNmM0ZGUzOTZmNmQ3NmMxIiwiZG9jL1VURi04LnR4dCI6 ImVhN2JhZTc0MmU2MTMwMTBjZWQwMDJjZjRiNjAxYTczN2QyMjAzZmFkNjVlMTE1NjExNDUxYmM0 NDI4ZjU0OGEiLCJkb2MvZ2IxODAzMC50eHQiOiJkYzcxMzc4YThmMDdhMmQ4NjU5ZjY5ZWU4MWZi ODc5MWZlZjU2YmE4NmYxMjRiNDI5OTc4Mjg1MjM3YmI0YTdiIiwiZG9jL21hY2ludG9zaC50eHQi OiI1NzQ5MWU1Mzg2NjcxMWI0NjcyZDliOWZmMzUzODBiOWRhYzllMGQ4ZTNkNmMyMGJkZDYxNDA2 MDM2ODdjMDIzIiwiZG9jL3JlcGxhY2VtZW50LnR4dCI6IjRiNmMzYmJkNzk5OWQ5ZDQxMDhhMjgx NTk0YmQwMmQxMzYwN2UzMzRhOTU0NjVhZmZmOGMyYzA4ZDM5NWYwZTQiLCJkb2Mvd2luZG93cy0x MjUwLnR4dCI6IjYxMjk2YmI2YTIxY2RhYjYwMjMwMGQzMmVjZmJhNDM0Y2I4MmRlNWFjM2JjODhk NTg3MTBkMmYxMjVlMjhkMzkiLCJkb2Mvd2luZG93cy0xMjUxLnR4dCI6IjdkZWVhMWM2MWRlYTE0 ODVjOGZmMDJkYjJjN2Q1NzhkYjdhOWFhYjYzYWIxY2ZkMDJlYzA0YjUxNTg2NDY4OWUiLCJkb2Mv d2luZG93cy0xMjUyLnR4dCI6IjkzM2VmM2JkZGRmY2U1ZWUxMzJiOWYxYTFhYThiNDc0MjNkMjU4 N2JiZTQ3NWIxOTAyOGQwYTZkMzhlMTgwYjYiLCJkb2Mvd2luZG93cy0xMjUzLnR4dCI6IjFhMzg3 NDhiODhlOTkwNzFhNWM3YjNkNTQ1NmVhZDRjYWVkZWFiYWI1MGQ1MGQ2NThiZTEwNWJjMTEzNzE0 ZGUiLCJkb2Mvd2luZG93cy0xMjU0LnR4dCI6ImY4MzcyZjg2YzZmOGQ2NDI1NjNjZDZkZGMwMjUy NjA1NTMyOTJhMzk0MjNkZjE2ODNhOTg2NzBiZDdiZjJiNDciLCJkb2Mvd2luZG93cy0xMjU1LnR4 dCI6IjRlNTg1MjQ5NDczMDA1NGUyZGEyNThhNzRlMWI5ZDc4MGFiYmNkZDhjZTIyZWJjMjE4Y2Ey ZWZlOWU5MDQ5M2QiLCJkb2Mvd2luZG93cy0xMjU2LnR4dCI6ImMwODc5YzUxNzJhYmVkZWFkMzAy YTQwNmU4ZjYwZDljZDk1OTg2OTRhMGZmYTRmZDI4OGZmZTRmZWY3YjhlYTEiLCJkb2Mvd2luZG93 cy0xMjU3LnR4dCI6ImMyOGEwYzlmOTY0ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2NTAxYTI4MDA2NzA0 ODFkNmFiZjlmZDllOTAxOGQ1MjMiLCJkb2Mvd2luZG93cy0xMjU4LnR4dCI6IjUwMTlhZTRkNjE4 MDVjNzlhYWNiZjE3YzkzNzkzMzQyZGJiMDk4ZDY1YTE4Mzc3ODNiYzNlMmM2ZDZhMjM2MDIiLCJk b2Mvd2luZG93cy04NzQudHh0IjoiNGVmMGU0NTAxYzVmZWJhOGIxN2FlZTE4MTg2MDJlZDQ0YjM2 Y2E4NDc1ZGI3NzFjZTJmYzE2ZDM5MmNhYmVjYyIsImRvYy94LW1hYy1jeXJpbGxpYy50eHQiOiI1 OGJlMTU0ZDhhODg4Y2EzZDQ4NGI4M2I0NGY3NDk4MjNlZjMzOWFiMjdmMTRkOTBjYTlhODU2ZjUw NTBhOGJkIiwiZG9jL3gtdXNlci1kZWZpbmVkLnR4dCI6ImY5Y2QwN2M0MzIxYmY1Y2ZiMGJlNGJk ZGRkMjUxMDcyOTk5YjA0YTZjZjdhNmY1YmM2MzcwOWE4NGUyYzFmZmMiLCJnZW5lcmF0ZS1lbmNv ZGluZy1kYXRhLnB5IjoiYmU5ODlkZDI1YzZiOTQ2ZTNlODc0NWZkYzhlOGE4MGZjZjI0YjNiZTk5 YWQwYjRiNzgxNTNiYTNmNmFiNjMxMCIsInJ1c3RmbXQudG9tbCI6Ijg1YzFhM2I0MzgyZmQ4OWU5 OTFjYmI4MWI3MGZiNTI3ODA0NzJlZGMwNjRjOTYzOTQzY2RhYWE1NmUwYTIwMzAiLCJzcmMvYXNj aWkucnMiOiJjNDRjMDAyNjQxYWRiNWViYzQzNjg3MDdhOGNjMGEwNzZkMmYzM2U2YTVjMjdiMWI2 OTk4OGViNTE1ZjU2NTNkIiwic3JjL2JpZzUucnMiOiJlYzZlMjkxMzAxMWEzOGU5YTNlODI1YTE3 MzFmMTM5YTdjYTFkNWIyNjRmZWZhZTUxYTNjYzFhNjhhNTdjZWY5Iiwic3JjL2RhdGEucnMiOiI4 YTYxN2NjNTcwMzIwOTJkNjU4NTBlYjI3ZTAwZGU2ODdjODBhZWEzMjk5ZTgzOWExZjU4YjQyZDBi MzVhYmYzIiwic3JjL2V1Y19qcC5ycyI6IjMyMDQ3ZjViNTQwMTg4YzRjYjE5YzA3MTY1Zjg0NmI5 Nzg2YTA5ZjE4ZTMxNWVkM2U5YmRhMTI5M2RhZTUyYWEiLCJzcmMvZXVjX2tyLnJzIjoiOWIyNWFm YzcyZDkzNzg3MDBlZWNmYWM1OGQ1NWFkMWM1OTQ2ZDZjZDBjY2RlMmMyOWMwODIwMGVmMmRlNmJi OSIsInNyYy9nYjE4MDMwLnJzIjoiODA4NTg3MTY4ZDczZjBjODBmODUyMGYwY2E5YjE2MTg2NmVk MmVmZWIxN2EwNWU4NWZkZjNiOGVmZTdiYTI4YSIsInNyYy9oYW5kbGVzLnJzIjoiY2M4M2RjMDc1 NDc1MWQ2N2Y1Njg4YTY1YzVlMDE5MWNiYTAyZjZiYWNjZTgxYTA4MTNhMjQzY2JhNTVlZWY3YSIs InNyYy9pc29fMjAyMl9qcC5ycyI6IjliYjQ4NWU4MjU3NGY0YjdkNGIyMzY0ZjBmZjI3NmFjYjZh MGJjMTExNzU4NDIwYTNiMGVjNWUwNGMxOTY2NTIiLCJzcmMvbGliLnJzIjoiMWRjMDdiODE4ZTQ1 ODQ2YjE2ZGRjYWYwZGU0NmM4ODYyZGQ3ZGY4MDk5MTIzZWMzOGI5NWMzZjhhZDljOTFlYyIsInNy Yy9tYWNyb3MucnMiOiIyMDA5OTdmODg3MGRlOGJmZDhjZGM0NzVlOTIxMTVkZjQyMTA4YzBkZjY2 MWU0OWQzZDFjYmMzMjA1NmUxZDk5Iiwic3JjL21lbS5ycyI6IjBiZjM0MTAzZTBhZDFiODQyYTEz YTA4MmRlZTJiOTIwYjA1Y2Y0ZmIwZjE0NWM5ZWU3ZjYwOGY0Y2I0YTU0NGYiLCJzcmMvcmVwbGFj ZW1lbnQucnMiOiI3NjYwYjM0YTUzZjhjMWNhMmJkZmEwZTUxZTg0M2VjMjgzMjY5NTA5NTJhZDhi Yzk2NTY5ZmViOTNhYzYyMzA4Iiwic3JjL3NoaWZ0X2ppcy5ycyI6IjY5NTFhZTY3ZTM2YjFhMTJm YTNhMzA3MzQ5NTdmNDQ0ZDhiMWI0YWUwZTJiZGU1MjA2MGIyOWJkMGYxNmQ5ZDkiLCJzcmMvc2lt ZF9mdW5jcy5ycyI6IjI2MTJhYmE4NmUxZDIwMTA5NmQ3ZTQ3YTg1OWJjMzQ0NGY4NTkzNGNjODJk OGFkYzZkMzlhNDMwNGQ5ZWVjZmMiLCJzcmMvc2luZ2xlX2J5dGUucnMiOiIzYzllOWMxZjk0NmFl NjIyYzcyNWJhOTQyMTI0MGMxZmFhOWEwNWU5NWZhMTBkZDQ2NDJhMjVjYjI3NmExZWRjIiwic3Jj L3Rlc3RfZGF0YS9iaWc1X2luLnR4dCI6IjRjNWE4NjkxZjhkYzcxNzMxMTg4OWM2Mzg5NDAyNmQy ZmI2MjcyNWE4NmM0MjA4Y2EyNzRhOWNjOGQ0MmE1MDMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW5f cmVmLnR4dCI6Ijk5ZDM5OWUxNzc1MGNmOWM3Y2YzMGJiMjUzZGJmZTM1YjgxYzRmY2JkZWFkOTNj ZmE0OGIxNDI5MjEzNDczYzciLCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0LnR4dCI6IjYxOTNjYTk3 YzI5N2FhMjBlMDkzOTYwMzhkMThlOTM4YmI3ZWEzMzFjMjZmMGYyNDU0MDk3Mjk2NzIzYTBiMTMi LCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0X3JlZi50eHQiOiIzNjU2NzY5MWY1NTdkZjE0NGY2Y2M1 MjAwMTVhODcwMzhkZmExNTZmMjk2ZmNmMTAzYjU2YWU5YTcxOGJlMWZjIiwic3JjL3Rlc3RfZGF0 YS9ldWNfa3JfaW4udHh0IjoiYzg2YTcyMjRmMzIxNWZhMGQwNGU2ODU2MjJhNzUyZmRjNzI3NjNl OGFlMDc2MjMwYzdmZDYyZGU1N2VjNDA3NCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3JlZi50 eHQiOiIxZjQxOWY0Y2E0N2Q3MDhiNTRjNzNjNDYxNTQ1YTAyMmFlMmUyMDQ5OGZkYmY4MDA1YTQ4 M2Q3NTJhMjA0ODgzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0LnR4dCI6ImU3ZjMyZTAyNmY3 MGJlMWUxYjU4ZTAwNDdiYWY3ZDNkMmM1MjAyNjljNGY5Yjk5OTJlMTU4YjRkZWNiMGExYTMiLCJz cmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dCI6ImM5OTA3ODU3OTgwYjIwYjhlOWUzYjU4 NDQ4MmVkNjU2N2EyYmU2MTg1ZDcyMjM3YjYzMjJmMDQwNDk0NDkyNGUiLCJzcmMvdGVzdF9kYXRh L2diMTgwMzBfaW4udHh0IjoiYWI3MjMxYjJkM2U5YWZhY2RiZDdkN2YzYjllNTM2MWE3ZmY5Zjdl MWNmZGI0ZjNiZDkwNWI5MzYyYjMwOWU1MyIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYu dHh0IjoiZGM1MDY5NDIxYWRjYTIwNDNjNTVmNTAxMmI1NWE3NmZkZmY2NTFkMjJlNmU2OTlmZDA5 NzhmOGQ1NzA2ODE1YyIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXQudHh0IjoiZjAyMDhkNTI3 ZjVjYTYzZGU3ZDlhMDMyM2JlOGQ1Y2YxMmQ4YTEwNGIyOTQzZDkyYzI3MDFmMGMzMzY0ZGFjMSIs InNyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4dCI6IjY4MTlmZTQ3NjI3ZTRlYTAxMDI3 MDAzZmM1MTRiOWYyMWExMzIyZTczMmQ3ZjFmYjkyY2M2YzU0NTViYzZjMDciLCJzcmMvdGVzdF9k YXRhL2lzb18yMDIyX2pwX2luLnR4dCI6ImNkMjRiYmRjYjE4MzRlMjVkYjU0NjQ2ZmJmNGM0MTU2 MGExM2RjNzU0MGY2YmUzZGJhNGY1ZDk3ZDQ0NTEzYWYiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIy X2pwX2luX3JlZi50eHQiOiIzZGM0ZTZhNWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2 ZjNmNDdlNDM3MTdlNGJjMmVhYzJjZGY1Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXQu dHh0IjoiOWI2ZjAxNTMyOWRkYTZjM2Y5ZWU1Y2U2ZGJkNmZhOWM4OWFjYzIxMjgzZTg4NjgzNmM3 OGI4ZDgzMzQ4MGMyMSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0X3JlZi50eHQiOiI3 OGNiMjYwMDkzYTIwMTE2YWQ5YTQyZjQzYjA1ZDE4NDhjNWFiMTAwYjZiOWE4NTA3NDk4MDllOTQz ODg0YjM1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luLnR4dCI6IjZkZjMwMzA1NTNmZmIwYTY2 MTViYjMzZGM4ZWE5ZGNhNmQ5NjIzYTkwMjhlMmZmZWM3NTRjZTNjM2RhODI0Y2MiLCJzcmMvdGVz dF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4NmIxNmM5NDQw OTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9kYXRhL2ppczAy MDhfb3V0LnR4dCI6IjRlYzI0NDc3ZTE2NzVjZTc1MDczM2JkYzNjNWFkZDFjZDI3YjZiZDRjZTFm MDkyODk1NjQ2NDZlOTY1NGU4NTciLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0X3JlZi50eHQi OiJjM2UxY2VmNTAzMmIyYjFkOTNhNDA2ZjMxZmY5NDBjNGUyZGZlODg1OWI4YjE3Y2EyNzYxZmVl N2E3NWEwZTQ4Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4dCI6ImMwMTFmMGRkNzJiZDdj OGNkOTIyZGY5Mzc0ZWY4ZDI3NjlhNzcxOTA1MTRjNzdmNmM2MmI0MTU4NTJlZWI5ZmUiLCJzcmMv dGVzdF9kYXRhL2ppczAyMTJfaW5fcmVmLnR4dCI6IjdkOTQ1OGIzZDJmNzNlNzA5MmE3ZjUwNWMw OGNlMWQyMzNkZGUxOGFhNjc5ZmJjZjk4ODkyNTYyMzljYzllMDYiLCJzcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19pbi50eHQiOiIwMmUzODljY2VmMGRkMjEyMmU2M2Y1MDM4OTk0MDJjYjdmNzk3OTEy YzI0NDRjYzgwYWI5MzEzMTExNmM1NTI0Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVm LnR4dCI6IjUxMmY5ODU5NTBjYTkwMmU2NDNjODg2ODJkYmE5NzA4YjdjMzhkM2M1ZWMyOTI1MTY4 YWIwMGFjOTRhYjE5ZjkiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0IjoiNWZiYzQ0 ZGE3YmY2MzliZjZjZmUwZmExZmQzZWJhNzEwMmI4OGY4MTkxOWM5ZWE5OTEzMDI3MTJmNjk0MjZm YiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0IjoiNDY2MzIyYzZmZWQ4Mjg2 YzY0NTgyNzMxNzU1MjkwYzIyOTY1MDhlZmRkMjU4ODI2ZTYyNzk2ODY2NDliNDgxZiIsInNyYy90 ZXN0X2xhYmVsc19uYW1lcy5ycyI6IjIzYTJlMTFiMDJiM2I4ZDE1ZmI1NjEzYTYyNWUzZWRiMmM2 MWU3MGUzYzU4MWFiZmQ2Mzg3MTlhNDA4ODIwMGQiLCJzcmMvdGVzdGluZy5ycyI6ImY1OWU2NzFl OTVhOThhNTZmNmI1NzNlOGM2YmU0ZDcxZTY3MGJmNTJmN2UyMGViMTYwNWQ5OTBhYWZhMTg5NGUi LCJzcmMvdXRmXzE2LnJzIjoiYzA3MWExNDdmYWQzOGQ3NTBjMmMyNDdlMTQxYjc2YjkyOWE0ODAw N2I5OWYyNmIyOTIyYjljYWVjZGFmMmYyNSIsInNyYy91dGZfOC5ycyI6IjdiN2Q4ODdiMzQ3ZjFh ZWZhMDMyNDZiMDI4YTM2YTcyNzU4YTRjZTc2YzI4ZjNiNDVjMTk0Njc4NTFhYTc4MzkiLCJzcmMv dmFyaWFudC5ycyI6IjFmYWI1MzYzNTg4YTE1NTRhNzE2OWRlODczMWVhOWNkZWQ3YWM2M2VhMzVj YWFiZGQxYzI3YThkZGU2OGMyN2IiLCJzcmMveF91c2VyX2RlZmluZWQucnMiOiJjOWMwMTA3MzBk ZmI5ZjE0MWQ0ZmVkMTkzNTBjMDhhMjFhZjI0MDkxM2E1NGJiNjRmNWNhODlmZjkzYjZiN2QxIn0s InBhY2thZ2UiOiI3MjY4YjM4NjI5NmEwMjVlNDc0ZDUxNDA2NzhmNzVkNmRlOTQ5M2FlNTVhNWQ3 MDllZWI5ZGQwODE0OTk0NWUxIn0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorK3siZmls ZXMiOnsiQ09OVFJJQlVUSU5HLm1kIjoiY2ExOTAxZjNlODUzMmZiNGNlYzg5NGZkMzY2NGYwZWFh ODk4YzBjNGI5NjFkMWI5OTJkMWVkNTRlYWNmMzYyYSIsIkNPUFlSSUdIVCI6IjExNzg5ZjQ1YmIx ODA4NDFjZDM2MmE1ZWVlNjc4OWM2OGRkYjU3M2ExMTEwNWUzMDc2OGMzMDhhNmFkZDAxOTAiLCJD YXJnby50b21sIjoiMjJhNGQyMTBjOTJkYWU5ZjMyYzY5NDRlZjM0MGVlOGZkZDAyN2Y5OWMwODE1 NzdlODkwNzEyM2UyYTkzMzgzZSIsIklkZWFzLm1kIjoiYjc0NTI4OTNmNTAwMTYzODY4ZDhkZTUy YzA5YWRkYWY5MWUxNjMyNDU0ZWQwMmU4OTJjNDY3ZWQ3ZWMzOWRiZCIsIkxJQ0VOU0UtQVBBQ0hF IjoiY2ZjNzc0OWI5NmY2M2JkMzFjM2M0MmI1YzQ3MWJmNzU2ODE0MDUzZTg0N2MxMGYzZWIwMDM0 MTdiYzUyM2QzMCIsIkxJQ0VOU0UtTUlUIjoiM2ZhNGNhODNkY2M5MjM3ODM5YjFiZGViMmU2ZDE2 YmRmYjVlYzBjNWNlNDJiMjQ2OTRkOGJiZjBkY2JlZjcyYyIsIkxJQ0VOU0UtV0hBVFdHIjoiODM4 MTE4Mzg4ZmU1YzJlN2YxZGJiYWVlZDEzZTFjN2YzZWJmODhiZTkxMzE5YzdjMWQ3N2MxOGU5ODdk MWE1MCIsIlJFQURNRS5tZCI6IjFkMDhhZWZjYjkyYWZhODFiMTgxNTQwNDljOWFiYmNhZDQ1NDBh MjNmNzE3MmU5ZjliYmVkNWFmMzNmMWEwODciLCJjaS9taXJpLnNoIjoiNDNjYjhkODJmNDllM2Jm ZTJkMjI3NGI2Y2NkNmYwNzE0YTQxODhjY2VmMGNlY2MwNDA4Mjk4ODNjZmRiZWUyNSIsImRvYy9C aWc1LnR4dCI6ImY3M2EyZWRjNWNiNmMyZDE0MGJhNmUwN2Y0NTQyZTFjNGEyMzQ5NTAzNzhhY2Rl MWRmOTM0ODBmMGNhMGJlMGIiLCJkb2MvRVVDLUpQLnR4dCI6ImVlMjgxOGI5MDdkMDEzN2Y0MGE5 YWI5ZmQ1MjVmYzcwMGE0NGRiZGRkYjZjZjBjMTU3YTY1NjU2NmJhZTRiZjEiLCJkb2MvRVVDLUtS LnR4dCI6IjcxZDllMmNjZjNiMTI0ZThiZGZiNDMzYzhjZjI3NzNmZDg3ODA3NzAzOGQwY2VjM2M3 MjM3YTUwZjRhNzhhMzAiLCJkb2MvR0JLLnR4dCI6ImMxYjUyMmI1YTc5OTg4NGU1MDAxZGE2NjFm NDJjNWE4ZjRkMGFjYjllZjFkNzRiMjA2ZjIyYjVmNjUzNjU2MDYiLCJkb2MvSUJNODY2LnR4dCI6 ImE1YTQzM2U4MDRkMGY4M2FmNzg1MDE1MTc5ZmJjMWQ5YjBlYWYxZjc5NjBlZmNkMDQwOTNlMTM2 YjUxZmJkMGUiLCJkb2MvSVNPLTIwMjItSlAudHh0IjoiYWY4NjY4NGY1YThmMGUyODY4ZDdiMmMy OTI4NjAxNDBjM2QyZTU1Mjc1MzBjYTA5MWYxYjI4MTk4ZThlMmZlNiIsImRvYy9JU08tODg1OS0x MC50eHQiOiI2ZDM5NDlhZDdjODFjYTE3Njg5NTEwMWVkODFhMWRiN2RmMTA2MGQ2NGUyNjI4ODBi OTRiZDMxYmIzNDRhYjRkIiwiZG9jL0lTTy04ODU5LTEzLnR4dCI6IjM5NTFkZDg5Y2Y5M2Y3NzI5 MTQ4MDkxNjgzY2Y4NTExZjQ1MjkzODhiN2RjOGRjZDBkNjJlYWVkNTViZTkzZmEiLCJkb2MvSVNP LTg4NTktMTQudHh0IjoiM2QzMzA3ODRhMDM3NGZkMjU1YTM4YjQ3OTQ5Njc1Y2M3MTY4YzgwMDUz MDUzNGIwYTAxY2FjNmVkYzYyM2FkYyIsImRvYy9JU08tODg1OS0xNS50eHQiOiIyNGIxMDg0YWFi NTEyN2E4NWFhYjk5MTUzZjg2ZTI0Njk0ZDBhMzYxNWY1M2I1Y2UyMzY4M2Y5N2NmNjZjNDdhIiwi ZG9jL0lTTy04ODU5LTE2LnR4dCI6ImNlMDI3MjU1OWI5MmJhNzZkN2E3ZTQ3NmY2NDI0YWU0YTVj YzcyZTc1YjE4MzYxMWIwODM5MmU0NGFkZDRkMjUiLCJkb2MvSVNPLTg4NTktMi50eHQiOiIxOGNl ZmY4OGMxM2QxYjViYTQ1NWEzOTE5YjFlM2RlNDg5MDQ1YzRjM2QyZGQ3ZTg1MjdjMTI1Yzc1ZDU0 YWFkIiwiZG9jL0lTTy04ODU5LTMudHh0IjoiMjE3OTg0MDRjNjhmNGY1ZGI1OTIyMzM2MmYyNDk5 OWRhOTY5NjhjMDYyODQyNzMyMWZjY2NlN2QyODQ5YTEzMCIsImRvYy9JU08tODg1OS00LnR4dCI6 ImQyN2Y2NTIwYzZjNWJmYmNjMTkxNzZiNzFkMDgxY2RiM2JjY2RlMTYyMmJiM2U0MjBkNTY4MGU4 MTI2MzJkNTMiLCJkb2MvSVNPLTg4NTktNS50eHQiOiJhMTBlYzhkNmVhN2E3OGFkMTVkYTcyNzVm NmNiMWEzMzY1MTE4NTI3ZTI4ZjlhZjZkMGQ1ODMwNTAxMzAzZjNhIiwiZG9jL0lTTy04ODU5LTYu dHh0IjoiY2NkYThhMmVmYzk2MTE1MzM2YmRkNzc3NzY2MzdiOTcxMjQyNWU0NGZiY2Y3NDUzNTNi OTA1N2ZiZWYxNDRlNyIsImRvYy9JU08tODg1OS03LnR4dCI6IjE3OTAwZmExZjI3YTQ0NTk1OGYw YTc3ZDdkOTA1NmJlMzc1YTZiZDdlZTQ0OTJhYTY4MGM3YzE1MDBiYWI4NWUiLCJkb2MvSVNPLTg4 NTktOC1JLnR4dCI6IjgzNTc1NTU2NDZkNTQyNjVhOWI5ZmZhM2U2OGIwOGQxMzIzMTJmMTU2MWM2 MDEwOGZmOWI4YjExNjdiNmVjZjIiLCJkb2MvSVNPLTg4NTktOC50eHQiOiI3MmNkNmYzYWZiN2I0 YTljMTZhNjZhMzYyNDczMzE1NzcwYjc3NTVkNzJjODZjODcwZTUyZmMzZWJhODZjOGFmIiwiZG9j L0tPSTgtUi50eHQiOiI4MzljZjE5YTM4ZGE5OTQ0ODgwMDRlZDc4MTRiMWY2MTUxNjQwMTU2YTlh MmFmMDJiZjJlZmNhNzQ1ZmI1OTY2IiwiZG9jL0tPSTgtVS50eHQiOiIwY2M3NjYyNGVkMWYwMjQx ODNlMjI5OGI3ZTAxOTk1N2RhMmM3MGM4Y2EwNmUwZmM0ZTZmMzUzZjUwYTUwNTRmIiwiZG9jL1No aWZ0X0pJUy50eHQiOiIzNGM0OTE0MTgxOGNiOWRkYmNmNTljYzg1OGY3OGE3OWJlOGFkMTQ4ZDU2 M2YyNjQxNTEwOGFlMWYxNDg0NDNmIiwiZG9jL1VURi0xNkJFLnR4dCI6ImUyZTI4MGQ4YWNiYWE2 ZDJhNmIzNTY5ZDYwZTE3NTAwYTI4NWYyYmFhMGRmMzM2M2RkODU1MzdjZDVhMWVmOGYiLCJkb2Mv VVRGLTE2TEUudHh0IjoiNzBiZGMxNzBlM2ZjNTI5OGJhNjhmMTAxMjVmYjVlZWI4YjA3NzAzNmNj OTZiYjQ0MTZjNGRlMzk2ZjZkNzZjMSIsImRvYy9VVEYtOC50eHQiOiJlYTdiYWU3NDJlNjEzMDEw Y2VkMDAyY2Y0YjYwMWE3MzdkMjIwM2ZhZDY1ZTExNTYxMTQ1MWJjNDQyOGY1NDhhIiwiZG9jL2di MTgwMzAudHh0IjoiZGM3MTM3OGE4ZjA3YTJkODY1OWY2OWVlODFmYjg3OTFmZWY1NmJhODZmMTI0 YjQyOTk3ODI4NTIzN2JiNGE3YiIsImRvYy9tYWNpbnRvc2gudHh0IjoiNTc0OTFlNTM4NjY3MTFi NDY3MmQ5YjlmZjM1MzgwYjlkYWM5ZTBkOGUzZDZjMjBiZGQ2MTQwNjAzNjg3YzAyMyIsImRvYy9y ZXBsYWNlbWVudC50eHQiOiI0YjZjM2JiZDc5OTlkOWQ0MTA4YTI4MTU5NGJkMDJkMTM2MDdlMzM0 YTk1NDY1YWZmZjhjMmMwOGQzOTVmMGU0IiwiZG9jL3dpbmRvd3MtMTI1MC50eHQiOiI2MTI5NmJi NmEyMWNkYWI2MDIzMDBkMzJlY2ZiYTQzNGNiODJkZTVhYzNiYzg4ZDU4NzEwZDJmMTI1ZTI4ZDM5 IiwiZG9jL3dpbmRvd3MtMTI1MS50eHQiOiI3ZGVlYTFjNjFkZWExNDg1YzhmZjAyZGIyYzdkNTc4 ZGI3YTlhYWI2M2FiMWNmZDAyZWMwNGI1MTU4NjQ2ODllIiwiZG9jL3dpbmRvd3MtMTI1Mi50eHQi OiI5MzNlZjNiZGRkZmNlNWVlMTMyYjlmMWExYWE4YjQ3NDIzZDI1ODdiYmU0NzViMTkwMjhkMGE2 ZDM4ZTE4MGI2IiwiZG9jL3dpbmRvd3MtMTI1My50eHQiOiIxYTM4NzQ4Yjg4ZTk5MDcxYTVjN2Iz ZDU0NTZlYWQ0Y2FlZGVhYmFiNTBkNTBkNjU4YmUxMDViYzExMzcxNGRlIiwiZG9jL3dpbmRvd3Mt MTI1NC50eHQiOiJmODM3MmY4NmM2ZjhkNjQyNTYzY2Q2ZGRjMDI1MjYwNTUzMjkyYTM5NDIzZGYx NjgzYTk4NjcwYmQ3YmYyYjQ3IiwiZG9jL3dpbmRvd3MtMTI1NS50eHQiOiI0ZTU4NTI0OTQ3MzAw NTRlMmRhMjU4YTc0ZTFiOWQ3ODBhYmJjZGQ4Y2UyMmViYzIxOGNhMmVmZTllOTA0OTNkIiwiZG9j L3dpbmRvd3MtMTI1Ni50eHQiOiJjMDg3OWM1MTcyYWJlZGVhZDMwMmE0MDZlOGY2MGQ5Y2Q5NTk4 Njk0YTBmZmE0ZmQyODhmZmU0ZmVmN2I4ZWExIiwiZG9jL3dpbmRvd3MtMTI1Ny50eHQiOiJjMjhh MGM5Zjk2NGZjYjJiNDZkMjFmNTM3YzQwMjQ0NjUwMWEyODAwNjcwNDgxZDZhYmY5ZmQ5ZTkwMThk NTIzIiwiZG9jL3dpbmRvd3MtMTI1OC50eHQiOiI1MDE5YWU0ZDYxODA1Yzc5YWFjYmYxN2M5Mzc5 MzM0MmRiYjA5OGQ2NWExODM3NzgzYmMzZTJjNmQ2YTIzNjAyIiwiZG9jL3dpbmRvd3MtODc0LnR4 dCI6IjRlZjBlNDUwMWM1ZmViYThiMTdhZWUxODE4NjAyZWQ0NGIzNmNhODQ3NWRiNzcxY2UyZmMx NmQzOTJjYWJlY2MiLCJkb2MveC1tYWMtY3lyaWxsaWMudHh0IjoiNThiZTE1NGQ4YTg4OGNhM2Q0 ODRiODNiNDRmNzQ5ODIzZWYzMzlhYjI3ZjE0ZDkwY2E5YTg1NmY1MDUwYThiZCIsImRvYy94LXVz ZXItZGVmaW5lZC50eHQiOiJmOWNkMDdjNDMyMWJmNWNmYjBiZTRiZGRkZDI1MTA3Mjk5OWIwNGE2 Y2Y3YTZmNWJjNjM3MDlhODRlMmMxZmZjIiwiZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weSI6ImJl OTg5ZGQyNWM2Yjk0NmUzZTg3NDVmZGM4ZThhODBmY2YyNGIzYmU5OWFkMGI0Yjc4MTUzYmEzZjZh YjYzMTAiLCJydXN0Zm10LnRvbWwiOiI4NWMxYTNiNDM4MmZkODllOTkxY2JiODFiNzBmYjUyNzgw NDcyZWRjMDY0Yzk2Mzk0M2NkYWFhNTZlMGEyMDMwIiwic3JjL2FzY2lpLnJzIjoiNTg4ZTM4YjAx ZTY2NmQ1ZTc0NjI2MTdlYTdlOTBhMTA4ZDYwOGRlYzllMDE2ZjNkMjczYWMwNzQ0YWYyZTA1ZCIs InNyYy9iaWc1LnJzIjoiZWM2ZTI5MTMwMTFhMzhlOWEzZTgyNWExNzMxZjEzOWE3Y2ExZDViMjY0 ZmVmYWU1MWEzY2MxYTY4YTU3Y2VmOSIsInNyYy9kYXRhLnJzIjoiOGE2MTdjYzU3MDMyMDkyZDY1 ODUwZWIyN2UwMGRlNjg3YzgwYWVhMzI5OWU4MzlhMWY1OGI0MmQwYjM1YWJmMyIsInNyYy9ldWNf anAucnMiOiIzMjA0N2Y1YjU0MDE4OGM0Y2IxOWMwNzE2NWY4NDZiOTc4NmEwOWYxOGUzMTVlZDNl OWJkYTEyOTNkYWU1MmFhIiwic3JjL2V1Y19rci5ycyI6IjliMjVhZmM3MmQ5Mzc4NzAwZWVjZmFj NThkNTVhZDFjNTk0NmQ2Y2QwY2NkZTJjMjljMDgyMDBlZjJkZTZiYjkiLCJzcmMvZ2IxODAzMC5y cyI6IjgwODU4NzE2OGQ3M2YwYzgwZjg1MjBmMGNhOWIxNjE4NjZlZDJlZmViMTdhMDVlODVmZGYz YjhlZmU3YmEyOGEiLCJzcmMvaGFuZGxlcy5ycyI6ImIwOGNlZjFmNTc4NWJiNmE0ODIyZjJlODQ0 YzZkZjFiMDQ2YjczN2I3YTA3NWU0NTkzZWFhOGM0MjA4ZTlmZTIiLCJzcmMvaXNvXzIwMjJfanAu cnMiOiI5YmI0ODVlODI1NzRmNGI3ZDRiMjM2NGYwZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBl YzVlMDRjMTk2NjUyIiwic3JjL2xpYi5ycyI6IjgzNGY0NGI2NzBlYzQ4ZWU4MmMwZTEyMjIzZDE1 NjczMTNmZGQ5Zjg4YmNhNWY0YjExN2M4MmMxODI4ZjU1OWYiLCJzcmMvbWFjcm9zLnJzIjoiMjAw OTk3Zjg4NzBkZThiZmQ4Y2RjNDc1ZTkyMTE1ZGY0MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZl MWQ5OSIsInNyYy9tZW0ucnMiOiI5NDg1NzExMzdkM2IxNTFkZjhkYjRmYjJjNzMzZTc0YWU1OTVk MDU1Y2RmMGFkODNhYmNhYjkzNDFkNmFkYWJlIiwic3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIz NGE1M2Y4YzFjYTJiZGZhMGU1MWU4NDNlYzI4MzI2OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMw OCIsInNyYy9zaGlmdF9qaXMucnMiOiI2OTUxYWU2N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4 YjFiNGFlMGUyYmRlNTIwNjBiMjliZDBmMTZkOWQ5Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIwNWM2 ZTc3YWY3NGJmZTczY2QzOWE3NTIwNjdjMTE0MjVkNmI0NmU1ZGE0MTk5MTBmNTRiZjc1YTVjMDJh OTg0Iiwic3JjL3NpbmdsZV9ieXRlLnJzIjoiM2FkODcxMTZmYjMzOTQzNGE0YjU4ZThmMmIxNTQ4 NWYyYjY2YjlmNzgxNGQ3MDhmMTYxOTRlZDA4ZjZkNmNjZiIsInNyYy90ZXN0X2RhdGEvYmlnNV9p bi50eHQiOiI0YzVhODY5MWY4ZGM3MTczMTE4ODljNjM4OTQwMjZkMmZiNjI3MjVhODZjNDIwOGNh Mjc0YTljYzhkNDJhNTAzIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luX3JlZi50eHQiOiI5OWQzOTll MTc3NTBjZjljN2NmMzBiYjI1M2RiZmUzNWI4MWM0ZmNiZGVhZDkzY2ZhNDhiMTQyOTIxMzQ3M2M3 Iiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQiOiI2MTkzY2E5N2MyOTdhYTIwZTA5Mzk2MDM4 ZDE4ZTkzOGJiN2VhMzMxYzI2ZjBmMjQ1NDA5NzI5NjcyM2EwYjEzIiwic3JjL3Rlc3RfZGF0YS9i aWc1X291dF9yZWYudHh0IjoiMzY1Njc2OTFmNTU3ZGYxNDRmNmNjNTIwMDE1YTg3MDM4ZGZhMTU2 ZjI5NmZjZjEwM2I1NmFlOWE3MThiZTFmYyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6 ImM4NmE3MjI0ZjMyMTVmYTBkMDRlNjg1NjIyYTc1MmZkYzcyNzYzZThhZTA3NjIzMGM3ZmQ2MmRl NTdlYzQwNzQiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IjoiMWY0MTlmNGNhNDdk NzA4YjU0YzczYzQ2MTU0NWEwMjJhZTJlMjA0OThmZGJmODAwNWE0ODNkNzUyYTIwNDg4MyIsInNy Yy90ZXN0X2RhdGEvZXVjX2tyX291dC50eHQiOiJlN2YzMmUwMjZmNzBiZTFlMWI1OGUwMDQ3YmFm N2QzZDJjNTIwMjY5YzRmOWI5OTkyZTE1OGI0ZGVjYjBhMWEzIiwic3JjL3Rlc3RfZGF0YS9ldWNf a3Jfb3V0X3JlZi50eHQiOiJjOTkwNzg1Nzk4MGIyMGI4ZTllM2I1ODQ0ODJlZDY1NjdhMmJlNjE4 NWQ3MjIzN2I2MzIyZjA0MDQ5NDQ5MjRlIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6 ImFiNzIzMWIyZDNlOWFmYWNkYmQ3ZDdmM2I5ZTUzNjFhN2ZmOWY3ZTFjZmRiNGYzYmQ5MDViOTM2 MmIzMDllNTMiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCI6ImRjNTA2OTQyMWFk Y2EyMDQzYzU1ZjUwMTJiNTVhNzZmZGZmNjUxZDIyZTZlNjk5ZmQwOTc4ZjhkNTcwNjgxNWMiLCJz cmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dCI6ImYwMjA4ZDUyN2Y1Y2E2M2RlN2Q5YTAzMjNi ZThkNWNmMTJkOGExMDRiMjk0M2Q5MmMyNzAxZjBjMzM2NGRhYzEiLCJzcmMvdGVzdF9kYXRhL2di MTgwMzBfb3V0X3JlZi50eHQiOiI2ODE5ZmU0NzYyN2U0ZWEwMTAyNzAwM2ZjNTE0YjlmMjFhMTMy MmU3MzJkN2YxZmI5MmNjNmM1NDU1YmM2YzA3Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9p bi50eHQiOiJjZDI0YmJkY2IxODM0ZTI1ZGI1NDY0NmZiZjRjNDE1NjBhMTNkYzc1NDBmNmJlM2Ri YTRmNWQ5N2Q0NDUxM2FmIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0Ijoi M2RjNGU2YTVlMDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJl YWMyY2RmNSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dCI6IjliNmYwMTUzMjlk ZGE2YzNmOWVlNWNlNmRiZDZmYTljODlhY2MyMTI4M2U4ODY4MzZjNzhiOGQ4MzM0ODBjMjEiLCJz cmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9yZWYudHh0IjoiNzhjYjI2MDA5M2EyMDExNmFk OWE0MmY0M2IwNWQxODQ4YzVhYjEwMGI2YjlhODUwNzQ5ODA5ZTk0Mzg4NGIzNSIsInNyYy90ZXN0 X2RhdGEvamlzMDIwOF9pbi50eHQiOiI2ZGYzMDMwNTUzZmZiMGE2NjE1YmIzM2RjOGVhOWRjYTZk OTYyM2E5MDI4ZTJmZmVjNzU0Y2UzYzNkYTgyNGNjIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2lu X3JlZi50eHQiOiIzZGM0ZTZhNWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2ZjNmNDdl NDM3MTdlNGJjMmVhYzJjZGY1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQiOiI0ZWMy NDQ3N2UxNjc1Y2U3NTA3MzNiZGMzYzVhZGQxY2QyN2I2YmQ0Y2UxZjA5Mjg5NTY0NjQ2ZTk2NTRl ODU3Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0IjoiYzNlMWNlZjUwMzJiMmIx ZDkzYTQwNmYzMWZmOTQwYzRlMmRmZTg4NTliOGIxN2NhMjc2MWZlZTdhNzVhMGU0OCIsInNyYy90 ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQiOiJjMDExZjBkZDcyYmQ3YzhjZDkyMmRmOTM3NGVmOGQy NzY5YTc3MTkwNTE0Yzc3ZjZjNjJiNDE1ODUyZWViOWZlIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEy X2luX3JlZi50eHQiOiI3ZDk0NThiM2QyZjczZTcwOTJhN2Y1MDVjMDhjZTFkMjMzZGRlMThhYTY3 OWZiY2Y5ODg5MjU2MjM5Y2M5ZTA2Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0Ijoi MDJlMzg5Y2NlZjBkZDIxMjJlNjNmNTAzODk5NDAyY2I3Zjc5NzkxMmMyNDQ0Y2M4MGFiOTMxMzEx MTZjNTUyNCIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQiOiI1MTJmOTg1OTUw Y2E5MDJlNjQzYzg4NjgyZGJhOTcwOGI3YzM4ZDNjNWVjMjkyNTE2OGFiMDBhYzk0YWIxOWY5Iiwi c3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dCI6IjVmYmM0NGRhN2JmNjM5YmY2Y2ZlMGZh MWZkM2ViYTcxMDJiODhmODE5MTljOWVhOTkxMzAyNzEyZjY5NDI2ZmIiLCJzcmMvdGVzdF9kYXRh L3NoaWZ0X2ppc19vdXRfcmVmLnR4dCI6IjQ2NjMyMmM2ZmVkODI4NmM2NDU4MjczMTc1NTI5MGMy Mjk2NTA4ZWZkZDI1ODgyNmU2Mjc5Njg2NjQ5YjQ4MWYiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMu cnMiOiIyM2EyZTExYjAyYjNiOGQxNWZiNTYxM2E2MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4 NzE5YTQwODgyMDBkIiwic3JjL3Rlc3RpbmcucnMiOiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThj NmJlNGQ3MWU2NzBiZjUyZjdlMjBlYjE2MDVkOTkwYWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6 ImMwNzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3ZTE0MWI3NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2Fl Y2RhZjJmMjUiLCJzcmMvdXRmXzgucnMiOiI3YjdkODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3 Mjc1OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3ODUxYWE3ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFi NTM2MzU4OGExNTU0YTcxNjlkZTg3MzFlYTljZGVkN2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhj MjdiIiwic3JjL3hfdXNlcl9kZWZpbmVkLnJzIjoiOTQ1NmNhNDYxNjhlZjg2Yzk4Mzk5YTI1MzZm NTc3ZWY3YmUzY2RkZTkwYzBjNTEzOTJkOGFjNDg1MTlkM2ZhZSJ9LCJwYWNrYWdlIjoiYjQ1ZGU5 MDRhYTBiMDEwYmNlMmFiNDUyNjRkMDYzMTY4MTg0N2ZhN2I2ZjJlYWE3ZGFiNzYxOTk0M2JjNGY1 OSJ9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL0NhcmdvLnRvbWwKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28u dG9tbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCitAQCAt NiwxOCArNiwxOSBAQAorICMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5pbykgZGVwZW5kZW5j aWVzLgorICMKKyAjIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdhcmUgdGhhdCB0 aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAorICMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5IGRpZmZlcmVu dCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KKyAjIFNlZSBDYXJnby50b21sLm9yaWcgZm9y IHRoZSBvcmlnaW5hbCBjb250ZW50cy4KKyAKKyBbcGFja2FnZV0KKyBlZGl0aW9uID0gIjIwMTgi CisrcnVzdC12ZXJzaW9uID0gIjEuMzYiCisgbmFtZSA9ICJlbmNvZGluZ19ycyIKKy12ZXJzaW9u ID0gIjAuOC4zMyIKKyt2ZXJzaW9uID0gIjAuOC4zNCIKKyBhdXRob3JzID0gWyJIZW5yaSBTaXZv bmVuIDxoc2l2b25lbkBoc2l2b25lbi5maT4iXQorIGRlc2NyaXB0aW9uID0gIkEgR2Vja28tb3Jp ZW50ZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIEVuY29kaW5nIFN0YW5kYXJkIgorIGhvbWVwYWdl ID0gImh0dHBzOi8vZG9jcy5ycy9lbmNvZGluZ19ycy8iCisgZG9jdW1lbnRhdGlvbiA9ICJodHRw czovL2RvY3MucnMvZW5jb2RpbmdfcnMvIgorIHJlYWRtZSA9ICJSRUFETUUubWQiCisga2V5d29y ZHMgPSBbCisgICAgICJlbmNvZGluZyIsCisgICAgICJ3ZWIiLAorQEAgLTMxLDIzICszMiwyMyBA QCBjYXRlZ29yaWVzID0gWworICAgICAiaW50ZXJuYXRpb25hbGl6YXRpb24iLAorIF0KKyBsaWNl bnNlID0gIihBcGFjaGUtMi4wIE9SIE1JVCkgQU5EIEJTRC0zLUNsYXVzZSIKKyByZXBvc2l0b3J5 ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9lbmNvZGluZ19ycyIKKyAKKyBbcHJvZmls ZS5yZWxlYXNlXQorIGx0byA9IHRydWUKKyAKKytbZGVwZW5kZW5jaWVzLmFueV9hbGxfd29ya2Fy b3VuZF0KKyt2ZXJzaW9uID0gIjAuMS4wIgorK29wdGlvbmFsID0gdHJ1ZQorKworIFtkZXBlbmRl bmNpZXMuY2ZnLWlmXQorIHZlcnNpb24gPSAiMS4wIgorIAorLVtkZXBlbmRlbmNpZXMucGFja2Vk X3NpbWRdCistdmVyc2lvbiA9ICIwLjMuOSIKKy1vcHRpb25hbCA9IHRydWUKKy0KKyBbZGVwZW5k ZW5jaWVzLnNlcmRlXQorIHZlcnNpb24gPSAiMS4wIgorIG9wdGlvbmFsID0gdHJ1ZQorIAorIFtk ZXYtZGVwZW5kZW5jaWVzLmJpbmNvZGVdCisgdmVyc2lvbiA9ICIxLjAiCisgCisgW2Rldi1kZXBl bmRlbmNpZXMuc2VyZGVfZGVyaXZlXQorQEAgLTY5LDE1ICs3MCw5IEBAIGZhc3QtbGVnYWN5LWVu Y29kZSA9IFsKKyAgICAgImZhc3QtaGFuamEtZW5jb2RlIiwKKyAgICAgImZhc3Qta2FuamktZW5j b2RlIiwKKyAgICAgImZhc3QtZ2ItaGFuemktZW5jb2RlIiwKKyAgICAgImZhc3QtYmlnNS1oYW56 aS1lbmNvZGUiLAorIF0KKyBsZXNzLXNsb3ctYmlnNS1oYW56aS1lbmNvZGUgPSBbXQorIGxlc3Mt c2xvdy1nYi1oYW56aS1lbmNvZGUgPSBbXQorIGxlc3Mtc2xvdy1rYW5qaS1lbmNvZGUgPSBbXQor LXNpbWQtYWNjZWwgPSBbCistICAgICJwYWNrZWRfc2ltZCIsCistICAgICJwYWNrZWRfc2ltZC9p bnRvX2JpdHMiLAorLV0KKy0KKy1bYmFkZ2VzLnRyYXZpcy1jaV0KKy1yZXBvc2l0b3J5ID0gImhz aXZvbmVuL2VuY29kaW5nX3JzIgorK3NpbWQtYWNjZWwgPSBbImFueV9hbGxfd29ya2Fyb3VuZCJd CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JFQURNRS5tZAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvUkVBRE1FLm1kCitAQCAtMTYyLDUwICsxNjIsMzYgQEAgd3JhcHBlcnMuCisgKiBbQysr XShodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcmVjb2RlX2NwcCkKKyAKKyAjIyBPcHRpb25h bCBmZWF0dXJlcworIAorIFRoZXJlIGFyZSBjdXJyZW50bHkgdGhlc2Ugb3B0aW9uYWwgY2FyZ28g ZmVhdHVyZXM6CisgCisgIyMjIGBzaW1kLWFjY2VsYAorIAorLUVuYWJsZXMgU0lNRCBhY2NlbGVy YXRpb24gdXNpbmcgdGhlIG5pZ2h0bHktZGVwZW5kZW50IGBwYWNrZWRfc2ltZGAgY3JhdGUuCisr RW5hYmxlcyBTSU1EIGFjY2VsZXJhdGlvbiB1c2luZyB0aGUgbmlnaHRseS1kZXBlbmRlbnQgYHBv cnRhYmxlX3NpbWRgIHN0YW5kYXJkCisrbGlicmFyeSBmZWF0dXJlLgorIAorIFRoaXMgaXMgYW4g b3B0LWluIGZlYXR1cmUsIGJlY2F1c2UgZW5hYmxpbmcgdGhpcyBmZWF0dXJlIF9vcHRzIG91dF8g b2YgUnVzdCdzCisgZ3VhcmFudGVlcyBvZiBmdXR1cmUgY29tcGlsZXJzIGNvbXBpbGluZyBvbGQg Y29kZSAoYWthLiAic3RhYmlsaXR5IHN0b3J5IikuCisgCisgQ3VycmVudGx5LCB0aGlzIGhhcyBu b3QgYmVlbiB0ZXN0ZWQgdG8gYmUgYW4gaW1wcm92ZW1lbnQgZXhjZXB0IGZvciB0aGVzZQorLXRh cmdldHM6CisrdGFyZ2V0cyBhbmQgZW5hYmxpbmcgdGhlIGBzaW1kLWFjY2VsYCBmZWF0dXJlIGlz IGV4cGVjdGVkIHRvIGJyZWFrIHRoZSBidWlsZAorK29uIG90aGVyIHRhcmdldHM6CisgCisgKiB4 ODZfNjQKKyAqIGk2ODYKKyAqIGFhcmNoNjQKKyAqIHRodW1idjduZW9uCisgCisgSWYgeW91IHVz ZSBuaWdodGx5IFJ1c3QsIHlvdSB1c2UgdGFyZ2V0cyB3aG9zZSBmaXJzdCBjb21wb25lbnQgaXMg b25lIG9mIHRoZQorIGFib3ZlLCBhbmQgeW91IGFyZSBwcmVwYXJlZCBfdG8gaGF2ZSB0byByZXZp c2UgeW91ciBjb25maWd1cmF0aW9uIHdoZW4gdXBkYXRpbmcKKyBSdXN0XywgeW91IHNob3VsZCBl bmFibGUgdGhpcyBmZWF0dXJlLiBPdGhlcndpc2UsIHBsZWFzZSBfZG8gbm90XyBlbmFibGUgdGhp cworIGZlYXR1cmUuCisgCistX05vdGUhXyBJZiB5b3UgYXJlIGNvbXBpbGluZyBmb3IgYSB0YXJn ZXQgdGhhdCBkb2VzIG5vdCBoYXZlIDEyOC1iaXQgU0lNRAorLWVuYWJsZWQgYXMgcGFydCBvZiB0 aGUgdGFyZ2V0IGRlZmluaXRpb24gYW5kIHlvdSBhcmUgZW5hYmxpbmcgMTI4LWJpdCBTSU1ECist dXNpbmcgYC1DIHRhcmdldF9mZWF0dXJlYCwgeW91IG5lZWQgdG8gZW5hYmxlIHRoZSBgY29yZV9h cmNoYCBDYXJnbyBmZWF0dXJlCistZm9yIGBwYWNrZWRfc2ltZGAgdG8gY29tcGlsZSBhIGNyYXRl cy5pbyBzbmFwc2hvdCBvZiBgY29yZV9hcmNoYCBpbnN0ZWFkIG9mCistdXNpbmcgdGhlIHN0YW5k YXJkLWxpYnJhcnkgY29weSBvZiBgY29yZTo6YXJjaGAsIGJlY2F1c2UgdGhlIGBjb3JlOjphcmNo YAorLW1vZHVsZSBvZiB0aGUgcHJlLWNvbXBpbGVkIHN0YW5kYXJkIGxpYnJhcnkgaGFzIGJlZW4g Y29tcGlsZWQgd2l0aCB0aGUKKy1hc3N1bXB0aW9uIHRoYXQgdGhlIENQVSBkb2Vzbid0IGhhdmUg MTI4LWJpdCBTSU1ELiBBdCBwcmVzZW50IHRoaXMgYXBwbGllcworLW1haW5seSB0byAzMi1iaXQg QVJNIHRhcmdldHMgd2hvc2UgZmlyc3QgY29tcG9uZW50IGRvZXMgbm90IGluY2x1ZGUgdGhlCist c3Vic3RyaW5nIGBuZW9uYC4KKy0KKy1UaGUgZW5jb2RpbmdfcnMgc2lkZSBvZiB0aGluZ3MgaGFz IG5vdCBiZWVuIHByb3Blcmx5IHNldCB1cCBmb3IgUE9XRVIsCistUG93ZXJQQywgTUlQUywgZXRj LiwgU0lNRCBhdCB0aGlzIHRpbWUsIHNvIGV2ZW4gaWYgeW91IHdlcmUgdG8gZm9sbG93CistdGhl IGFkdmljZSBmcm9tIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHlvdSBwcm9iYWJseSBzaG91bGRu J3QgdXNlCistdGhlIGBzaW1kLWFjY2VsYCBvcHRpb24gb24gdGhlIGxlc3MgbWFpbnN0cmVhbSBh cmNoaXRlY3R1cmVzIGF0IHRoaXMKKy10aW1lLgorLQorIFVzZWQgYnkgRmlyZWZveC4KKyAKKyAj IyMgYHNlcmRlYAorIAorIEVuYWJsZXMgc3VwcG9ydCBmb3Igc2VyaWFsaXppbmcgYW5kIGRlc2Vy aWFsaXppbmcgYCYnc3RhdGljIEVuY29kaW5nYC10eXBlZAorIHN0cnVjdCBmaWVsZHMgdXNpbmcg W1NlcmRlXVsxXS4KKyAKKyBbMV06IGh0dHBzOi8vc2VyZGUucnMvCitAQCAtMzc2LDE4ICszNjIs MTkgQEAgSXQgaXMgYSBnb2FsIHRvIHN1cHBvcnQgdGhlIGxhdGVzdCBzdGFibAorIHRoZSB2ZXJz aW9uIG9mIFJ1c3QgdGhhdCdzIHVzZWQgZm9yIEZpcmVmb3ggTmlnaHRseS4KKyAKKyBBdCB0aGlz IHRpbWUsIHRoZXJlIGlzIG5vIGZpcm0gY29tbWl0bWVudCB0byBzdXBwb3J0IGEgdmVyc2lvbiBv bGRlciB0aGFuCisgd2hhdCdzIHJlcXVpcmVkIGJ5IEZpcmVmb3gsIGFuZCB0aGVyZSBpcyBubyBj b21taXRtZW50IHRvIHRyZWF0IE1TUlYgY2hhbmdlcworIGFzIHNlbXZlci1icmVha2luZywgYmVj YXVzZSB0aGlzIGNyYXRlIGRlcGVuZHMgb24gYGNmZy1pZmAsIHdoaWNoIGRvZXNuJ3QKKyBhcHBl YXIgdG8gdHJlYXQgTVNSViBjaGFuZ2VzIGFzIHNlbXZlci1icmVha2luZywgc28gaXQgd291bGQg YmUgdXNlbGVzcyBmb3IKKyB0aGlzIGNyYXRlIHRvIHRyZWF0IE1TUlYgY2hhbmdlcyBhcyBzZW12 ZXItYnJlYWtpbmcuCisgCistQXMgb2YgMjAyMS0wMi0wNCwgTVNSViBhcHBlYXJzIHRvIGJlIFJ1 c3QgMS4zNi4wIGZvciB1c2luZyB0aGUgY3JhdGUgYW5kCisrQXMgb2YgMjAyNC0wNC0wNCwgTVNS ViBhcHBlYXJzIHRvIGJlIFJ1c3QgMS4zNi4wIGZvciB1c2luZyB0aGUgY3JhdGUgYW5kCisgMS40 Mi4wIGZvciBkb2MgdGVzdHMgdG8gcGFzcyB3aXRob3V0IGVycm9ycyBhYm91dCB0aGUgZ2xvYmFs IGFsbG9jYXRvci4KKytXaXRoIHRoZSBgc2ltZC1hY2NlbGAgZmVhdHVyZSwgdGhlIE1TUlYgaXMg ZXZlbiBoaWdoZXIuCisgCisgIyMgQ29tcGF0aWJpbGl0eSB3aXRoIHJ1c3QtZW5jb2RpbmcKKyAK KyBBIGNvbXBhdGliaWxpdHkgbGF5ZXIgdGhhdCBpbXBsZW1lbnRzIHRoZSBydXN0LWVuY29kaW5n IEFQSSBvbiB0b3Agb2YKKyBlbmNvZGluZ19ycyBpcworIFtwcm92aWRlZCBhcyBhIHNlcGFyYXRl IGNyYXRlXShodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2RpbmdfcnNfY29tcGF0KQor IChjYW5ub3QgYmUgdXBsb2FkZWQgdG8gY3JhdGVzLmlvKS4gVGhlIGNvbXBhdGliaWxpdHkgbGF5 ZXIgd2FzIG9yaWdpbmFsbHkKKyB3cml0dGVuIHdpdGggdGhlIGFzc3VwdGlvbiB0aGF0IEZpcmVm b3ggd291bGQgbmVlZCBpdCwgYnV0IGl0IGlzIG5vdCBjdXJyZW50bHkKK0BAIC00NDEsMjAgKzQy OCwyNyBAQCBUbyByZWdlbmVyYXRlIHRoZSBnZW5lcmF0ZWQgY29kZToKKyAtIFt4XSBJbXBsZW1l bnQgdGhlIHJ1c3QtZW5jb2RpbmcgQVBJIGluIHRlcm1zIG9mIGVuY29kaW5nX3JzLgorIC0gW3hd IEFkZCBTSU1EIGFjY2VsZXJhdGlvbiBmb3IgQWFyY2g2NC4KKyAtIFt4XSBJbnZlc3RpZ2F0ZSB0 aGUgdXNlIG9mIE5FT04gb24gMzItYml0IEFSTS4KKyAtIFsgXSB+SW52ZXN0aWdhdGUgQmrDtnJu IEjDtmhybWFubidzIGxvb2t1cCB0YWJsZSBhY2NlbGVyYXRpb24gZm9yIFVURi04IGFzCisgICAg ICAgYWRhcHRlZCB0byBSdXN0IGluIHJ1c3QtZW5jb2RpbmcufgorIC0gW3hdIEFkZCBhY3R1YWxs eSBmYXN0IENKSyBlbmNvZGUgb3B0aW9ucy4KKyAtIFsgXSB+SW52ZXN0aWdhdGUgW0JvYiBTdGVh Z2FsbCdzIGxvb2t1cCB0YWJsZSBhY2NlbGVyYXRpb24gZm9yIFVURi04XShodHRwczovL2dpdGh1 Yi5jb20vQm9iU3RlYWdhbGwvQ3BwTm93MjAxOC9ibG9iL21hc3Rlci9GYXN0Q29udmVyc2lvbkZy b21VVEYtOC9GYXN0JTIwQ29udmVyc2lvbiUyMEZyb20lMjBVVEYtOCUyMHdpdGglMjBDJTJCJTJC JTJDJTIwREZBcyUyQyUyMGFuZCUyMFNTRSUyMEludHJpbnNpY3MlMjAtJTIwQm9iJTIwU3RlYWdh bGwlMjAtJTIwQyUyQiUyQk5vdyUyMDIwMTgucGRmKS5+CisgLSBbeF0gUHJvdmlkZSBhIGJ1aWxk IG1vZGUgdGhhdCB3b3JrcyB3aXRob3V0IGBhbGxvY2AgKHdpdGggbGVzc2VyIEFQSSBzdXJmYWNl KS4KKy0tIFsgXSBNaWdyYXRlIHRvIGBzdGQ6OnNpbWRgIG9uY2UgaXQgaXMgc3RhYmxlIGFuZCBk ZWNsYXJlIDEuMC4KKystIFt4XSBNaWdyYXRlIHRvIGBzdGQ6OnNpbWRgIH5vbmNlIGl0IGlzIHN0 YWJsZSBhbmQgZGVjbGFyZSAxLjAufgorKy0gWyBdIE1pZ3JhdGUgYHVuc2FmZWAgc2xpY2UgYWNj ZXNzIGJ5IGxhcmdlciB0eXBlcyB0aGFuIGB1OGAvYHUxNmAgdG8gYGFsaWduX3RvYC4KKyAKKyAj IyBSZWxlYXNlIE5vdGVzCisgCisrIyMjIDAuOC4zNAorKworKyogVXNlIHRoZSBgcG9ydGFibGVf c2ltZGAgbmlnaHRseSBmZWF0dXJlIG9mIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGluc3RlYWQgb2Yg dGhlIGBwYWNrZWRfc2ltZGAgY3JhdGUuIE9ubHkgYWZmZWN0cyB0aGUgYHNpbWQtYWNjZWxgIG9w dGlvbmFsIG5pZ2h0bHkgZmVhdHVyZS4KKysqIEludGVybmFsIGRvY3VtZW50YXRpb24gaW1wcm92 ZW1lbnRzIGFuZCBtaW5vciBjb2RlIGltcHJvdmVtZW50cyBhcm91bmQgYHVuc2FmZWAuCisrKiBB ZGRlZCBgcnVzdC12ZXJzaW9uYCB0byBgQ2FyZ28udG9tbGAuCisrCisgIyMjIDAuOC4zMworIAor ICogVXNlIGBwYWNrZWRfc2ltZGAgaW5zdGVhZCBvZiBgcGFja2VkX3NpbWRfMmAgYWdhaW4gbm93 IHRoYXQgdXBkYXRlcyBhcmUgYmFjayB1bmRlciB0aGUgYHBhY2tlZF9zaW1kYCBuYW1lLiBPbmx5 IGFmZmVjdHMgdGhlIGBzaW1kLWFjY2VsYCBvcHRpb25hbCBuaWdodGx5IGZlYXR1cmUuCisgCisg IyMjIDAuOC4zMgorIAorICogUmVtb3ZlZCBgYnVpbGQucnNgLiAoVGhpcyByZW1vdmFsIHNob3Vs ZCByZXNvbHZlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnRlZCBieSBzb21lIGFudGl2aXJ1cyBwcm9k dWN0cy4gVGhpcyBtYXkgYnJlYWsgc29tZSBidWlsZCBjb25maWd1cmF0aW9ucyB0aGF0IGhhdmUg b3B0ZWQgb3V0IG9mIFJ1c3QncyBndWFyYW50ZWVzIGFnYWluc3QgZnV0dXJlIGJ1aWxkIGJyZWFr YWdlLikKKyAqIEludGVybmFsIGNoYW5nZSB0byB3aGF0IEFQSSBpcyB1c2VkIGZvciByZWludGVy cHJldGluZyB0aGUgbGFuZSBjb25maWd1cmF0aW9uIG9mIFNJTUQgdmVjdG9ycy4KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9hc2NpaS5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2FzY2lpLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy9hc2NpaS5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvYXNjaWkucnMKK0BAIC00Niw3MSArNDYsODcgQEAgY2ZnX2lmISB7CisgICAgICAg ICAjW2FsbG93KGRlYWRfY29kZSldCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAg ICAgZm4gbGlrZWx5KGI6IGJvb2wpIC0+IGJvb2wgeworICAgICAgICAgICAgIGIKKyAgICAgICAg IH0KKyAgICAgfQorIH0KKyAKKysvLyBTYWZldHkgaW52YXJpYW50cyBmb3IgbWFza3M6IGRhdGEg JiBtYXNrID0gMCBmb3IgdmFsaWQgQVNDSUkgb3IgYmFzaWMgbGF0aW4gdXRmLTE2CisrCisgLy8g YGFzYCB0cnVuY2F0ZXMsIHNvIHdvcmtzIG9uIDMyLWJpdCwgdG9vLgorICNbYWxsb3coZGVhZF9j b2RlKV0KKyBwdWIgY29uc3QgQVNDSUlfTUFTSzogdXNpemUgPSAweDgwODBfODA4MF84MDgwXzgw ODB1NjQgYXMgdXNpemU7CisgCisgLy8gYGFzYCB0cnVuY2F0ZXMsIHNvIHdvcmtzIG9uIDMyLWJp dCwgdG9vLgorICNbYWxsb3coZGVhZF9jb2RlKV0KKyBwdWIgY29uc3QgQkFTSUNfTEFUSU5fTUFT SzogdXNpemUgPSAweEZGODBfRkY4MF9GRjgwX0ZGODB1NjQgYXMgdXNpemU7CisgCisgI1thbGxv dyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfbmFpdmUgeworICAgICAoJG5h bWU6aWRlbnQsICRzcmNfdW5pdDp0eSwgJGRzdF91bml0OnR5KSA9PiB7CisrICAgICAgICAvLy8g U2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGhhdmUgbGVuX3VuaXQgZWxlbWVudHMgYW5kIGJlIGFs aWduZWQKKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4g U29tZSgpIHdoZW4gaXQgZmFpbHMKKysgICAgICAgIC8vLyB0byBjb252ZXJ0LiBUaGUgZmlyc3Qg dmFsdWUgd2lsbCBiZSBhIHU4IHRoYXQgaXMgPiAxMjcuCisgICAgICAgICAjW2lubGluZShhbHdh eXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZSgKKyAgICAgICAgICAgICBzcmM6ICpj b25zdCAkc3JjX3VuaXQsCisgICAgICAgICAgICAgZHN0OiAqbXV0ICRkc3RfdW5pdCwKKyAgICAg ICAgICAgICBsZW46IHVzaXplLAorICAgICAgICAgKSAtPiBPcHRpb248KCRzcmNfdW5pdCwgdXNp emUpPiB7CisgICAgICAgICAgICAgLy8gWWVzLCBtYW51YWxseSBvbWl0dGluZyB0aGUgYm91bmQg Y2hlY2sgaGVyZSBtYXR0ZXJzCisgICAgICAgICAgICAgLy8gYSBsb3QgZm9yIHBlcmYuCisgICAg ICAgICAgICAgZm9yIGkgaW4gMC4ubGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBs ZW4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0g KihzcmMuYWRkKGkpKTsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVcGhvbGRzIHNhZmV0 eS11c2FibGUgaW52YXJpYW50IGhlcmUKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4g MTI3IHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIGkpKTsK KyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBpbnZh cmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgICAgICooZHN0LmFkZChpKSkgPSBjb2RlX3Vu aXQgYXMgJGRzdF91bml0OworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICByZXR1cm4gTm9u ZTsKKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0K KyBtYWNyb19ydWxlcyEgYXNjaWlfYWx1IHsKKyAgICAgKCRuYW1lOmlkZW50LAorKyAgICAgLy8g c2FmZXR5IGludmFyaWFudDogc3JjL2RzdCBNVVNUIGJlIHU4CisgICAgICAkc3JjX3VuaXQ6dHks CisgICAgICAkZHN0X3VuaXQ6dHksCisrICAgICAvLyBTYWZldHkgaW52YXJpYW50OiBzdHJpZGVf Zm4gbXVzdCBjb25zdW1lIGFuZCBwcm9kdWNlIHR3byB1c2l6ZXMsIGFuZCByZXR1cm4gdGhlIGlu ZGV4IG9mIHRoZSBmaXJzdCBub24tYXNjaWkgd2hlbiBpdCBmYWlscworICAgICAgJHN0cmlkZV9m bjppZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBoYXZl IGxlbiBlbGVtZW50cywgc3JjIGlzIHZhbGlkIGZvciByZWFkLCBkc3QgaXMgdmFsaWQgZm9yCisr ICAgICAgICAvLy8gd3JpdGUKKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDog d2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZmFpbHMKKysgICAgICAgIC8vLyB0byBjb252ZXJ0 LiBUaGUgZmlyc3QgdmFsdWUgd2lsbCBiZSBhIHU4IHRoYXQgaXMgPiAxMjcuCisgICAgICAgICAj W2NmZ19hdHRyKGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwgYWxsb3cobmV2ZXJfbG9vcCwgY2Fz dF9wdHJfYWxpZ25tZW50KSldCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAg cHViIHVuc2FmZSBmbiAkbmFtZSgKKyAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3JjX3VuaXQs CisgICAgICAgICAgICAgZHN0OiAqbXV0ICRkc3RfdW5pdCwKKyAgICAgICAgICAgICBsZW46IHVz aXplLAorICAgICAgICAgKSAtPiBPcHRpb248KCRzcmNfdW5pdCwgdXNpemUpPiB7CisgICAgICAg ICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7CisgICAgICAgICAgICAgLy8gVGhpcyBsb29w IGlzIG9ubHkgYnJva2VuIG91dCBvZiBhcyBhIGBnb3RvYCBmb3J3YXJkCisgICAgICAgICAgICAg bG9vcCB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdW50aWxfYWxpZ25tZW50IGJlY29t ZXMgdGhlIG51bWJlciBvZiBieXRlcyB3ZSBuZWVkIHRvIG11bmNoIHVudGlsIHdlIGFyZSBhbGln bmVkIHRvIHVzaXplCisgICAgICAgICAgICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50ID0g eworICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIG90aGVyIHVuaXQgYWxpZ25z IGlmIHdlIG1vdmUgdGhlIG5hcnJvd2VyIHVuaXQKKyAgICAgICAgICAgICAgICAgICAgIC8vIHRv IGFsaWdubWVudC4KKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgaWYgOjpj b3JlOjptZW06OnNpemVfb2Y6Ojwkc3JjX3VuaXQ+KCkgPT0gOjpjb3JlOjptZW06OnNpemVfb2Y6 OjwkZHN0X3VuaXQ+KCkgeworICAgICAgICAgICAgICAgICAgICAgLy8gYXNjaWlfdG9fYXNjaWkK KyAgICAgICAgICAgICAgICAgICAgIGxldCBzcmNfYWxpZ25tZW50ID0gKHNyYyBhcyB1c2l6ZSkg JiBBTFVfQUxJR05NRU5UX01BU0s7CisgICAgICAgICAgICAgICAgICAgICBsZXQgZHN0X2FsaWdu bWVudCA9IChkc3QgYXMgdXNpemUpICYgQUxVX0FMSUdOTUVOVF9NQVNLOworICAgICAgICAgICAg ICAgICAgICAgaWYgc3JjX2FsaWdubWVudCAhPSBkc3RfYWxpZ25tZW50IHsKKysgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IGJhaWxzIGVhcmx5IGFuZCBlbmRzIHVwIGluIHRoZSBu YcOvdmUgYnJhbmNoIHdoZXJlIHVzaXplLWFsaWdubWVudCBkb2Vzbid0IG1hdHRlcgorICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICAgKEFMVV9BTElHTk1FTlQgLSBzcmNfYWxpZ25tZW50KSAmIEFMVV9BTElH Tk1FTlRfTUFTSworICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICB9IGVsc2Ug aWYgOjpjb3JlOjptZW06OnNpemVfb2Y6Ojwkc3JjX3VuaXQ+KCkgPCA6OmNvcmU6Om1lbTo6c2l6 ZV9vZjo6PCRkc3RfdW5pdD4oKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBhc2NpaV90b19i YXNpY19sYXRpbgorICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgbGV0 IHNyY191bnRpbF9hbGlnbm1lbnQgPSAoQUxJR05NRU5UIC0gKChzcmMgYXMgdXNpemUpICYgQUxJ R05NRU5UX01BU0spKSAmIEFMSUdOTUVOVF9NQVNLOworICAgICAgICAgICAgICAgICAgICAgLy8g ICAgICAgICAgICAgICAgICAgaWYgKGRzdC5hZGQoc3JjX3VudGlsX2FsaWdubWVudCkgYXMgdXNp emUpICYgQUxJR05NRU5UX01BU0sgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAvLyAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CitAQCAtMTI5LDc0ICsxNDUsMTA0IEBAIG1hY3JvX3J1 bGVzISBhc2NpaV9hbHUgeworICAgICAgICAgICAgICAgICAgICAgLy8gTW92aW5nIHBvaW50ZXJz IHRvIGFsaWdubWVudCBzZWVtcyB0byBiZSBhIHBlc3NpbWl6YXRpb24gb24KKyAgICAgICAgICAg ICAgICAgICAgIC8vIHg4Nl82NCBmb3Igb3BlcmF0aW9ucyB0aGF0IGhhdmUgVVRGLTE2IGFzIHRo ZSBpbnRlcm5hbAorICAgICAgICAgICAgICAgICAgICAgLy8gVW5pY29kZSByZXByZXNlbnRhdGlv bi4gSG93ZXZlciwgc2luY2UgaXQgc2VlbXMgdG8gYmUgYSB3aW4KKyAgICAgICAgICAgICAgICAg ICAgIC8vIG9uIEFSTSAodGVzdGVkIEFSTXY3IGNvZGUgcnVubmluZyBvbiBBUk12OCBbcnBpM10p LCBleGNlcHQKKyAgICAgICAgICAgICAgICAgICAgIC8vIG1peGVkIHJlc3VsdHMgd2hlbiBlbmNv ZGluZyBmcm9tIFVURi0xNiBhbmQgc2luY2UgeDg2IGFuZAorICAgICAgICAgICAgICAgICAgICAg Ly8geDg2XzY0IHNob3VsZCBiZSB1c2luZyBTU0UyIGluIGR1ZSBjb3Vyc2UsIGtlZXBpbmcgdGhl IG1vdmUKKyAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFsaWdubWVudCBoZXJlLiBJdCB3b3Vs ZCBiZSBnb29kIHRvIHRlc3Qgb24gbW9yZSBBUk0gQ1BVcworICAgICAgICAgICAgICAgICAgICAg Ly8gYW5kIG9uIHJlYWwgTUlQUyBhbmQgUE9XRVIgaGFyZHdhcmUuCisrICAgICAgICAgICAgICAg ICAgICAvLworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOv dmUgY29kZSBvbmNlIGFnYWluLCBmb3IgYHVudGlsX2FsaWdubWVudGAgYnl0ZXMKKyAgICAgICAg ICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAhPSAwIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJl CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9m ZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2YgYnl0 ZXMgY29waWVkIHNvIGZhcgorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwor ICAgICAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAxOworICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUg PSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG51bV9hc2NpaSBpcyBrbm93biB0byBi ZSBhIGJ5dGUgaW5kZXggb2YgYSBub24tYXNjaWkgYnl0ZSBkdWUgdG8gc3RyaWRlX2ZuJ3MgaW52 YXJpYW50CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUobnVtX2FzY2lpKSA9 ICRzdHJpZGVfZm4oCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhl c2UgYXJlIGtub3duIHRvIGJlIHZhbGlkIGFuZCBhbGlnbmVkIHNpbmNlIHdlIGhhdmUgYXQKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhc3QgQUxVX1NUUklERV9TSVpFIGRhdGEg aW4gdGhlc2UgYnVmZmVycywgYW5kIG9mZnNldCBpcyB0aGUKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGNvcGllZCBzbyBmYXIsIHdoaWNoIGFjY29y ZGluZyB0byB0aGUKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW50aWxfYWxpZ25t ZW50IGNhbGN1bGF0aW9uIGFib3ZlIHdpbGwgY2F1c2UgYm90aCBzcmMgYW5kIGRzdCB0byBiZQor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbmVkIHRvIHVzaXplIGFmdGVyIHRo aXMgYWRkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZGQob2Zmc2V0KSBhcyAq Y29uc3QgdXNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdC5hZGQob2Zmc2V0 KSBhcyAqbXV0IHVzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbnVtX2FzY2lpOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQg aGVyZSBieSBpbmRleGluZyBpbnRvIG5vbi1hc2NpaSBieXRlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBTb21lKCgqKHNyYy5hZGQob2Zmc2V0KSksIG9mZnNldCkpOworICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IG9mZnNldCBjb250aW51ZXMgdG8gYmUgdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQgc28g ZmFyLCBhbmQKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWludGFpbnMgdXNpemUgYWxp Z25tZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBBTFVfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBzdHJpZGUuIFRoaXMgbG9vcCB3aWxs IGNvbnRpbnVlIGFzIGxvbmcgYXMKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBgb2Zmc2V0 IDw9IGxlbiAtIHN0cmlkZWAsIHdoaWNoIG1lYW5zIHRoZXJlIGFyZSBgc3RyaWRlYCBieXRlcyB0 byBzdGlsbCBiZSByZWFkLgorICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxl bl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgfQorKwor KyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUsIHNhbWUgYXMg YXNjaWlfbmFpdmUsIGFuZCBoYXMgbm8gcmVxdWlyZW1lbnRzCisrICAgICAgICAgICAgLy8gb3Ro ZXIgdGhhbiBzcmMvZHN0IGJlaW5nIHZhbGlkIGZvciB0aGUgdGhlIHJpZ2h0IGxlbnMKKyAgICAg ICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQg PSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEy NyB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2FmZXR5LXVzYWJs ZSBpbnZhcmlhbnQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVf dW5pdCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICAgICAqKGRzdC5h ZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworICAgICAgICAgICAgICAgICBv ZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgTm9uZQorICAgICAgICAg fQorICAgICB9OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVz ISBiYXNpY19sYXRpbl9hbHUgeworICAgICAoJG5hbWU6aWRlbnQsCisrICAgIC8vIHNhZmV0eSBp bnZhcmlhbnQ6IHVzZSB1OCBmb3Igc3JjL2Rlc3QgZm9yIGFzY2lpLCBhbmQgdTE2IGZvciBiYXNp Y19sYXRpbgorICAgICAgJHNyY191bml0OnR5LAorICAgICAgJGRzdF91bml0OnR5LAorKyAgICAv LyBzYWZldHkgaW52YXJpYW50OiBzdHJpZGUgZnVuY3Rpb24gbXVzdCBtdW5jaCBBTFVfU1RSSURF X1NJWkUqc2l6ZShzcmNfdW5pdCkgYnl0ZXMgb2ZmIG9mIHNyYyBhbmQKKysgICAgLy8gd3JpdGUg QUxVX1NUUklERV9TSVpFKnNpemUoZHN0X3VuaXQpIGJ5dGVzIHRvIGRzdAorICAgICAgJHN0cmlk ZV9mbjppZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBo YXZlIGxlbiBlbGVtZW50cywgc3JjIGlzIHZhbGlkIGZvciByZWFkLCBkc3QgaXMgdmFsaWQgZm9y CisrICAgICAgICAvLy8gd3JpdGUKKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFu dDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZmFpbHMKKysgICAgICAgIC8vLyB0byBjb252 ZXJ0LiBUaGUgZmlyc3QgdmFsdWUgd2lsbCBiZSBhIHU4IHRoYXQgaXMgPiAxMjcuCisgICAgICAg ICAjW2NmZ19hdHRyKAorICAgICAgICAgICAgIGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwKKyAg ICAgICAgICAgICBhbGxvdyhuZXZlcl9sb29wLCBjYXN0X3B0cl9hbGlnbm1lbnQsIGNhc3RfbG9z c2xlc3MpCisgICAgICAgICApXQorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAg IHB1YiB1bnNhZmUgZm4gJG5hbWUoCisgICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0 LAorICAgICAgICAgICAgIGRzdDogKm11dCAkZHN0X3VuaXQsCisgICAgICAgICAgICAgbGVuOiB1 c2l6ZSwKKyAgICAgICAgICkgLT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4geworICAgICAg ICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOworICAgICAgICAgICAgIC8vIFRoaXMgbG9v cCBpcyBvbmx5IGJyb2tlbiBvdXQgb2YgYXMgYSBgZ290b2AgZm9yd2FyZAorICAgICAgICAgICAg IGxvb3AgeworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVudGlsX2FsaWdubWVudCBiZWNv bWVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd2UgbmVlZCB0byBtdW5jaCBmcm9tIHNyYy9kZXN0IHVu dGlsIHdlIGFyZSBhbGlnbmVkIHRvIHVzaXplCisrICAgICAgICAgICAgICAgIC8vIFdlIGVuc3Vy ZSBiYXNpYy1sYXRpbiBoYXMgdGhlIHNhbWUgYWxpZ25tZW50IGFzIGFzY2lpLCBzdGFydGluZyB3 aXRoIGFzY2lpIHNpbmNlIGl0IGlzIHNtYWxsZXIuCisgICAgICAgICAgICAgICAgIGxldCBtdXQg dW50aWxfYWxpZ25tZW50ID0geworICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhl IG90aGVyIHVuaXQgYWxpZ25zIGlmIHdlIG1vdmUgdGhlIG5hcnJvd2VyIHVuaXQKKyAgICAgICAg ICAgICAgICAgICAgIC8vIHRvIGFsaWdubWVudC4KKyAgICAgICAgICAgICAgICAgICAgIC8vICAg ICAgICAgICAgICAgaWYgOjpjb3JlOjptZW06OnNpemVfb2Y6Ojwkc3JjX3VuaXQ+KCkgPT0gOjpj b3JlOjptZW06OnNpemVfb2Y6OjwkZHN0X3VuaXQ+KCkgeworICAgICAgICAgICAgICAgICAgICAg Ly8gYXNjaWlfdG9fYXNjaWkKKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAg ICAgIGxldCBzcmNfYWxpZ25tZW50ID0gKHNyYyBhcyB1c2l6ZSkgJiBBTElHTk1FTlRfTUFTSzsK KyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIGxldCBkc3RfYWxpZ25t ZW50ID0gKGRzdCBhcyB1c2l6ZSkgJiBBTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAg ICAgIC8vICAgICAgICAgICAgICAgICAgIGlmIHNyY19hbGlnbm1lbnQgIT0gZHN0X2FsaWdubWVu dCB7CitAQCAtMjMyLDY2ICsyNzgsODkgQEAgbWFjcm9fcnVsZXMhIGJhc2ljX2xhdGluX2FsdSB7 CisgICAgICAgICAgICAgICAgICAgICAvLyBNb3ZpbmcgcG9pbnRlcnMgdG8gYWxpZ25tZW50IHNl ZW1zIHRvIGJlIGEgcGVzc2ltaXphdGlvbiBvbgorICAgICAgICAgICAgICAgICAgICAgLy8geDg2 XzY0IGZvciBvcGVyYXRpb25zIHRoYXQgaGF2ZSBVVEYtMTYgYXMgdGhlIGludGVybmFsCisgICAg ICAgICAgICAgICAgICAgICAvLyBVbmljb2RlIHJlcHJlc2VudGF0aW9uLiBIb3dldmVyLCBzaW5j ZSBpdCBzZWVtcyB0byBiZSBhIHdpbgorICAgICAgICAgICAgICAgICAgICAgLy8gb24gQVJNICh0 ZXN0ZWQgQVJNdjcgY29kZSBydW5uaW5nIG9uIEFSTXY4IFtycGkzXSksIGV4Y2VwdAorICAgICAg ICAgICAgICAgICAgICAgLy8gbWl4ZWQgcmVzdWx0cyB3aGVuIGVuY29kaW5nIGZyb20gVVRGLTE2 IGFuZCBzaW5jZSB4ODYgYW5kCisgICAgICAgICAgICAgICAgICAgICAvLyB4ODZfNjQgc2hvdWxk IGJlIHVzaW5nIFNTRTIgaW4gZHVlIGNvdXJzZSwga2VlcGluZyB0aGUgbW92ZQorICAgICAgICAg ICAgICAgICAgICAgLy8gdG8gYWxpZ25tZW50IGhlcmUuIEl0IHdvdWxkIGJlIGdvb2QgdG8gdGVz dCBvbiBtb3JlIEFSTSBDUFVzCisgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgb24gcmVhbCBN SVBTIGFuZCBQT1dFUiBoYXJkd2FyZS4KKysgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlIG9uY2UgYWdh aW4sIGZvciBgdW50aWxfYWxpZ25tZW50YCBieXRlcworICAgICAgICAgICAgICAgICAgICAgd2hp bGUgdW50aWxfYWxpZ25tZW50ICE9IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBj b2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg aWYgY29kZV91bml0ID4gMTI3IHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICooZHN0LmFkZChv ZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisrICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQgc28gZmFy CisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAgICAgICAgICAgICAg ICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7CisgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIEFMVV9TVFJJ REVfU0laRTsKKyAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICEkc3RyaWRlX2ZuKAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoZXNlIGFyZSBrbm93biB0byBiZSB2YWxpZCBhbmQgYWxpZ25lZCBzaW5jZSB3ZSBo YXZlIGF0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYXN0IEFMVV9TVFJJREVf U0laRSBkYXRhIGluIHRoZXNlIGJ1ZmZlcnMsIGFuZCBvZmZzZXQgaXMgdGhlCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBlbGVtZW50cyBjb3BpZWQgc28gZmFyLCB3 aGljaCBhY2NvcmRpbmcgdG8gdGhlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVu dGlsX2FsaWdubWVudCBjYWxjdWxhdGlvbiBhYm92ZSB3aWxsIGNhdXNlIGJvdGggc3JjIGFuZCBk c3QgdG8gYmUKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25lZCB0byB1c2l6 ZSBhZnRlciB0aGlzIGFkZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWRkKG9m ZnNldCkgYXMgKmNvbnN0IHVzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3Qu YWRkKG9mZnNldCkgYXMgKm11dCB1c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICApIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg ICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGNvbnRp bnVlcyB0byBiZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIsIGFuZAorKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIG1haW50YWlucyB1c2l6ZSBhbGlnbm1lbnQgZm9yIHRoZSBu ZXh0IGxvb3AgaXRlcmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFM VV9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMg aXMgYG9mZnNldCA+IGxlbiAtIHN0cmlkZS4gVGhpcyBsb29wIHdpbGwgY29udGludWUgYXMgbG9u ZyBhcworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBvZmZzZXQgPD0gbGVuIC0gc3RyaWRl YCwgd2hpY2ggbWVhbnMgdGhlcmUgYXJlIGBzdHJpZGVgIGJ5dGVzIHRvIHN0aWxsIGJlIHJlYWQu CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisrICAgICAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3IgbGVmdG92ZXIgYnl0 ZXMKKyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAgICAv LyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgICAgIGxldCBj b2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIGlmIGNvZGVf dW5pdCA+IDEyNyB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2Fm ZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNv bWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICAg ICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgTm9uZQor ICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1h Y3JvX3J1bGVzISBsYXRpbjFfYWx1IHsKKysgICAgLy8gc2FmZXR5IGludmFyaWFudDogc3RyaWRl IGZ1bmN0aW9uIG11c3QgbXVuY2ggQUxVX1NUUklERV9TSVpFKnNpemUoc3JjX3VuaXQpIGJ5dGVz IG9mZiBvZiBzcmMgYW5kCisrICAgIC8vIHdyaXRlIEFMVV9TVFJJREVfU0laRSpzaXplKGRzdF91 bml0KSBieXRlcyB0byBkc3QKKyAgICAgKCRuYW1lOmlkZW50LCAkc3JjX3VuaXQ6dHksICRkc3Rf dW5pdDp0eSwgJHN0cmlkZV9mbjppZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3Jj IGFuZCBkc3QgbXVzdCBoYXZlIGxlbiBlbGVtZW50cywgc3JjIGlzIHZhbGlkIGZvciByZWFkLCBk c3QgaXMgdmFsaWQgZm9yCisrICAgICAgICAvLy8gd3JpdGUKKyAgICAgICAgICNbY2ZnX2F0dHIo CisgICAgICAgICAgICAgZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLAorICAgICAgICAgICAgIGFs bG93KG5ldmVyX2xvb3AsIGNhc3RfcHRyX2FsaWdubWVudCwgY2FzdF9sb3NzbGVzcykKKyAgICAg ICAgICldCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBm biAkbmFtZShzcmM6ICpjb25zdCAkc3JjX3VuaXQsIGRzdDogKm11dCAkZHN0X3VuaXQsIGxlbjog dXNpemUpIHsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKyAgICAgICAg ICAgICAvLyBUaGlzIGxvb3AgaXMgb25seSBicm9rZW4gb3V0IG9mIGFzIGEgYGdvdG9gIGZvcndh cmQKKyAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1bnRp bF9hbGlnbm1lbnQgYmVjb21lcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdlIG5lZWQgdG8gbXVuY2gg ZnJvbSBzcmMvZGVzdCB1bnRpbCB3ZSBhcmUgYWxpZ25lZCB0byB1c2l6ZQorKyAgICAgICAgICAg ICAgICAvLyBXZSBlbnN1cmUgdGhlIFVURi0xNiBzaWRlIGhhcyB0aGUgc2FtZSBhbGlnbm1lbnQg YXMgdGhlIExhdGluLTEgc2lkZSwgc3RhcnRpbmcgd2l0aCBMYXRpbi0xIHNpbmNlIGl0IGlzIHNt YWxsZXIuCisgICAgICAgICAgICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50ID0geworICAg ICAgICAgICAgICAgICAgICAgaWYgOjpjb3JlOjptZW06OnNpemVfb2Y6Ojwkc3JjX3VuaXQ+KCkg PCA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRkc3RfdW5pdD4oKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gdW5wYWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNyY191bnRp bF9hbGlnbm1lbnQgPSAoQUxVX0FMSUdOTUVOVAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtICgoc3JjIGFzIHVzaXplKSAmIEFMVV9BTElHTk1FTlRfTUFTSykpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICYgQUxVX0FMSUdOTUVOVF9NQVNLOworICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIChkc3Qud3JhcHBpbmdfYWRkKHNyY191bnRpbF9hbGlnbm1lbnQpIGFzIHVzaXpl KSAmIEFMVV9BTElHTk1FTlRfTUFTSworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSAw CitAQCAtMzA4LDM3MyArMzc3LDQ4NSBAQCBtYWNyb19ydWxlcyEgbGF0aW4xX2FsdSB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICE9IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfdW50aWxfYWxpZ25tZW50Cisg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAg ICAgIGlmIHVudGlsX2FsaWdubWVudCArIEFMVV9TVFJJREVfU0laRSA8PSBsZW4geworKyAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFn YWluLCBmb3IgYHVudGlsX2FsaWdubWVudGAgYnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgIHdo aWxlIHVudGlsX2FsaWdubWVudCAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg Y29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAg ICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisrICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRlcyBj b3BpZWQgc28gZmFyCisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAg ICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7CisgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxl biAtIEFMVV9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworICAgICAg ICAgICAgICAgICAgICAgICAgICRzdHJpZGVfZm4oCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogVGhlc2UgYXJlIGtub3duIHRvIGJlIHZhbGlkIGFuZCBhbGlnbmVkIHNp bmNlIHdlIGhhdmUgYXQKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhc3QgQUxV X1NUUklERV9TSVpFIGRhdGEgaW4gdGhlc2UgYnVmZmVycywgYW5kIG9mZnNldCBpcyB0aGUKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGNvcGllZCBz byBmYXIsIHdoaWNoIGFjY29yZGluZyB0byB0aGUKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gdW50aWxfYWxpZ25tZW50IGNhbGN1bGF0aW9uIGFib3ZlIHdpbGwgY2F1c2UgYm90aCBz cmMgYW5kIGRzdCB0byBiZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbmVk IHRvIHVzaXplIGFmdGVyIHRoaXMgYWRkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNy Yy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgdXNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRzdC5hZGQob2Zmc2V0KSBhcyAqbXV0IHVzaXplLAorICAgICAgICAgICAgICAgICAgICAg ICAgICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZzZXQgY29udGlu dWVzIHRvIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhciwgYW5kCisrICAgICAg ICAgICAgICAgICAgICAgICAgLy8gbWFpbnRhaW5zIHVzaXplIGFsaWdubWVudCBmb3IgdGhlIG5l eHQgbG9vcCBpdGVyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gQUxV X1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBp cyBgb2Zmc2V0ID4gbGVuIC0gc3RyaWRlLiBUaGlzIGxvb3Agd2lsbCBjb250aW51ZSBhcyBsb25n IGFzCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gYG9mZnNldCA8PSBsZW4gLSBzdHJpZGVg LCB3aGljaCBtZWFucyB0aGVyZSBhcmUgYHN0cmlkZWAgYnl0ZXMgdG8gc3RpbGwgYmUgcmVhZC4K KyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvLyBTYWZl dHk6IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlIG9uY2UgYWdhaW4sIGZvciBsZWZ0b3ZlciBieXRl cworICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgbGV0IGNv ZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgKihkc3QuYWRk KG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgb2Zm c2V0ICs9IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyAj W2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBhc2NpaV9zaW1kX2NoZWNrX2Fs aWduIHsKKyAgICAgKAorICAgICAgICAgJG5hbWU6aWRlbnQsCisgICAgICAgICAkc3JjX3VuaXQ6 dHksCisgICAgICAgICAkZHN0X3VuaXQ6dHksCisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVu Y3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJl YWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAg ICAkc3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBm dW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUg dmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91 bml0CisgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQvYWxpZ25lZCBzcmMvZGVz dCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3Jj X3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQ6aWRlbnQsCisrICAg ICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZCBzcmMv ZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUg c3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkOmlkZW50 CisgICAgICkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjL2RzdCBtdXN0IGJlIHZhbGlk IGZvciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2YgdGhlaXIgdW5pdHMuCisrICAg ICAgICAvLy8KKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1 cm4gU29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUksIHdpdGggdGhlIGZpcnN0IGVs ZW1lbnQgaW4gdGhlIFNvbWUgYmVpbmcKKysgICAgICAgIC8vLyBndWFyYW50ZWVkIHRvIGJlIG5v bi1BU0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0aGUgb2Zmc2V0IHdoZXJlIGl0 IGlzIGZvdW5kCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2Fm ZSBmbiAkbmFtZSgKKyAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3JjX3VuaXQsCisgICAgICAg ICAgICAgZHN0OiAqbXV0ICRkc3RfdW5pdCwKKyAgICAgICAgICAgICBsZW46IHVzaXplLAorICAg ICAgICAgKSAtPiBPcHRpb248KCRzcmNfdW5pdCwgdXNpemUpPiB7CisgICAgICAgICAgICAgbGV0 IG11dCBvZmZzZXQgPSAwdXNpemU7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNo ZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJ TURfU1RSSURFX1NJWkVgIGVsZW1lbnRzLgorICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJ WkUgPD0gbGVuIHsKKyAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4g LSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAvLyBYWFggU2hvdWxkIHdlIGZp cnN0IHByb2Nlc3Mgb25lIHN0cmlkZSB1bmNvbmRpdGlvbmFsbHkgYXMgdW5hbGlnbmVkIHRvCisg ICAgICAgICAgICAgICAgIC8vIGF2b2lkIHRoZSBjb3N0IG9mIHRoZSBicmFuY2hpbmVzcyBiZWxv dyBpZiB0aGUgZmlyc3Qgc3RyaWRlIGZhaWxzIGFueXdheT8KKyAgICAgICAgICAgICAgICAgLy8g WFhYIFNob3VsZCB3ZSBqdXN0IHVzZSB1bmFsaWduZWQgU1NFMiBhY2Nlc3MgdW5jb25kaXRpb25h bGx5PyBJdCBzZWVtcyB0aGF0CisgICAgICAgICAgICAgICAgIC8vIG9uIEhhc3dlbGwsIGl0IHdv dWxkIG1ha2Ugc2Vuc2UgdG8ganVzdCB1c2UgdW5hbGlnbmVkIGFuZCBub3QgYm90aGVyCisgICAg ICAgICAgICAgICAgIC8vIGNoZWNraW5nLiBOZWVkIHRvIGJlbmNobWFyayBvbGRlciBhcmNoaXRl Y3R1cmVzIGJlZm9yZSBkZWNpZGluZy4KKyAgICAgICAgICAgICAgICAgbGV0IGRzdF9tYXNrZWQg PSAoZHN0IGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0s7CisrICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogY2hlY2tpbmcgd2hldGhlciBzcmMgaXMgYWxpZ25lZAorICAgICAgICAgICAg ICAgICBpZiAoKHNyYyBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKSA9PSAwIHsKKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogQ2hlY2tpbmcgd2hldGhlciBkc3QgaXMgYWxp Z25lZAorICAgICAgICAgICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBXZSdyZSB2YWxpZCB0byByZWFkL3dyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxlbWVu dHMgYW5kIGhhdmUgdGhlIGFwcHJvcHJpYXRlIGFsaWdubWVudHMKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgISRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0 LmFkZChvZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpF YCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAg ZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBXZSdyZSB2YWxpZCB0byByZWFkL3dyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxl bWVudHMgYW5kIGhhdmUgdGhlIGFwcHJvcHJpYXRlIGFsaWdubWVudHMKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBk c3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJ WkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpF YCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICBpZiBkc3RfbWFza2VkID09IDAg eworICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3JpdGUgU0lNRF9TVFJJREVf U0laRSBlbGVtZW50cyBhbmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxpZ25tZW50cworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9kc3RfYWxpZ25lZChzcmMuYWRkKG9m ZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9T VFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RS SURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgdG8gcmVhZC93cml0ZSBTSU1EX1NUUklE RV9TSVpFIGVsZW1lbnRzIGFuZCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBhbGlnbm1lbnRzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMu YWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0g U0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJ TURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB3aGls ZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVzZXMgbGVuIGlu dmFyaWFudCBoZXJlIGFuZCBiZWxvdworICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0g KihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcg eworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1cGhvbGRzIHNhZmV0eS11c2FibGUg aW52YXJpYW50CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBv ZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAqKGRzdC5hZGQo b2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgTm9uZQorICAgICAgICAgfQor ICAgICB9OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBh c2NpaV9zaW1kX2NoZWNrX2FsaWduX3Vucm9sbGVkIHsKKyAgICAgKAorICAgICAgICAgJG5hbWU6 aWRlbnQsCisgICAgICAgICAkc3JjX3VuaXQ6dHksCisgICAgICAgICAkZHN0X3VuaXQ6dHksCisr ICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3Jj L2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpF IHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwK KysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91 bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1E X1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX3NyY19hbGln bmVkOmlkZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWly ZSB1bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBT SU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX25laXRo ZXJfYWxpZ25lZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0 IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0 aW5nIDIqU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJGRvdWJs ZV9zdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1 bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2 YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIDIqU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3Rf dW5pdAorICAgICAgICAgJGRvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQKKyAgICAgKSA9 PiB7CistICAgICAgICAjW2lubGluZShhbHdheXMpXQorKyAgICAgICAgLy8vIFNhZmV0eTogc3Jj L2RzdCBtdXN0IGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2Yg dGhlaXIgdW5pdHMuCisrICAgICAgICAvLy8KKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGlu dmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUks IHdpdGggdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIFNvbWUgYmVpbmcKKysgICAgICAgIC8vLyBn dWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0 aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZvdW5kICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAg ICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZSgKKyAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3Jj X3VuaXQsCisgICAgICAgICAgICAgZHN0OiAqbXV0ICRkc3RfdW5pdCwKKyAgICAgICAgICAgICBs ZW46IHVzaXplLAorICAgICAgICAgKSAtPiBPcHRpb248KCRzcmNfdW5pdCwgdXNpemUpPiB7Cisg ICAgICAgICAgICAgbGV0IHVuaXRfc2l6ZSA9IDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JHNyY191 bml0PigpOworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOworICAgICAgICAg ICAgIC8vIFRoaXMgbG9vcCBpcyBvbmx5IGJyb2tlbiBvdXQgb2YgYXMgYSBnb3RvIGZvcndhcmQg d2l0aG91dAorICAgICAgICAgICAgIC8vIGFjdHVhbGx5IGxvb3BpbmcKKyAgICAgICAgICAgICAn b3V0ZXI6IGxvb3AgeworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sg c3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgU0lNRF9T VFJJREVfU0laRWAgZWxlbWVudHMuCisgICAgICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJ WkUgPD0gbGVuIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIEZpcnN0LCBwcm9jZXNzIG9uZSB1 bmFsaWduZWQKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBpcyBzYWZlIHRv IGNhbGwgc2luY2Ugd2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZC93cml0ZQorICAgICAgICAgICAg ICAgICAgICAgaWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYywgZHN0KSB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWsgJ291dGVyOworICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gU0lNRF9TVFJJREVfU0laRTsKKyAKKyAgICAg ICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgbm93IHNlZW4gMTYgQVNDSUkgYnl0ZXMuIExldCdz IGd1ZXNzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlIHdpbGwgYmUgZW5vdWdo IG1vcmUgdG8ganVzdGlmeSBtb3JlIGV4cGVuc2UKKyAgICAgICAgICAgICAgICAgICAgIC8vIGlu IHRoZSBjYXNlIG9mIG5vbi1BU0NJSS4KKyAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSBhbGln bmVkIHJlYWRzIGZvciB0aGUgc2FrZSBvZiBvbGQgbWljcm9hY2hpdGVjdHVyZXMuCisrICAgICAg ICAgICAgICAgICAgICAvLworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGNv cnJlY3RseSBjYWxjdWxhdGVzIHRoZSBudW1iZXIgb2Ygc3JjX3VuaXRzIHRoYXQgbmVlZCB0byBi ZSByZWFkIGJlZm9yZSB0aGUgcmVtYWluaW5nIGxpc3QgaXMgYWxpZ25lZC4KKysgICAgICAgICAg ICAgICAgICAgIC8vIFRoaXMgaXMgbGVzcyB0aGF0IFNJTURfQUxJR05NRU5ULCB3aGljaCBpcyBh bHNvIFNJTURfU1RSSURFX1NJWkUgKGFzIGRvY3VtZW50ZWQpCisgICAgICAgICAgICAgICAgICAg ICBsZXQgdW50aWxfYWxpZ25tZW50ID0gKChTSU1EX0FMSUdOTUVOVAorICAgICAgICAgICAgICAg ICAgICAgICAgIC0gKChzcmMuYWRkKG9mZnNldCkgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRf TUFTSykpCisgICAgICAgICAgICAgICAgICAgICAgICAgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKQor ICAgICAgICAgICAgICAgICAgICAgICAgIC8gdW5pdF9zaXplOworLSAgICAgICAgICAgICAgICAg ICAgLy8gVGhpcyBhZGRpdGlvbiB3b24ndCBvdmVyZmxvdywgYmVjYXVzZSBldmVuIGluIHRoZSAz Mi1iaXQgUEFFIGNhc2UgdGhlCisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMg YWRkaXRpb24gd29uJ3Qgb3ZlcmZsb3csIGJlY2F1c2UgZXZlbiBpbiB0aGUgMzItYml0IFBBRSBj YXNlIHRoZQorICAgICAgICAgICAgICAgICAgICAgLy8gYWRkcmVzcyBzcGFjZSBob2xkcyBlbm91 Z2ggY29kZSB0aGF0IHRoZSBzbGljZSBsZW5ndGggY2FuJ3QgYmUgdGhhdAorICAgICAgICAgICAg ICAgICAgICAgLy8gY2xvc2UgdG8gYWRkcmVzcyBzcGFjZSBzaXplLgorICAgICAgICAgICAgICAg ICAgICAgLy8gb2Zmc2V0IG5vdyBlcXVhbHMgU0lNRF9TVFJJREVfU0laRSwgaGVuY2UgdGltZXMg MyBiZWxvdy4KKysgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcv d3JpdGluZyBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHBsdXMgYHVu dGlsX2FsaWdubWVudGAuCisrICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZXh0cmEgU0lNRF9T VFJJREVfU0laRSBpbiB0aGUgY29uZGl0aW9uIGlzIGJlY2F1c2UgYG9mZnNldGAgaXMgYWxyZWFk eSBgU0lNRF9TVFJJREVfU0laRWAuCisgICAgICAgICAgICAgICAgICAgICBpZiB1bnRpbF9hbGln bm1lbnQgKyAoU0lNRF9TVFJJREVfU0laRSAqIDMpIDw9IGxlbiB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICE9IDAgeworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMgc2FmZSB0byBjYWxsIHNpbmNlIHdlJ3JlIHZhbGlk IGZvciB0aGlzIHJlYWQvd3JpdGUgKGFuZCBtb3JlKSwgYW5kIGRvbid0IGNhcmUgYWJvdXQgYWxp Z25tZW50CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBjb3B5IG92 ZXIgYnl0ZXMgdGhhdCBnZXQgZGVjb2RlZCB0d2ljZSBzaW5jZSBpdCdzIG5vdCBpbmNyZW1lbnRp bmcgYG9mZnNldGAgYnkgU0lNRF9TVFJJREVfU0laRS4gVGhpcyBpcyBmaW5lLgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChv ZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSB1bnRpbF9hbGlnbm1lbnQ7CisgICAgICAgICAgICAg ICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogQXQgdGhp cyBwb2ludCB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIDIqU0lNRF9TVFJJREVfU0la RSBlbGVtZW50cworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogTm93IGBvZmZz ZXRgIGlzIGFsaWduZWQgZm9yIGBzcmNgCisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxl bl9taW51c19zdHJpZGVfdGltZXNfdHdvID0gbGVuIC0gKFNJTURfU1RSSURFX1NJWkUgKiAyKTsK KysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgd2hldGhlciBkc3Qg aXMgYWxpZ25lZAorICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkc3RfbWFza2VkID0gKGRz dC5hZGQob2Zmc2V0KSBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLOworICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGRzdF9tYXNrZWQgPT0gMCB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBib3RoIGFyZSBhbGlnbmVkLCB3ZSBjYW4gY2FsbCB0aGUgYWxpZ25lZCBmdW5jdGlvbi4g V2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBkb3VibGUgc3RyaWRlIGZyb20gdGhlIGlu aXRpYWwgY29uZGl0aW9uCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQg dGhlIGxvb3AgYnJlYWsgY29uZGl0aW9uIGJlbG93CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBsZXQgU29tZShhZHZhbmNlKSA9CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGRvdWJsZV9zdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwg ZHN0LmFkZChvZmZzZXQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBhZHZhbmNlOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5h ZGQob2Zmc2V0KSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiB1c2VzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IG9uIGFzY2lpX3RvX2FzY2lpX3NpbWRf ZG91YmxlX3N0cmlkZSB0byByZXR1cm4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBndWFyYW50ZWVkIG5vbi1hc2NpaQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgKiAyOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJ REVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NU UklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSdyZSB2YWxpZCBmb3Ig cmVhZGluZy93cml0aW5nIG9uZSBtb3JlLCBhbmQgY2FuIHN0aWxsIGFzc3VtZSBhbGlnbm1lbnQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0la RSA8PSBsZW4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVf Ym90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgJ291dGVyOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogb25seSBzcmMgaXMgYWxpZ25lZCBoZXJlLiBXZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93 cml0aW5nIGRvdWJsZSBzdHJpZGUgZnJvbSB0aGUgaW5pdGlhbCBjb25kaXRpb24KKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgbG9vcCBicmVhayBjb25kaXRpb24g YmVsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKGFkdmFu Y2UpID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZG91YmxlX3N0cmlk ZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gYWR2YW5jZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXNlcyBzYWZldHktdXNhYmxlIGlu dmFyaWFudCBvbiBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGUgdG8gcmV0dXJuCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ3VhcmFudGVlZCBub24tYXNj aWkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29k ZV91bml0LCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpF ICogMjsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBp cyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFs d2F5cyBoYXZlIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVu Y2ggbmV4dCB0aW1lLgorKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zm c2V0ID4gbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28geworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBvbmUgbW9y ZSwgYW5kIGNhbiBzdGlsbCBhc3N1bWUgYWxpZ25tZW50CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zm c2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWsgJ291dGVyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJ WkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIEF0IG1vc3QgdHdvIGl0ZXJhdGlvbnMsIHNvIHVucm9sbAorICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGUgY2hlY2sgYWJvdmUgZW5zdXJl cyB3ZSdyZSBhbGxvd2VkIHRvIHJlYWQvd3JpdGUgdGhpcywgYW5kIHdlIGRvbid0IHVzZSBhbGln bm1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVpdGhlcl9h bGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0la RTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVf U0laRSA8PSBsZW4geworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBUaGUgY2hlY2sgYWJvdmUgZW5zdXJlcyB3ZSdyZSBhbGxvd2VkIHRvIHJlYWQvd3JpdGUgdGhp cywgYW5kIHdlIGRvbid0IHVzZSBhbGlnbm1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5h ZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgYnJlYWsg J291dGVyOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4g eworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHJlbGllcyBzdHJhaWdodGZvcndhcmRseSBv biB0aGUgYGxlbmAgaW52YXJpYW50CisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAq KHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7 CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQg aGVyZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0 KSk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNl dCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAg fTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgbGF0aW4x X3NpbWRfY2hlY2tfYWxpZ24geworICAgICAoCisgICAgICAgICAkbmFtZTppZGVudCwKKyAgICAg ICAgICRzcmNfdW5pdDp0eSwKKyAgICAgICAgICRkc3RfdW5pdDp0eSwKKysgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFy ZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0 X3VuaXQKKyAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8g U2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMv ZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUg c3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQsCisr ICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZC9h bGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9T VFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9kc3RfYWxpZ25l ZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUg dW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lN RF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9uZWl0aGVy X2FsaWduZWQ6aWRlbnQKKysKKyAgICAgKSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMv ZHN0IG11c3QgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0 aGVpciB1bml0cy4KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5z YWZlIGZuICRuYW1lKHNyYzogKmNvbnN0ICRzcmNfdW5pdCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwg bGVuOiB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOworKyAg ICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBm b3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cy4K KyAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAg ICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRTsKKysgICAg ICAgICAgICAgICAgLy8gV2hldGhlciBkc3QgaXMgYWxpZ25lZAorICAgICAgICAgICAgICAgICBs ZXQgZHN0X21hc2tlZCA9IChkc3QgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSzsKKysg ICAgICAgICAgICAgICAgLy8gV2hldGhlciBzcmMgaXMgYWxpZ25lZAorICAgICAgICAgICAgICAg ICBpZiAoKHNyYyBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKSA9PSAwIHsKKyAgICAg ICAgICAgICAgICAgICAgIGlmIGRzdF9tYXNrZWQgPT0gMCB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogQm90 aCB3ZXJlIGFsaWduZWQsIHdlIGNhbiB1c2UgdGhlIGFsaWduZWQgZnVuY3Rpb24KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQp LCBkc3QuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQg Kz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2ggbWVh bnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdlJ3JlIHZhbGlkIGZvcgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0la RSBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVu X21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHdh cyBhbGlnbmVkLCBkc3Qgd2FzIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3Ry aWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVu IC0gU0lNRF9TVFJJREVfU0laRWAsIHdoaWNoIG1lYW5zIGluIHRoZSBuZXh0IGl0ZXJhdGlvbiB3 ZSdyZSB2YWxpZCBmb3IKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZy93 cml0aW5nIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICBpZiBkc3Rf bWFza2VkID09IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyB3YXMgYWxpZ25lZCwgZHN0IHdhcyBu b3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZChzcmMu YWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVg LCB3aGljaCBtZWFucyBpbiB0aGUgbmV4dCBpdGVyYXRpb24gd2UncmUgdmFsaWQgZm9yCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBTSU1E X1NUUklERV9TSVpFIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBv ZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBOZWl0aGVyIHdlcmUgYWxpZ25lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk c3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpF OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNl dCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgLCB3aGljaCBtZWFucyBpbiB0aGUgbmV4dCBpdGVy YXRpb24gd2UncmUgdmFsaWQgZm9yCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJl YWRpbmcvd3JpdGluZyBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAg IHdoaWxlIG9mZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogcmVsaWVz IHN0cmFpZ2h0Zm9yd2FyZGx5IG9uIHRoZSBgbGVuYCBpbnZhcmlhbnQKKyAgICAgICAgICAgICAg ICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAg Kihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAg ICAgICAgb2Zmc2V0ICs9IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9Owor IH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBsYXRpbjFfc2lt ZF9jaGVja19hbGlnbl91bnJvbGxlZCB7CisgICAgICgKKyAgICAgICAgICRuYW1lOmlkZW50LAor ICAgICAgICAgJHNyY191bml0OnR5LAorICAgICAgICAgJGRzdF91bml0OnR5LAorKyAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRo YXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5p dC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCisrICAgICAg ICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVk IHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVf U0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVu dCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGln bmVkL2FsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBT SU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX2RzdF9h bGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVx dWlyZSB1bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGlu ZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX25l aXRoZXJfYWxpZ25lZDppZGVudAorICAgICApID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNy Yy9kc3QgbXVzdCBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9m IHRoZWlyIHVuaXRzLgorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1 bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgJHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0 LCBsZW46IHVzaXplKSB7CisgICAgICAgICAgICAgbGV0IHVuaXRfc2l6ZSA9IDo6Y29yZTo6bWVt OjpzaXplX29mOjo8JHNyY191bml0PigpOworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0g MHVzaXplOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3 ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpF YCBlbGVtZW50cy4KKyAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Cisr ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBjb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUg bnVtYmVyIG9mIHNyY191bml0cyB0aGF0IG5lZWQgdG8gYmUgcmVhZCBiZWZvcmUgdGhlIHJlbWFp bmluZyBsaXN0IGlzIGFsaWduZWQuCisrICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYnkgZGVm aW5pdGlvbiBsZXNzIHRoYW4gU0lNRF9TVFJJREVfU0laRS4KKyAgICAgICAgICAgICAgICAgbGV0 IG11dCB1bnRpbF9hbGlnbm1lbnQgPSAoKFNJTURfU1RSSURFX1NJWkUKKyAgICAgICAgICAgICAg ICAgICAgIC0gKChzcmMgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykpCisgICAgICAg ICAgICAgICAgICAgICAmIFNJTURfQUxJR05NRU5UX01BU0spCisgICAgICAgICAgICAgICAgICAg ICAvIHVuaXRfc2l6ZTsKKyAgICAgICAgICAgICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50ICE9 IDAgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGEgc3RyYWlnaHRm b3J3YXJkIGNvcHksIHNpbmNlIHVudGlsX2FsaWdubWVudCBpcyA8IFNJTURfU1RSSURFX1NJWkUg PCBsZW4sIHRoaXMgaXMgaW4tYm91bmRzCisgICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQo b2Zmc2V0KSkgPSAqKHNyYy5hZGQob2Zmc2V0KSkgYXMgJGRzdF91bml0OworICAgICAgICAgICAg ICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAgICAgICAgICAgICAgICAgICB1bnRpbF9hbGlnbm1l bnQgLT0gMTsKKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IGhlcmUgb2Zmc2V0IHdpbGwgYmUgYHVudGlsX2FsaWdubWVudGAsIGkuZS4gZW5vdWdoIHRvIGFs aWduIGBzcmNgLgorICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAt IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBj aGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGAy ICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMuCisgICAgICAgICAgICAgICAgIGlmIG9mZnNl dCArIFNJTURfU1RSSURFX1NJWkUgKiAyIDw9IGxlbiB7CisgICAgICAgICAgICAgICAgICAgICBs ZXQgbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28gPSBsZW5fbWludXNfc3RyaWRlIC0gU0lNRF9T VFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYXQgdGhpcyBwb2lu dCBzcmMgaXMga25vd24gdG8gYmUgYWxpZ25lZCBhdCBvZmZzZXQsIGRzdCBpcyBub3QuCisgICAg ICAgICAgICAgICAgICAgICBpZiAoZHN0LmFkZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJ R05NRU5UX01BU0sgPT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgY2hlY2tlZCBhbGlnbm1lbnQg b2YgZHN0IGFib3ZlLCB3ZSBjYW4gdXNlIHRoZSBhbGlnbm1lbnQgZnVuY3Rpb25zLiBXZSdyZSBh bGxvd2VkIHRvIHJlYWQvd3JpdGUgMipTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzLCB3aGljaCB3 ZSBkby4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQo c3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9m ZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJ REVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlz IGBvZmZzZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3 YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5j aCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxl bl9taW51c19zdHJpZGVfdGltZXNfdHdvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiB3ZSBlbnN1cmVkIGFsaWdubWVudCBvZiBzcmMgYWxyZWFkeS4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5h ZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1E X1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX3NyY19h bGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJ TURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAyICog U0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3 byB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1l YW5zIHdlIGFyZSB2YWxpZCB0byBtdW5jaCBTSU1EX1NUUklERV9TSVpFIG1vcmUgZWxlbWVudHMs IHdoaWNoIHdlIGRvCisgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA8IGxlbl9taW51c19zdHJp ZGUgeworICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9m ZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g U0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IHVzZXMgbGVuIGludmFyaWFudCBoZXJlIGFuZCBiZWxvdworICAgICAgICAgICAgICAgICBs ZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAvLyBP biB4ODZfNjQsIHRoaXMgbG9vcCBhdXRvdmVjdG9yaXplcyBidXQgaW4gdGhlIHBhY2sKKyAgICAg ICAgICAgICAgICAgLy8gY2FzZSB0aGVyZSBhcmUgaW5zdHJ1Y3Rpb25zIHdob3NlIHB1cnBvc2Ug aXMgdG8gbWFrZSBzdXJlCisgICAgICAgICAgICAgICAgIC8vIGVhY2ggdTE2IGluIHRoZSB2ZWN0 b3IgaXMgdHJ1bmNhdGVkIGJlZm9yZSBwYWNraW5nLiBIb3dldmVyLAorICAgICAgICAgICAgICAg ICAvLyBzaW5jZSB3ZSBkb24ndCBjYXJlIGFib3V0IHNhdHVyYXRpbmcgYmVoYXZpb3Igb2YgU1NF MiBwYWNraW5nCisgICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIGlucHV0IGlzbid0IExhdGlu MSwgdGhvc2UgaW5zdHJ1Y3Rpb25zIGFyZSB1c2VsZXNzLgorICAgICAgICAgICAgICAgICAvLyBV bmZvcnR1bmF0ZWx5LCB1c2luZyB0aGUgYGFzc3VtZWAgaW50cmluc2ljIHRvIGxpZSB0byB0aGUK KyAgICAgICAgICAgICAgICAgLy8gb3B0aW1pemVyIGRvZXNuJ3QgbWFrZSBMTFZNIG9taXQgdGhl IHRydW5jdGF0aW9uIHRoYXQgd2UKK0BAIC02ODgsMTM4ICs4NjksMTgwIEBAIG1hY3JvX3J1bGVz ISBsYXRpbjFfc2ltZF9jaGVja19hbGlnbl91bnIKKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyAjW2FsbG93 KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBhc2NpaV9zaW1kX3VuYWxpZ24geworKyAg ICAvLyBTYWZldHk6IHN0cmlkZV9uZWl0aGVyX2FsaWduZWQgbXVzdCBiZSBhIGZ1bmN0aW9uIHRo YXQgcmVxdWlyZXMgc3JjL2Rlc3QgYmUgdmFsaWQgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMg Zm9yIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5pdC9kZXN0X3VuaXQK KyAgICAgKCRuYW1lOmlkZW50LCAkc3JjX3VuaXQ6dHksICRkc3RfdW5pdDp0eSwgJHN0cmlkZV9u ZWl0aGVyX2FsaWduZWQ6aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQg ZHN0IG11c3QgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBsZW4gZWxlbWVudHMgb2YgdHlw ZSBzcmNfdW5pdC9kc3RfdW5pdAorKyAgICAgICAgLy8vCisrICAgICAgICAvLy8gU2FmZXR5LXVz YWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9u LUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBTb21lIGJlaW5nCisrICAgICAg ICAvLy8gZ3VhcmFudGVlZCB0byBiZSBub24tQVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQg YmVpbmcgdGhlIG9mZnNldCB3aGVyZSBpdCBpcyBmb3VuZAorICAgICAgICAgI1tpbmxpbmUoYWx3 YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoCisgICAgICAgICAgICAgc3JjOiAq Y29uc3QgJHNyY191bml0LAorICAgICAgICAgICAgIGRzdDogKm11dCAkZHN0X3VuaXQsCisgICAg ICAgICAgICAgbGVuOiB1c2l6ZSwKKyAgICAgICAgICkgLT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVz aXplKT4geworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOworKyAgICAgICAg ICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVh ZGluZy93cml0aW5nIGF0IGxlYXN0IGBzdHJpZGVgIGVsZW1lbnRzLgorICAgICAgICAgICAgIGlm IFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKyAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51 c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICBsb29w IHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Uga25vdyB3ZSdyZSB2YWxpZCBm b3IgYHN0cmlkZWAgcmVhZHMvd3JpdGVzLCBzbyB3ZSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLiBX ZSBkb24ndCBuZWVkIGFsaWdubWVudC4KKyAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRl X25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAg ICAgICAgICAgICAvLyBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBzdHJpZGVgIHdoaWNoIG1lYW5z IHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBzdHJpZGVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQg dGltZS4KKyAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUg eworICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHdoaWxl IG9mZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXNlcyBsZW4gaW52 YXJpYW50IGhlcmUgYW5kIGJlbG93CisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAq KHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7 CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQg aGVyZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0 KSk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNl dCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAg fTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgbGF0aW4x X3NpbWRfdW5hbGlnbiB7CisrICAgIC8vIFNhZmV0eTogc3RyaWRlX25laXRoZXJfYWxpZ25lZCBt dXN0IGJlIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJlcyBzcmMvZGVzdCBiZSB2YWxpZCBmb3IgdW5h bGlnbmVkIHJlYWRzL3dyaXRlcyBmb3IgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBvZiB0eXBl IHNyY191bml0L2Rlc3RfdW5pdAorICAgICAoJG5hbWU6aWRlbnQsICRzcmNfdW5pdDp0eSwgJGRz dF91bml0OnR5LCAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVudCkgPT4geworKyAgICAgICAg Ly8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgdW5hbGlnbmVkIHJlYWRz L3dyaXRlcyBvZiBsZW4gZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAq Y29uc3QgJHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46IHVzaXplKSB7CisgICAg ICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7CisrICAgICAgICAgICAgLy8gU2FmZXR5 OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcg YXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMuCisgICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVf U0laRSA8PSBsZW4geworICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxl biAtIFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHdlJ3JlIHZhbGlkIGZvciBgc3RyaWRlYCBy ZWFkcy93cml0ZXMsIHNvIHdlIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uIFdlIGRvbid0IG5lZWQg YWxpZ25tZW50LgorICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQo c3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAvLyBUaGlz IGlzIGBvZmZzZXQgPiBsZW4gLSBzdHJpZGVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0 IGxlYXN0IGBzdHJpZGVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAg ICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Cisr ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXNlcyBsZW4gaW52YXJpYW50IGhlcmUKKyAgICAg ICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAg ICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQor ICAgICB9OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBh c2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBt dXN0IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5h bGlnbmVkLiAoY2FuZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWdu ZWQpYCBmdW5jdGlvbnMpCisgICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTpp ZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxp ZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KKysgICAgICAgIC8vLyB0 aGUgJGxvYWQvJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93 cml0ZXMgb3IgcmVxdWlyZQorKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBv ciB1OHgxNi4KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZl IGZuICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTgpIC0+IGJvb2wgeworICAgICAg ICAgICAgIGxldCBzaW1kID0gJGxvYWQoc3JjKTsKKyAgICAgICAgICAgICBpZiAhc2ltZF9pc19h c2NpaShzaW1kKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgJHN0b3JlKGRzdCwgc2ltZCk7CisgICAgICAgICAgICAgdHJ1ZQor ICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1h Y3JvX3J1bGVzISBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGUgeworKyAgICAvLyBT YWZldHk6IHN0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDMyIGJ5dGVzIG9mIHdyaXRlLCB3aGljaCBt YXkgYmUgdW5hbGlnbmVkIChjYW5kaWRhdGVzOiBgc3RvcmUoOHwxNilfKGFsaWduZWR8dW5hbGln bmVkKWApCisgICAgICgkbmFtZTppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7CisrICAgICAgICAv Ly8gU2FmZXR5OiBzcmMgbXVzdCBiZSB2YWxpZCBmb3IgMzIgYnl0ZXMgb2YgYWxpZ25lZCB1OHgx NiByZWFkCisrICAgICAgICAvLy8gZHN0IG11c3QgYmUgdmFsaWQgZm9yIDMyIGJ5dGVzIG9mIHVu YWxpZ25lZCB3cml0ZSBhY2NvcmRpbmcgdG8KKysgICAgICAgIC8vLyB0aGUgJHN0b3JlIGZuLCB3 aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCB3cml0ZXMgb3IgcmVxdWlyZQorKyAgICAgICAg Ly8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4KKysgICAgICAgIC8vLworKyAg ICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBSZXR1cm5zIFNvbWUoaW5kZXgpIGlm IHRoZSBlbGVtZW50IGF0IGBpbmRleGAgaXMgaW52YWxpZCBBU0NJSQorICAgICAgICAgI1tpbmxp bmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTgs IGRzdDogKm11dCB1OCkgLT4gT3B0aW9uPHVzaXplPiB7CisgICAgICAgICAgICAgbGV0IGZpcnN0 ID0gbG9hZDE2X2FsaWduZWQoc3JjKTsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kID0gbG9hZDE2 X2FsaWduZWQoc3JjLmFkZChTSU1EX1NUUklERV9TSVpFKSk7CisgICAgICAgICAgICAgJHN0b3Jl KGRzdCwgZmlyc3QpOworICAgICAgICAgICAgIGlmIHVubGlrZWx5KCFzaW1kX2lzX2FzY2lpKGZp cnN0IHwgc2Vjb25kKSkgeworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG1hc2tfYXNjaWkg cHJvZHVjZXMgYSBtYXNrIG9mIGFsbCB0aGUgaGlnaCBiaXRzLgorICAgICAgICAgICAgICAgICBs ZXQgbWFza19maXJzdCA9IG1hc2tfYXNjaWkoZmlyc3QpOworICAgICAgICAgICAgICAgICBpZiBt YXNrX2ZpcnN0ICE9IDAgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvbiBsaXR0 bGUgZW5kaWFuIHN5c3RlbXMgdGhpcyB3aWxsIGJlIHRoZSBudW1iZXIgb2YgYXNjaWkgYnl0ZXMK KysgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUu IHZhbGlkIGZvciBpbmRleGluZyBzcmMKKysgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gU0FG RVRZOiBXaGF0IGFib3V0IGJpZy1lbmRpYW4gc3lzdGVtcz8KKyAgICAgICAgICAgICAgICAgICAg IHJldHVybiBTb21lKG1hc2tfZmlyc3QudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZSk7CisgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgJHN0b3JlKGRzdC5hZGQoU0lNRF9TVFJJ REVfU0laRSksIHNlY29uZCk7CisgICAgICAgICAgICAgICAgIGxldCBtYXNrX3NlY29uZCA9IG1h c2tfYXNjaWkoc2Vjb25kKTsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvbiBsaXR0bGUg ZW5kaWFuIHN5c3RlbXMgdGhpcyB3aWxsIGJlIHRoZSBudW1iZXIgb2YgYXNjaWkgYnl0ZXMKKysg ICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoZSBmaXJzdCBub24tYXNjaWksIGkuZS4gdmFsaWQg Zm9yIGluZGV4aW5nIHNyYworICAgICAgICAgICAgICAgICByZXR1cm4gU29tZShTSU1EX1NUUklE RV9TSVpFICsgbWFza19zZWNvbmQudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZSk7CisgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUpLCBz ZWNvbmQpOworICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisg I1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfdG9fYmFzaWNfbGF0 aW5fc2ltZF9zdHJpZGUgeworKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVzdCBiZSB2YWxp ZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZC4gKGNh bmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVkKWAgZnVuY3Rp b25zKQorICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsK KysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIDE2LzMy IGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCisrICAgICAgICAvLy8gdGhlICRsb2Fk LyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9y IHJlcXVpcmUKKysgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYu CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFt ZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHUxNikgLT4gYm9vbCB7CisgICAgICAgICAgICAg bGV0IHNpbWQgPSAkbG9hZChzcmMpOworICAgICAgICAgICAgIGlmICFzaW1kX2lzX2FzY2lpKHNp bWQpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICBsZXQgKGZpcnN0LCBzZWNvbmQpID0gc2ltZF91bnBhY2soc2ltZCk7CisgICAg ICAgICAgICAgJHN0b3JlKGRzdCwgZmlyc3QpOworICAgICAgICAgICAgICRzdG9yZShkc3QuYWRk KDgpLCBzZWNvbmQpOworICAgICAgICAgICAgIHRydWUKKyAgICAgICAgIH0KKyAgICAgfTsKKyB9 CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfdG9fYmFz aWNfbGF0aW5fc2ltZF9kb3VibGVfc3RyaWRlIHsKKysgICAgLy8gU2FmZXR5OiBzdG9yZSBtdXN0 IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiB3cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZAor ICAgICAoJG5hbWU6aWRlbnQsICRzdG9yZTppZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0 eTogc3JjIG11c3QgYmUgdmFsaWQgZm9yIDIqU0lNRF9TVFJJREVfU0laRSBieXRlcyBvZiBhbGln bmVkIHJlYWRzLAorKyAgICAgICAgLy8vIGFsaWduZWQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYu CisrICAgICAgICAvLy8gZHN0IG11c3QgYmUgdmFsaWQgZm9yIDIqU0lNRF9TVFJJREVfU0laRSBi eXRlcyBvZiBhbGlnbmVkIG9yIHVuYWxpZ25lZCByZWFkcworICAgICAgICAgI1tpbmxpbmUoYWx3 YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTgsIGRzdDog Km11dCB1MTYpIC0+IE9wdGlvbjx1c2l6ZT4geworICAgICAgICAgICAgIGxldCBmaXJzdCA9IGxv YWQxNl9hbGlnbmVkKHNyYyk7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9IGxvYWQxNl9hbGln bmVkKHNyYy5hZGQoU0lNRF9TVFJJREVfU0laRSkpOworICAgICAgICAgICAgIGxldCAoYSwgYikg PSBzaW1kX3VucGFjayhmaXJzdCk7CisgICAgICAgICAgICAgJHN0b3JlKGRzdCwgYSk7CisrICAg ICAgICAgICAgLy8gU2FmZXR5OiBkaXZpZGUgYnkgMiBzaW5jZSBpdCdzIGEgdTE2IHBvaW50ZXIK KyAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklERV9TSVpFIC8gMiksIGIpOwor ICAgICAgICAgICAgIGlmIHVubGlrZWx5KCFzaW1kX2lzX2FzY2lpKGZpcnN0IHwgc2Vjb25kKSkg eworICAgICAgICAgICAgICAgICBsZXQgbWFza19maXJzdCA9IG1hc2tfYXNjaWkoZmlyc3QpOwor ICAgICAgICAgICAgICAgICBpZiBtYXNrX2ZpcnN0ICE9IDAgeworICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFNvbWUobWFza19maXJzdC50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplKTsKKyAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBsZXQgKGMsIGQpID0gc2ltZF91bnBh Y2soc2Vjb25kKTsKKyAgICAgICAgICAgICAgICAgJHN0b3JlKGRzdC5hZGQoU0lNRF9TVFJJREVf U0laRSksIGMpOworQEAgLTgzMiw0NyArMTA1NSw1OSBAQCBtYWNyb19ydWxlcyEgYXNjaWlfdG9f YmFzaWNfbGF0aW5fc2ltZF9kCisgICAgICAgICAgICAgJHN0b3JlKGRzdC5hZGQoU0lNRF9TVFJJ REVfU0laRSArIChTSU1EX1NUUklERV9TSVpFIC8gMikpLCBkKTsKKyAgICAgICAgICAgICBOb25l CisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisg bWFjcm9fcnVsZXMhIHVucGFja19zaW1kX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogbG9hZC9z dG9yZSBtdXN0IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkg YmUgdW5hbGlnbmVkLiAoY2FuZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVk fGFsaWduZWQpYCBmdW5jdGlvbnMpCisgICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRz dG9yZTppZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBi ZSB2YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KKysgICAgICAg IC8vLyB0aGUgJGxvYWQvJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCBy ZWFkcy93cml0ZXMgb3IgcmVxdWlyZQorKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIg MTZ4OCBvciB1OHgxNi4KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIg dW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTE2KSB7CisgICAgICAg ICAgICAgbGV0IHNpbWQgPSAkbG9hZChzcmMpOworICAgICAgICAgICAgIGxldCAoZmlyc3QsIHNl Y29uZCkgPSBzaW1kX3VucGFjayhzaW1kKTsKKyAgICAgICAgICAgICAkc3RvcmUoZHN0LCBmaXJz dCk7CisgICAgICAgICAgICAgJHN0b3JlKGRzdC5hZGQoOCksIHNlY29uZCk7CisgICAgICAgICB9 CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMh IGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIHsKKysgICAgLy8gU2FmZXR5OiBsb2Fk L3N0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1h eSBiZSB1bmFsaWduZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWdu ZWR8YWxpZ25lZClgIGZ1bmN0aW9ucykKKyAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwg JHN0b3JlOmlkZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0 IGJlIHZhbGlkIGZvciAzMi8xNiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bworKyAg ICAgICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGln bmVkIHJlYWRzL3dyaXRlcyBvciByZXF1aXJlCisrICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVp dGhlciAxNng4IG9yIHU4eDE2LgorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAg IHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTE2LCBkc3Q6ICptdXQgdTgpIC0+IGJv b2wgeworICAgICAgICAgICAgIGxldCBmaXJzdCA9ICRsb2FkKHNyYyk7CisgICAgICAgICAgICAg bGV0IHNlY29uZCA9ICRsb2FkKHNyYy5hZGQoOCkpOworICAgICAgICAgICAgIGlmIHNpbWRfaXNf YmFzaWNfbGF0aW4oZmlyc3QgfCBzZWNvbmQpIHsKKyAgICAgICAgICAgICAgICAgJHN0b3JlKGRz dCwgc2ltZF9wYWNrKGZpcnN0LCBzZWNvbmQpKTsKKyAgICAgICAgICAgICAgICAgdHJ1ZQorICAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAg fQorICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQor IG1hY3JvX3J1bGVzISBwYWNrX3NpbWRfc3RyaWRlIHsKKysgICAgLy8gU2FmZXR5OiBsb2FkL3N0 b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBi ZSB1bmFsaWduZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8 YWxpZ25lZClgIGZ1bmN0aW9ucykKKyAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0 b3JlOmlkZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJl IHZhbGlkIGZvciAzMi8xNiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bworKyAgICAg ICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVk IHJlYWRzL3dyaXRlcyBvciByZXF1aXJlCisrICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhl ciAxNng4IG9yIHU4eDE2LgorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1 YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTE2LCBkc3Q6ICptdXQgdTgpIHsKKyAgICAg ICAgICAgICBsZXQgZmlyc3QgPSAkbG9hZChzcmMpOworICAgICAgICAgICAgIGxldCBzZWNvbmQg PSAkbG9hZChzcmMuYWRkKDgpKTsKKyAgICAgICAgICAgICAkc3RvcmUoZHN0LCBzaW1kX3BhY2so Zmlyc3QsIHNlY29uZCkpOworICAgICAgICAgfQorICAgICB9OworIH0KK0BAIC04ODgsMjQgKzEx MjMsMjggQEAgY2ZnX2lmISB7CisgLy8gICAgICAgIHB1YiBjb25zdCBBTElHTk1FTlQ6IHVzaXpl ID0gODsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7 CisgCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVDogdXNpemUgPSA4OworIAorICAg ICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSA3OworIAorKyAgICAg ICAgLy8gU2FmZXR5IGZvciBzdHJpZGUgbWFjcm9zOiBXZSBzdGljayB0byB0aGUgbG9hZDhfYWxp Z25lZC9ldGMgZmFtaWx5IG9mIGZ1bmN0aW9ucy4gV2UgY29uc2lzdGVudGx5IHByb2R1Y2UKKysg ICAgICAgIC8vIG5laXRoZXJfdW5hbGlnbmVkIHZhcmlhbnRzIHVzaW5nIG9ubHkgdW5hbGlnbmVk IGlucHV0cy4KKyAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19h c2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9yZTE2X3Vu YWxpZ25lZCk7CisgCisgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX3N0cmlkZSEo YXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDE2X3VuYWxp Z25lZCwgc3RvcmU4X3VuYWxpZ25lZCk7CisgICAgICAgICB1bnBhY2tfc2ltZF9zdHJpZGUhKHVu cGFja19zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9yZThfdW5h bGlnbmVkKTsKKyAKKyAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShi YXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkOF91bmFsaWdu ZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tf c3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25l ZCk7CisgCisrICAgICAgICAvLyBTYWZldHkgZm9yIGNvbnZlcnNpb24gbWFjcm9zOiBXZSB1c2Ug dGhlIHVuYWxpZ24gbWFjcm8gd2l0aCB1bmFsaWduIGZ1bmN0aW9ucyBhYm92ZS4gQWxsIHN0cmlk ZSBmdW5jdGlvbnMgd2VyZSBwcm9kdWNlZAorKyAgICAgICAgLy8gYnkgc3RyaWRlIG1hY3JvcyB0 aGF0IHVuaXZlcnNhbGx5IG11bmNoIGEgc2luZ2xlIFNJTURfU1RSSURFX1NJWkUgd29ydGggb2Yg ZWxlbWVudHMuCisgICAgICAgICBhc2NpaV9zaW1kX3VuYWxpZ24hKGFzY2lpX3RvX2FzY2lpLCB1 OCwgdTgsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOworICAgICAgICAg YXNjaWlfc2ltZF91bmFsaWduIShhc2NpaV90b19iYXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlf dG9fYmFzaWNfbGF0aW5fc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV9z aW1kX3VuYWxpZ24hKGJhc2ljX2xhdGluX3RvX2FzY2lpLCB1MTYsIHU4LCBiYXNpY19sYXRpbl90 b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGxhdGluMV9zaW1kX3Vu YWxpZ24hKHVucGFja19sYXRpbjEsIHU4LCB1MTYsIHVucGFja19zdHJpZGVfbmVpdGhlcl9hbGln bmVkKTsKKyAgICAgICAgIGxhdGluMV9zaW1kX3VuYWxpZ24hKHBhY2tfbGF0aW4xLCB1MTYsIHU4 LCBwYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOworICAgICB9IGVsc2UgaWYgI1tjZmcoYWxs KGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0 X2ZlYXR1cmUgPSAibmVvbiIpKV0geworICAgICAgICAgLy8gU0lNRCB3aXRoIGRpZmZlcmVudCBp bnN0cnVjdGlvbnMgZm9yIGFsaWduZWQgYW5kIHVuYWxpZ25lZCBsb2FkcyBhbmQgc3RvcmVzLgor ICAgICAgICAgLy8KK0BAIC05MTQsMTYgKzExNTMsMTkgQEAgY2ZnX2lmISB7CisgICAgICAgICAv LyBidXQgdGhlIGJlbmNobWFyayByZXN1bHRzIEkgc2VlIGRvbid0IGFncmVlLgorIAorICAgICAg ICAgcHViIGNvbnN0IFNJTURfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7CisgCisgICAgICAgICBw dWIgY29uc3QgTUFYX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAgICAgICAgcHViIGNv bnN0IFNJTURfQUxJR05NRU5UX01BU0s6IHVzaXplID0gMTU7CisgCisrICAgICAgICAvLyBTYWZl dHkgZm9yIHN0cmlkZSBtYWNyb3M6IFdlIHN0aWNrIHRvIHRoZSBsb2FkOF9hbGlnbmVkL2V0YyBm YW1pbHkgb2YgZnVuY3Rpb25zLiBXZSBjb25zaXN0ZW50bHkgbmFtZQorKyAgICAgICAgLy8gYWxp Z25lZC91bmFsaWduZWQgZnVuY3Rpb25zIGFjY29yZGluZyB0byBzcmMvZHN0IGJlaW5nIGFsaWdu ZWQvdW5hbGlnbmVkCisrCisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNj aWlfdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxpZ25lZCwgbG9hZDE2X2FsaWduZWQsIHN0b3JlMTZf YWxpZ25lZCk7CisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9f YXNjaWlfc3RyaWRlX3NyY19hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3RvcmUxNl91bmFsaWdu ZWQpOworICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lp X3N0cmlkZV9kc3RfYWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsK KyAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zdHJp ZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7 CisgCisgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX3N0cmlkZSEoYXNjaWlfdG9f YmFzaWNfbGF0aW5fc3RyaWRlX2JvdGhfYWxpZ25lZCwgbG9hZDE2X2FsaWduZWQsIHN0b3JlOF9h bGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfc3RyaWRlIShhc2Np aV90b19iYXNpY19sYXRpbl9zdHJpZGVfc3JjX2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9y ZThfdW5hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfc3RyaWRl IShhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfZHN0X2FsaWduZWQsIGxvYWQxNl91bmFsaWdu ZWQsIHN0b3JlOF9hbGlnbmVkKTsKK0BAIC05MzksMzYgKzExODEsNDMgQEAgY2ZnX2lmISB7Cisg ICAgICAgICBiYXNpY19sYXRpbl90b19hc2NpaV9zaW1kX3N0cmlkZSEoYmFzaWNfbGF0aW5fdG9f YXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfYWxpZ25l ZCk7CisgICAgICAgICBiYXNpY19sYXRpbl90b19hc2NpaV9zaW1kX3N0cmlkZSEoYmFzaWNfbGF0 aW5fdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9y ZTE2X3VuYWxpZ25lZCk7CisgCisgICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlk ZV9ib3RoX2FsaWduZWQsIGxvYWQ4X2FsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAg ICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9zcmNfYWxpZ25lZCwgbG9hZDhfYWxpZ25l ZCwgc3RvcmUxNl91bmFsaWduZWQpOworICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19z dHJpZGVfZHN0X2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsKKyAg ICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9h ZDhfdW5hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7CisgCisrICAgICAgICAvLyBTYWZldHkg Zm9yIGNvbnZlcnNpb24gbWFjcm9zOiBXZSB1c2UgdGhlIGNvcnJlY3QgcGF0dGVybiBvZiBib3Ro L3NyYy9kc3QvbmVpdGhlciBoZXJlLiBBbGwgc3RyaWRlIGZ1bmN0aW9ucyB3ZXJlIHByb2R1Y2Vk CisrICAgICAgICAvLyBieSBzdHJpZGUgbWFjcm9zIHRoYXQgdW5pdmVyc2FsbHkgbXVuY2ggYSBz aW5nbGUgU0lNRF9TVFJJREVfU0laRSB3b3J0aCBvZiBlbGVtZW50cy4KKysKKyAgICAgICAgIGFz Y2lpX3NpbWRfY2hlY2tfYWxpZ24hKGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgsIGFzY2lpX3RvX2Fz Y2lpX3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25l ZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zdHJp ZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3NpbWRfY2hlY2tfYWxpZ24hKGFz Y2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVf Ym90aF9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfc3JjX2FsaWduZWQsIGFz Y2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9kc3RfYWxpZ25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0 aW5fc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2Fs aWduIShiYXNpY19sYXRpbl90b19hc2NpaSwgdTE2LCB1OCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlf c3RyaWRlX2JvdGhfYWxpZ25lZCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX3NyY19hbGln bmVkLCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfZHN0X2FsaWduZWQsIGJhc2ljX2xhdGlu X3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOworICAgICAgICAgbGF0aW4xX3NpbWRf Y2hlY2tfYWxpZ24hKHVucGFja19sYXRpbjEsIHU4LCB1MTYsIHVucGFja19zdHJpZGVfYm90aF9h bGlnbmVkLCB1bnBhY2tfc3RyaWRlX3NyY19hbGlnbmVkLCB1bnBhY2tfc3RyaWRlX2RzdF9hbGln bmVkLCB1bnBhY2tfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgICAgICBsYXRpbjFfc2lt ZF9jaGVja19hbGlnbiEocGFja19sYXRpbjEsIHUxNiwgdTgsIHBhY2tfc3RyaWRlX2JvdGhfYWxp Z25lZCwgcGFja19zdHJpZGVfc3JjX2FsaWduZWQsIHBhY2tfc3RyaWRlX2RzdF9hbGlnbmVkLCBw YWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOworICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKGZl YXR1cmUgPSAic2ltZC1hY2NlbCIsIHRhcmdldF9mZWF0dXJlID0gInNzZTIiKSldIHsKKyAgICAg ICAgIC8vIFNJTUQgd2l0aCBkaWZmZXJlbnQgaW5zdHJ1Y3Rpb25zIGZvciBhbGlnbmVkIGFuZCB1 bmFsaWduZWQgbG9hZHMgYW5kIHN0b3Jlcy4KKyAgICAgICAgIC8vCisgICAgICAgICAvLyBOZXdl ciBtaWNyb2FyY2hpdGVjdHVyZXMgYXJlIG5vdCBzdXBwb3NlZCB0byBoYXZlIGEgcGVyZm9ybWFu Y2UgZGlmZmVyZW5jZSBiZXR3ZWVuCisgICAgICAgICAvLyBhbGlnbmVkIGFuZCB1bmFsaWduZWQg U1NFMiBsb2FkcyBhbmQgc3RvcmVzIHdoZW4gdGhlIGFkZHJlc3MgaXMgYWN0dWFsbHkgYWxpZ25l ZCwKKyAgICAgICAgIC8vIGJ1dCB0aGUgYmVuY2htYXJrIHJlc3VsdHMgSSBzZWUgZG9uJ3QgYWdy ZWUuCisgCisgICAgICAgICBwdWIgY29uc3QgU0lNRF9TVFJJREVfU0laRTogdXNpemUgPSAxNjsK KyAKKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogVGhpcyBzaG91bGQgYmUg aWRlbnRpY2FsIHRvIFNJTURfU1RSSURFX1NJWkUgKHVzZWQgYnkgYXNjaWlfc2ltZF9jaGVja19h bGlnbl91bnJvbGxlZCkKKyAgICAgICAgIHB1YiBjb25zdCBTSU1EX0FMSUdOTUVOVDogdXNpemUg PSAxNjsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7 CisgCisgICAgICAgICBwdWIgY29uc3QgU0lNRF9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAxNTsK KyAKKysgICAgICAgIC8vIFNhZmV0eSBmb3Igc3RyaWRlIG1hY3JvczogV2Ugc3RpY2sgdG8gdGhl IGxvYWQ4X2FsaWduZWQvZXRjIGZhbWlseSBvZiBmdW5jdGlvbnMuIFdlIGNvbnNpc3RlbnRseSBu YW1lCisrICAgICAgICAvLyBhbGlnbmVkL3VuYWxpZ25lZCBmdW5jdGlvbnMgYWNjb3JkaW5nIHRv IHNyYy9kc3QgYmVpbmcgYWxpZ25lZC91bmFsaWduZWQKKysKKyAgICAgICAgIGFzY2lpX3RvX2Fz Y2lpX3NpbWRfZG91YmxlX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3RyaWRl X2JvdGhfYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3RvX2FzY2lp X3NpbWRfZG91YmxlX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlX3Ny Y19hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7CisgCisgICAgICAgICBhc2NpaV90b19iYXNp Y19sYXRpbl9zaW1kX2RvdWJsZV9zdHJpZGUhKGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfZG91 YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQsIHN0b3JlOF9hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lp X3RvX2Jhc2ljX2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZSEoYXNjaWlfdG9fYmFzaWNfbGF0aW5f c2ltZF9kb3VibGVfc3RyaWRlX3NyY19hbGlnbmVkLCBzdG9yZThfdW5hbGlnbmVkKTsKKyAKKyAg ICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zdHJpZGVf Ym90aF9hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsKKyAgICAgICAg IGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zdHJpZGVfc3JjX2Fs aWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7CitAQCAtOTg0LDMzICsx MjMzLDQzIEBAIGNmZ19pZiEgeworICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9z dHJpZGUhKGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9ib3RoX2FsaWduZWQsIGxvYWQ4X2Fs aWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBiYXNpY19sYXRpbl90b19hc2NpaV9z aW1kX3N0cmlkZSEoYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX3NyY19hbGlnbmVkLCBsb2Fk OF9hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7CisgICAgICAgICBiYXNpY19sYXRpbl90b19h c2NpaV9zaW1kX3N0cmlkZSEoYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVk LCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBiYXNpY19sYXRp bl90b19hc2NpaV9zaW1kX3N0cmlkZSEoYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX25laXRo ZXJfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7CisgCisgICAg ICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9ib3RoX2FsaWduZWQsIGxvYWQ4X2Fs aWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNr X3N0cmlkZV9zcmNfYWxpZ25lZCwgbG9hZDhfYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOwor IAorKyAgICAgICAgLy8gU2FmZXR5IGZvciBjb252ZXJzaW9uIG1hY3JvczogV2UgdXNlIHRoZSBj b3JyZWN0IHBhdHRlcm4gb2YgYm90aC9zcmMvZHN0L25laXRoZXIvZG91YmxlX2JvdGgvZG91Ymxl X3NyYyBoZXJlLiBBbGwgc3RyaWRlIGZ1bmN0aW9ucyB3ZXJlIHByb2R1Y2VkCisrICAgICAgICAv LyBieSBzdHJpZGUgbWFjcm9zIHRoYXQgdW5pdmVyc2FsbHkgbXVuY2ggYSBzaW5nbGUgU0lNRF9T VFJJREVfU0laRSB3b3J0aCBvZiBlbGVtZW50cy4KKysKKyAgICAgICAgIGFzY2lpX3NpbWRfY2hl Y2tfYWxpZ25fdW5yb2xsZWQhKGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgsIGFzY2lpX3RvX2FzY2lp X3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25lZCwg YXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc2lt ZF9kb3VibGVfc3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVf c3RyaWRlX3NyY19hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3NpbWRfY2hlY2tfYWxpZ25fdW5y b2xsZWQhKGFzY2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19iYXNpY19sYXRp bl9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfc3JjX2Fs aWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGFzY2lp X3RvX2Jhc2ljX2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3Rv X2Jhc2ljX2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZCk7CisgCisgICAgICAg ICBhc2NpaV9zaW1kX2NoZWNrX2FsaWduIShiYXNpY19sYXRpbl90b19hc2NpaSwgdTE2LCB1OCwg YmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxpZ25lZCwgYmFzaWNfbGF0aW5fdG9f YXNjaWlfc3RyaWRlX3NyY19hbGlnbmVkLCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfZHN0 X2FsaWduZWQsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOwor ICAgICAgICAgbGF0aW4xX3NpbWRfY2hlY2tfYWxpZ25fdW5yb2xsZWQhKHVucGFja19sYXRpbjEs IHU4LCB1MTYsIHVucGFja19zdHJpZGVfYm90aF9hbGlnbmVkLCB1bnBhY2tfc3RyaWRlX3NyY19h bGlnbmVkLCB1bnBhY2tfc3RyaWRlX2RzdF9hbGlnbmVkLCB1bnBhY2tfc3RyaWRlX25laXRoZXJf YWxpZ25lZCk7CisgICAgICAgICBsYXRpbjFfc2ltZF9jaGVja19hbGlnbl91bnJvbGxlZCEocGFj a19sYXRpbjEsIHUxNiwgdTgsIHBhY2tfc3RyaWRlX2JvdGhfYWxpZ25lZCwgcGFja19zdHJpZGVf c3JjX2FsaWduZWQsIHBhY2tfc3RyaWRlX2RzdF9hbGlnbmVkLCBwYWNrX3N0cmlkZV9uZWl0aGVy X2FsaWduZWQpOworICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0 dGxlIiwgdGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKSldIHsKKyAgICAgICAgIC8vIEFsaWdu ZWQgQUxVIHdvcmQsIGxpdHRsZS1lbmRpYW4sIDY0LWJpdAorIAorKyAgICAgICAgLy8vIFNhZmV0 eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIGFtb3VudCBvZiBieXRlcyBjb25zdW1lZCBieQorKyAg ICAgICAgLy8vIHVucGFja19hbHUuIFRoaXMgd2lsbCBiZSB0d2ljZSB0aGUgcG9pbnRlciB3aWR0 aCwgYXMgaXQgY29uc3VtZXMgdHdvIHVzaXplcy4KKysgICAgICAgIC8vLyBUaGlzIGlzIGFsc28g dGhlIG51bWJlciBvZiBieXRlcyBwcm9kdWNlZCBieSBwYWNrX2FsdS4KKysgICAgICAgIC8vLyBU aGlzIGlzIGFsc28gdGhlIG51bWJlciBvZiB1MTYgY29kZSB1bml0cyBwcm9kdWNlZC9jb25zdW1l ZCBieSB1bnBhY2tfYWx1L3BhY2tfYWx1IHJlc3BlY3RpdmVseS4KKyAgICAgICAgIHB1YiBjb25z dCBBTFVfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7CisgCisgICAgICAgICBwdWIgY29uc3QgTUFY X1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFu dDogdGhpcyBpcyB0aGUgcG9pbnRlciB3aWR0aCBpbiBieXRlcworICAgICAgICAgcHViIGNvbnN0 IEFMVV9BTElHTk1FTlQ6IHVzaXplID0gODsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlh bnQ6IHRoaXMgaXMgYSBtYXNrIGZvciBnZXR0aW5nIHRoZSBiaXRzIG9mIGEgcG9pbnRlciBub3Qg YWxpZ25lZCB0byBBTFVfQUxJR05NRU5UCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVO VF9NQVNLOiB1c2l6ZSA9IDc7CisgCisrICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2lu dCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyBmb3VyIGB1c2l6ZWBzCisgICAgICAgICAjW2lu bGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHVucGFja19hbHUod29yZDogdXNpemUs IHNlY29uZF93b3JkOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7CisgICAgICAgICAgICAgbGV0 IGZpcnN0ID0gKCgweDAwMDBfMDAwMF9GRjAwXzAwMDB1c2l6ZSAmIHdvcmQpIDw8IDI0KSB8Cisg ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8wMEZGXzAwMDB1c2l6ZSAmIHdv cmQpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8wMDAw X0ZGMDB1c2l6ZSAmIHdvcmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMHgw MDAwXzAwMDBfMDAwMF8wMEZGdXNpemUgJiB3b3JkKTsKKyAgICAgICAgICAgICBsZXQgc2Vjb25k ID0gKCgweEZGMDBfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDgpIHwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+ IDE2KSB8CitAQCAtMTAxOSwyMiArMTI3OCwyNCBAQCBjZmdfaWYhIHsKKyAgICAgICAgICAgICBs ZXQgdGhpcmQgPSAoKDB4MDAwMF8wMDAwX0ZGMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8 IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8wMEZGXzAwMDB1 c2l6ZSAmIHNlY29uZF93b3JkKSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICgo MHgwMDAwXzAwMDBfMDAwMF9GRjAwdXNpemUgJiBzZWNvbmRfd29yZCkgPDwgOCkgfAorICAgICAg ICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDAwMF8wMDAwXzAwRkZ1c2l6ZSAmIHNlY29uZF93 b3JkKTsKKyAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweEZGMDBfMDAwMF8wMDAwXzAwMDB1 c2l6ZSAmIHNlY29uZF93b3JkKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgo MHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMTYpIHwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfRkYwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29u ZF93b3JkKSA+PiAyNCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZG XzAwMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDMyKTsKKysgICAgICAgICAgICAvLyBT YWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7 CisgICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZDsKKyAgICAgICAgICAgICAqKGRz dC5hZGQoMikpID0gdGhpcmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsK KyAgICAgICAgIH0KKyAKKysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZh bGlkIHNwYWNlIGZvciB3cml0aW5nIHR3byBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3 YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDog dXNpemUsIHRoaXJkOiB1c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Cisg ICAgICAgICAgICAgbGV0IHdvcmQgPSAoKDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXplICYgc2Vj b25kKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGXzAwMDBf MDAwMHVzaXplICYgc2Vjb25kKSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgw eDAwMDBfMDAwMF8wMEZGXzAwMDB1c2l6ZSAmIHNlY29uZCkgPDwgMjQpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDAwMF8wMEZGdXNpemUgJiBzZWNvbmQpIDw8IDMy KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXpl ICYgZmlyc3QpID4+IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZG XzAwMDBfMDAwMHVzaXplICYgZmlyc3QpID4+IDE2KSB8CitAQCAtMTA0Myw3MCArMTMwNCw4OCBA QCBjZmdfaWYhIHsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAoKDB4MDBGRl8wMDAw XzAwMDBfMDAwMHVzaXplICYgZm91cnRoKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAwMDB1c2l6ZSAmIGZvdXJ0aCkgPDwgMTYpIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwRkZfMDAwMHVz aXplICYgZm91cnRoKSA8PCAyNCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo MHgwMDAwXzAwMDBfMDAwMF8wMEZGdXNpemUgJiBmb3VydGgpIDw8IDMyKSB8CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHRoaXJk KSA+PiAyNCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZf MDAwMF8wMDAwdXNpemUgJiB0aGlyZCkgPj4gMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoKDB4MDAwMF8wMDAwXzAwRkZfMDAwMHVzaXplICYgdGhpcmQpID4+IDgpIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwMDBfMDAwMF8wMEZGdXNpemUg JiB0aGlyZCk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJl CisgICAgICAgICAgICAgKmRzdCA9IHdvcmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9 IHNlY29uZF93b3JkOworICAgICAgICAgfQorICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdl dF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKSldIHsKKyAg ICAgICAgIC8vIEFsaWduZWQgQUxVIHdvcmQsIGxpdHRsZS1lbmRpYW4sIDMyLWJpdAorIAorKyAg ICAgICAgLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIGFtb3VudCBvZiBieXRlcyBj b25zdW1lZCBieQorKyAgICAgICAgLy8vIHVucGFja19hbHUuIFRoaXMgd2lsbCBiZSB0d2ljZSB0 aGUgcG9pbnRlciB3aWR0aCwgYXMgaXQgY29uc3VtZXMgdHdvIHVzaXplcy4KKysgICAgICAgIC8v LyBUaGlzIGlzIGFsc28gdGhlIG51bWJlciBvZiBieXRlcyBwcm9kdWNlZCBieSBwYWNrX2FsdS4K KysgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51bWJlciBvZiB1MTYgY29kZSB1bml0cyBw cm9kdWNlZC9jb25zdW1lZCBieSB1bnBhY2tfYWx1L3BhY2tfYWx1IHJlc3BlY3RpdmVseS4KKyAg ICAgICAgIHB1YiBjb25zdCBBTFVfU1RSSURFX1NJWkU6IHVzaXplID0gODsKKyAKKyAgICAgICAg IHB1YiBjb25zdCBNQVhfU1RSSURFX1NJWkU6IHVzaXplID0gODsKKyAKKysgICAgICAgIC8vIFNh ZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIHBvaW50ZXIgd2lkdGggaW4gYnl0ZXMKKyAgICAg ICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UOiB1c2l6ZSA9IDQ7CisgCisrICAgICAgICAvLyBT YWZldHkgaW52YXJpYW50OiB0aGlzIGlzIGEgbWFzayBmb3IgZ2V0dGluZyB0aGUgYml0cyBvZiBh IHBvaW50ZXIgbm90IGFsaWduZWQgdG8gQUxVX0FMSUdOTUVOVAorICAgICAgICAgcHViIGNvbnN0 IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAzOworIAorKyAgICAgICAgLy8vIFNhZmV0eTog ZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgZm91ciBgdXNpemVgcwor ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiB1bnBhY2tfYWx1 KHdvcmQ6IHVzaXplLCBzZWNvbmRfd29yZDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgeworICAg ICAgICAgICAgIGxldCBmaXJzdCA9ICgoMHgwMDAwX0ZGMDB1c2l6ZSAmIHdvcmQpIDw8IDgpIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHdvcmQpOworICAg ICAgICAgICAgIGxldCBzZWNvbmQgPSAoKDB4RkYwMF8wMDAwdXNpemUgJiB3b3JkKSA+PiA4KSB8 CisgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHdvcmQpID4+ IDE2KTsKKyAgICAgICAgICAgICBsZXQgdGhpcmQgPSAoKDB4MDAwMF9GRjAwdXNpemUgJiBzZWNv bmRfd29yZCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDBGRnVz aXplICYgc2Vjb25kX3dvcmQpOworICAgICAgICAgICAgIGxldCBmb3VydGggPSAoKDB4RkYwMF8w MDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAg ICAoKDB4MDBGRl8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMTYpOworKyAgICAgICAgICAg IC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICpkc3QgPSBm aXJzdDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kOworICAgICAgICAgICAg ICooZHN0LmFkZCgyKSkgPSB0aGlyZDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMykpID0gZm91 cnRoOworICAgICAgICAgfQorIAorKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQg dG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgdHdvIGB1c2l6ZWBzCisgICAgICAgICAjW2lubGlu ZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHBhY2tfYWx1KGZpcnN0OiB1c2l6ZSwgc2Vj b25kOiB1c2l6ZSwgdGhpcmQ6IHVzaXplLCBmb3VydGg6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUp IHsKKyAgICAgICAgICAgICBsZXQgd29yZCA9ICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHNlY29uZCkg PDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRnVzaXplICYgc2Vj b25kKSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXpl ICYgZmlyc3QpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDBGRnVz aXplICYgZmlyc3QpOworICAgICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICgoMHgwMEZGXzAw MDB1c2l6ZSAmIGZvdXJ0aCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgoMHgwMDAwXzAwRkZ1c2l6ZSAmIGZvdXJ0aCkgPDwgMTYpIHwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiB0aGlyZCkgPj4gOCkgfAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgdGhpcmQpOworKyAg ICAgICAgICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAg ICpkc3QgPSB3b3JkOworICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsK KyAgICAgICAgIH0KKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFuID0gImJp ZyIsIHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IikpXSB7CisgICAgICAgICAvLyBBbGlnbmVk IEFMVSB3b3JkLCBiaWctZW5kaWFuLCA2NC1iaXQKKyAKKysgICAgICAgIC8vLyBTYWZldHkgaW52 YXJpYW50OiB0aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQgYnkKKysgICAgICAg IC8vLyB1bnBhY2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFz IGl0IGNvbnN1bWVzIHR3byB1c2l6ZXMuCisrICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBu dW1iZXIgb2YgYnl0ZXMgcHJvZHVjZWQgYnkgcGFja19hbHUuCisrICAgICAgICAvLy8gVGhpcyBp cyBhbHNvIHRoZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQvY29uc3VtZWQgYnkg dW5wYWNrX2FsdS9wYWNrX2FsdSByZXNwZWN0aXZlbHkuCisgICAgICAgICBwdWIgY29uc3QgQUxV X1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJ REVfU0laRTogdXNpemUgPSAxNjsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRo aXMgaXMgdGhlIHBvaW50ZXIgd2lkdGggaW4gYnl0ZXMKKyAgICAgICAgIHB1YiBjb25zdCBBTFVf QUxJR05NRU5UOiB1c2l6ZSA9IDg7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0 aGlzIGlzIGEgbWFzayBmb3IgZ2V0dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90IGFsaWdu ZWQgdG8gQUxVX0FMSUdOTUVOVAorICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFT SzogdXNpemUgPSA3OworIAorKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8g dmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgZm91ciBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUo YWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNv bmRfd29yZDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCBmaXJz dCA9ICgoMHhGRjAwXzAwMDBfMDAwMF8wMDAwdXNpemUgJiB3b3JkKSA+PiA4KSB8CisgICAgICAg ICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiB3b3JkKSA+ PiAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF9GRjAwXzAwMDBfMDAw MHVzaXplICYgd29yZCkgPj4gMjQpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw MDBfMDBGRl8wMDAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDMyKTsKKyAgICAgICAgICAgICBsZXQg c2Vjb25kID0gKCgweDAwMDBfMDAwMF9GRjAwXzAwMDB1c2l6ZSAmIHdvcmQpIDw8IDI0KSB8Cisg ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8wMEZGXzAwMDB1c2l6ZSAmIHdv cmQpIDw8IDE2KSB8CitAQCAtMTExNSwyMiArMTM5NCwyNCBAQCBjZmdfaWYhIHsKKyAgICAgICAg ICAgICBsZXQgdGhpcmQgPSAoKDB4RkYwMF8wMDAwXzAwMDBfMDAwMHVzaXplICYgc2Vjb25kX3dv cmQpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMF8wMDAw XzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAxNikgfAorICAgICAgICAgICAgICAgICAgICAg ICAgICAoKDB4MDAwMF9GRjAwXzAwMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDI0KSB8 CisgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZfMDAwMF8wMDAwdXNpemUg JiBzZWNvbmRfd29yZCkgPj4gMzIpOworICAgICAgICAgICAgIGxldCBmb3VydGggPSAoKDB4MDAw MF8wMDAwX0ZGMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8IDI0KSB8CisgICAgICAgICAg ICAgICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8wMEZGXzAwMDB1c2l6ZSAmIHNlY29uZF93b3Jk KSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDAwMF9G RjAwdXNpemUgJiBzZWNvbmRfd29yZCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAg ICgweDAwMDBfMDAwMF8wMDAwXzAwRkZ1c2l6ZSAmIHNlY29uZF93b3JkKTsKKysgICAgICAgICAg ICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0g Zmlyc3Q7CisgICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZDsKKyAgICAgICAgICAg ICAqKGRzdC5hZGQoMikpID0gdGhpcmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZv dXJ0aDsKKyAgICAgICAgIH0KKyAKKysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50 IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIHR3byBgdXNpemVgcworICAgICAgICAgI1tpbmxp bmUoYWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNl Y29uZDogdXNpemUsIHRoaXJkOiB1c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXpl KSB7CisgICAgICAgICAgICAgbGV0IHdvcmQgPSAoKDB4MDBGRjAwMDBfMDAwMDAwMDB1c2l6ZSAm IGZpcnN0KSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwRkZfMDAw MDAwMDB1c2l6ZSAmIGZpcnN0KSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgw eDAwMDAwMDAwXzAwRkYwMDAwdXNpemUgJiBmaXJzdCkgPDwgMjQpIHwKKyAgICAgICAgICAgICAg ICAgICAgICAgICgoMHgwMDAwMDAwMF8wMDAwMDBGRnVzaXplICYgZmlyc3QpIDw8IDMyKSB8Cisg ICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRjAwMDBfMDAwMDAwMDB1c2l6ZSAmIHNlY29u ZCkgPj4gMjQpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwMDBGRl8wMDAwMDAw MHVzaXplICYgc2Vjb25kKSA+PiAxNikgfAorQEAgLTExMzksNjcgKzE0MjAsODAgQEAgY2ZnX2lm ISB7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKCgweDAwRkYwMDAwXzAwMDAwMDAw dXNpemUgJiB0aGlyZCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo MHgwMDAwMDBGRl8wMDAwMDAwMHVzaXplICYgdGhpcmQpIDw8IDE2KSB8CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMDAwXzAwRkYwMDAwdXNpemUgJiB0aGlyZCkgPDwg MjQpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwMDBfMDAwMDAw RkZ1c2l6ZSAmIHRoaXJkKSA8PCAzMikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgoMHgwMEZGMDAwMF8wMDAwMDAwMHVzaXplICYgZm91cnRoKSA+PiAyNCkgfAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwMDBGRl8wMDAwMDAwMHVzaXplICYgZm91cnRo KSA+PiAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwMDAwMF8w MEZGMDAwMHVzaXplICYgZm91cnRoKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDB4MDAwMDAwMDBfMDAwMDAwRkZ1c2l6ZSAmICBmb3VydGgpOworKyAgICAgICAgICAg IC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICpkc3QgPSB3 b3JkOworICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKKyAgICAgICAg IH0KKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFuID0gImJpZyIsIHRhcmdl dF9wb2ludGVyX3dpZHRoID0gIjMyIikpXSB7CisgICAgICAgICAvLyBBbGlnbmVkIEFMVSB3b3Jk LCBiaWctZW5kaWFuLCAzMi1iaXQKKyAKKysgICAgICAgIC8vLyBTYWZldHkgaW52YXJpYW50OiB0 aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQgYnkKKysgICAgICAgIC8vLyB1bnBh Y2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFzIGl0IGNvbnN1 bWVzIHR3byB1c2l6ZXMuCisrICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2Yg Ynl0ZXMgcHJvZHVjZWQgYnkgcGFja19hbHUuCisrICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRo ZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQvY29uc3VtZWQgYnkgdW5wYWNrX2Fs dS9wYWNrX2FsdSByZXNwZWN0aXZlbHkuCisgICAgICAgICBwdWIgY29uc3QgQUxVX1NUUklERV9T SVpFOiB1c2l6ZSA9IDg7CisgCisgICAgICAgICBwdWIgY29uc3QgTUFYX1NUUklERV9TSVpFOiB1 c2l6ZSA9IDg7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIHRoZSBw b2ludGVyIHdpZHRoIGluIGJ5dGVzCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVDog dXNpemUgPSA0OworIAorKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyBhIG1h c2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVyIG5vdCBhbGlnbmVkIHRvIEFMVV9B TElHTk1FTlQKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6IHVzaXplID0g MzsKKyAKKysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlkIHNwYWNl IGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisg ICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1c2l6ZSwgc2Vjb25kX3dvcmQ6IHVz aXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKyAgICAgICAgICAgICBsZXQgZmlyc3QgPSAoKDB4RkYw MF8wMDAwdXNpemUgJiB3b3JkKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgo MHgwMEZGXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDE2KTsKKyAgICAgICAgICAgICBsZXQgc2Vjb25k ID0gKCgweDAwMDBfRkYwMHVzaXplICYgd29yZCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAg ICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgd29yZCk7CisgICAgICAgICAgICAgbGV0IHRoaXJk ID0gKCgweEZGMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDgpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDE2KTsK KyAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweDAwMDBfRkYwMHVzaXplICYgc2Vjb25kX3dv cmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAm IHNlY29uZF93b3JkKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2Vk IGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7CisgICAgICAgICAgICAgKihkc3QuYWRk KDEpKSA9IHNlY29uZDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMikpID0gdGhpcmQ7CisgICAg ICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsKKyAgICAgICAgIH0KKyAKKysgICAgICAg IC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIHR3 byBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBm biBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDogdXNpemUsIHRoaXJkOiB1c2l6ZSwgZm91 cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7CisgICAgICAgICAgICAgbGV0IHdvcmQgPSAo KDB4MDBGRl8wMDAwdXNpemUgJiBmaXJzdCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAg ICAgKCgweDAwMDBfMDBGRnVzaXplICYgZmlyc3QpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAg ICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiBzZWNvbmQpID4+IDgpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgc2Vjb25kKTsKKyAgICAgICAgICAgICBs ZXQgc2Vjb25kX3dvcmQgPSAoKDB4MDBGRl8wMDAwdXNpemUgJiB0aGlyZCkgPDwgOCkgfAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZ1c2l6ZSAmIHRoaXJkKSA8 PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6 ZSAmIGZvdXJ0aCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgweDAw MDBfMDBGRnVzaXplICYgZm91cnRoKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFy aWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gd29yZDsKKyAgICAgICAgICAgICAq KGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7CisgICAgICAgICB9CisgICAgIH0gZWxzZSB7Cisg ICAgICAgICBhc2NpaV9uYWl2ZSEoYXNjaWlfdG9fYXNjaWksIHU4LCB1OCk7CisgICAgICAgICBh c2NpaV9uYWl2ZSEoYXNjaWlfdG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYpOworICAgICAgICAgYXNj aWlfbmFpdmUhKGJhc2ljX2xhdGluX3RvX2FzY2lpLCB1MTYsIHU4KTsKKyAgICAgfQorIH0KKyAK KyBjZmdfaWYhIHsKKysgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHRoaXMgY291bnRz IHRoZSB6ZXJvZXMgZnJvbSB0aGUgImZpcnN0IGJ5dGUiIG9mIHV0Zi04IGRhdGEgcGFja2VkIGlu dG8gYSB1c2l6ZQorKyAgICAvLyB3aXRoIHRoZSB0YXJnZXQgZW5kaWFubmVzcworICAgICBpZiAj W2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXSB7CisgICAgICAgICAjW2FsbG93KGRlYWRf Y29kZSldCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgZm4gY291bnRfemVy b3Mod29yZDogdXNpemUpIC0+IHUzMiB7CisgICAgICAgICAgICAgd29yZC50cmFpbGluZ196ZXJv cygpCisgICAgICAgICB9CisgICAgIH0gZWxzZSB7CisgICAgICAgICAjW2FsbG93KGRlYWRfY29k ZSldCitAQCAtMTIwNywyMDggKzE1MDEsMjcyIEBAIGNmZ19pZiEgeworICAgICAgICAgZm4gY291 bnRfemVyb3Mod29yZDogdXNpemUpIC0+IHUzMiB7CisgICAgICAgICAgICAgd29yZC5sZWFkaW5n X3plcm9zKCkKKyAgICAgICAgIH0KKyAgICAgfQorIH0KKyAKKyBjZmdfaWYhIHsKKyAgICAgaWYg I1tjZmcoYWxsKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIHRhcmdldF9lbmRpYW4gPSAibGl0dGxl IiwgdGFyZ2V0X2FyY2ggPSAiZGlzYWJsZWQiKSldIHsKKysgICAgICAgIC8vLyBTYWZldHktdXNh YmxlIGludmFyaWFudDogV2lsbCByZXR1cm4gdGhlIHZhbHVlIGFuZCBwb3NpdGlvbiBvZiB0aGUg Zmlyc3Qgbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIHNsaWNlIGluIGEgU29tZSBpZiBmb3VuZC4KKysg ICAgICAgIC8vLyBJbiBvdGhlciB3b3JkcywgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIFNvbWUg aXMgYWx3YXlzIGA+IDEyN2AKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBw dWIgZm4gdmFsaWRhdGVfYXNjaWkoc2xpY2U6ICZbdThdKSAtPiBPcHRpb248KHU4LCB1c2l6ZSk+ IHsKKyAgICAgICAgICAgICBsZXQgc3JjID0gc2xpY2UuYXNfcHRyKCk7CisgICAgICAgICAgICAg bGV0IGxlbiA9IHNsaWNlLmxlbigpOworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVz aXplOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdy ZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBzdHJpZGVgIGVsZW1lbnRzLgor ICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKyAgICAgICAgICAgICAg ICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOworICAgICAg ICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIGF0 IG9mZnNldCBpcyB2YWxpZCBmb3IgYSBgU0lNRF9TVFJJREVfU0laRWAgcmVhZAorICAgICAgICAg ICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNyYy5hZGQo b2Zmc2V0KSkgfTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICFzaW1kX2lzX2FzY2lpKHNpbWQp IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAg ICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVf U0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJ WkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAgIGlm IG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgfQorICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7CisgICAgICAgICAgICAg ICAgIGxldCBjb2RlX3VuaXQgPSBzbGljZVtvZmZzZXRdOworICAgICAgICAgICAgICAgICBpZiBj b2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBTYWZldHkt dXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIE5vbmUK KyAgICAgICAgIH0KKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbChmZWF0dXJlID0gInNpbWQtYWNj ZWwiLCB0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIikpXSB7CisrICAgICAgICAvLy8gU2FmZXR5LXVz YWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9u LUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBTb21lIGJlaW5nCisrICAgICAg ICAvLy8gZ3VhcmFudGVlZCB0byBiZSBub24tQVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQg YmVpbmcgdGhlIG9mZnNldCB3aGVyZSBpdCBpcyBmb3VuZAorICAgICAgICAgI1tpbmxpbmUoYWx3 YXlzKV0KKyAgICAgICAgIHB1YiBmbiB2YWxpZGF0ZV9hc2NpaShzbGljZTogJlt1OF0pIC0+IE9w dGlvbjwodTgsIHVzaXplKT4geworICAgICAgICAgICAgIGxldCBzcmMgPSBzbGljZS5hc19wdHIo KTsKKyAgICAgICAgICAgICBsZXQgbGVuID0gc2xpY2UubGVuKCk7CisgICAgICAgICAgICAgbGV0 IG11dCBvZmZzZXQgPSAwdXNpemU7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNo ZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIGF0IGxlYXN0IGBzdHJpZGVgIGVs ZW1lbnRzLgorICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKyAgICAg ICAgICAgICAgICAgLy8gRmlyc3QsIHByb2Nlc3Mgb25lIHVuYWxpZ25lZCB2ZWN0b3IKKysgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgaXMgdmFsaWQgZm9yIGEgYFNJTURfU1RSSURFX1NJ WkVgIHJlYWQKKyAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfdW5h bGlnbmVkKHNyYykgfTsKKyAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSBtYXNrX2FzY2lpKHNp bWQpOworICAgICAgICAgICAgICAgICBpZiBtYXNrICE9IDAgeworICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0ID0gbWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOworICAgICAgICAgICAg ICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsKKyAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOworICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIG9mZnNldCA9IFNJTURfU1RSSURFX1NJ WkU7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogTm93IHRoYXQgb2Zmc2V0IGhhcyBjaGFu Z2VkIHdlIGRvbid0IHlldCBrbm93IGhvdyBtdWNoIGl0IGlzIHZhbGlkIGZvcgorIAorICAgICAg ICAgICAgICAgICAvLyBXZSBoYXZlIG5vdyBzZWVuIDE2IEFTQ0lJIGJ5dGVzLiBMZXQncyBndWVz cyB0aGF0CisgICAgICAgICAgICAgICAgIC8vIHRoZXJlIHdpbGwgYmUgZW5vdWdoIG1vcmUgdG8g anVzdGlmeSBtb3JlIGV4cGVuc2UKKyAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGNhc2Ugb2Yg bm9uLUFTQ0lJLgorICAgICAgICAgICAgICAgICAvLyBVc2UgYWxpZ25lZCByZWFkcyBmb3IgdGhl IHNha2Ugb2Ygb2xkIG1pY3JvYWNoaXRlY3R1cmVzLgorKyAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IHRoaXMgY29ycmVjdGx5IGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBzcmNfdW5pdHMgdGhh dCBuZWVkIHRvIGJlIHJlYWQgYmVmb3JlIHRoZSByZW1haW5pbmcgbGlzdCBpcyBhbGlnbmVkLgor KyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGJ5IGRlZmluaXRpb24gbGVzcyB0aGFuIFNJTURf QUxJR05NRU5ULCB3aGljaCBpcyBkZWZpbmVkIHRvIGJlIGVxdWFsIHRvIFNJTURfU1RSSURFX1NJ WkUuCisgICAgICAgICAgICAgICAgIGxldCB1bnRpbF9hbGlnbm1lbnQgPSB1bnNhZmUgeyAoU0lN RF9BTElHTk1FTlQgLSAoKHNyYy5hZGQob2Zmc2V0KSBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVO VF9NQVNLKSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLIH07CisgICAgICAgICAgICAgICAgIC8vIFRo aXMgYWRkaXRpb24gd29uJ3Qgb3ZlcmZsb3csIGJlY2F1c2UgZXZlbiBpbiB0aGUgMzItYml0IFBB RSBjYXNlIHRoZQorICAgICAgICAgICAgICAgICAvLyBhZGRyZXNzIHNwYWNlIGhvbGRzIGVub3Vn aCBjb2RlIHRoYXQgdGhlIHNsaWNlIGxlbmd0aCBjYW4ndCBiZSB0aGF0CisgICAgICAgICAgICAg ICAgIC8vIGNsb3NlIHRvIGFkZHJlc3Mgc3BhY2Ugc2l6ZS4KKyAgICAgICAgICAgICAgICAgLy8g b2Zmc2V0IG5vdyBlcXVhbHMgU0lNRF9TVFJJREVfU0laRSwgaGVuY2UgdGltZXMgMyBiZWxvdy4K KysgICAgICAgICAgICAgICAgLy8KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlz IGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIGF0IGxlYXN0IGAyICogU0lN RF9TVFJJREVfU0laRWAgZWxlbWVudHMgcGx1cyBgdW50aWxfYWxpZ25tZW50YC4KKysgICAgICAg ICAgICAgICAgLy8gVGhlIGV4dHJhIFNJTURfU1RSSURFX1NJWkUgaW4gdGhlIGNvbmRpdGlvbiBp cyBiZWNhdXNlIGBvZmZzZXRgIGlzIGFscmVhZHkgYFNJTURfU1RSSURFX1NJWkVgLgorICAgICAg ICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgKyAoU0lNRF9TVFJJREVfU0laRSAqIDMpIDw9 IGxlbiB7CisgICAgICAgICAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGlzIHNhZmUgdG8gY2FsbCBz aW5jZSB3ZSdyZSB2YWxpZCBmb3IgdGhpcyByZWFkIChhbmQgbW9yZSksIGFuZCBkb24ndCBjYXJl IGFib3V0IGFsaWdubWVudAorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBj b3B5IG92ZXIgYnl0ZXMgdGhhdCBnZXQgZGVjb2RlZCB0d2ljZSBzaW5jZSBpdCdzIG5vdCBpbmNy ZW1lbnRpbmcgYG9mZnNldGAgYnkgU0lNRF9TVFJJREVfU0laRS4gVGhpcyBpcyBmaW5lLgorICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25l ZChzcmMuYWRkKG9mZnNldCkpIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sg PSBtYXNrX2FzY2lpKHNpbWQpOworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0g MCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBtYXNrLnRyYWlsaW5n X3plcm9zKCkgYXMgdXNpemU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub25f YXNjaWkgPSB1bnNhZmUgeyAqc3JjLmFkZChvZmZzZXQpIH07CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOworICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gdW50aWxf YWxpZ25tZW50OworICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBBdCB0aGlzIHBvaW50IHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIDIqU0lNRF9T VFJJREVfU0laRSBlbGVtZW50cworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBOb3cg YG9mZnNldGAgaXMgYWxpZ25lZCBmb3IgYHNyY2AKKyAgICAgICAgICAgICAgICAgICAgIGxldCBs ZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byA9IGxlbiAtIChTSU1EX1NUUklERV9TSVpFICogMik7 CisgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IFdlIHdlcmUgdmFsaWQgZm9yIHRoaXMgcmVhZCwgYW5kIHdlcmUgYWxpZ25lZC4K KyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlyc3QgPSB1bnNhZmUgeyBsb2FkMTZfYWxp Z25lZChzcmMuYWRkKG9mZnNldCkpIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNl Y29uZCA9IHVuc2FmZSB7IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0ICsgU0lNRF9TVFJJ REVfU0laRSkpIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgIXNpbWRfaXNfYXNjaWko Zmlyc3QgfCBzZWNvbmQpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBtYXNrX2FzY2lpIHByb2R1Y2VzIGEgbWFzayBvZiBhbGwgdGhlIGhpZ2ggYml0cy4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2tfZmlyc3QgPSBtYXNrX2FzY2lpKGZpcnN0 KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWFza19maXJzdCAhPSAwIHsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlh biBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZpcnN0IG5vbi1hc2NpaSwg aS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBUT0RPIFNBRkVUWTogV2hhdCBhYm91dCBiaWctZW5kaWFuIHN5c3RlbXM/CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbWFza19maXJzdC50cmFpbGlu Z196ZXJvcygpIGFzIHVzaXplOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2tfc2Vjb25kID0gbWFz a19hc2NpaShzZWNvbmQpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMgdGhpcyB3aWxsIGJlIHRoZSBudW1iZXIgb2Yg YXNjaWkgYnl0ZXMKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0 aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFICsgbWFz a19zZWNvbmQudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGtu b3cgdGhpcyBpcyBub24tQVNDSUksIGFuZCBjYW4gdXBob2xkIHRoZSBzYWZldHktdXNhYmxlIGlu dmFyaWFudCBoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub25fYXNjaWkg PSB1bnNhZmUgeyAqc3JjLmFkZChvZmZzZXQpIH07CisrCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOworICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJ REVfU0laRSAqIDI7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlz IGBvZmZzZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3 YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5j aCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21p bnVzX3N0cmlkZV90aW1lc190d28geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9Cisr ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2Un cmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgCisgICAgICAg ICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CistICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X2FsaWduZWQo c3JjLmFkZChvZmZzZXQpKSB9OworLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFzayA9 IG1hc2tfYXNjaWkoc2ltZCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBX ZSB3ZXJlIHZhbGlkIGZvciB0aGlzIHJlYWQsIGFuZCB3ZXJlIGFsaWduZWQuCisrICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfYWxpZ25lZChzcmMuYWRk KG9mZnNldCkpIH07CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBtYXNrX2Fz Y2lpIHByb2R1Y2VzIGEgbWFzayBvZiBhbGwgdGhlIGhpZ2ggYml0cy4KKysgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgbWFzayAhPSAwIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMgdGhpcyB3aWxsIGJlIHRoZSBudW1iZXIg b2YgYXNjaWkgYnl0ZXMKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRo ZSBmaXJzdCBub24tYXNjaWksIGkuZS4gdmFsaWQgZm9yIGluZGV4aW5nIHNyYworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVz aXplOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZl IHsgKnNyYy5hZGQob2Zmc2V0KSB9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFdlIGtub3cgdGhpcyBpcyBub24tQVNDSUksIGFuZCBjYW4gdXBob2xkIHRoZSBzYWZl dHktdXNhYmxlIGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsK KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKysgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBpcyB0aGUgdW5hbGlnbmVkIGJyYW5jaAor ICAgICAgICAgICAgICAgICAgICAgLy8gQXQgbW9zdCB0d28gaXRlcmF0aW9ucywgc28gdW5yb2xs CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMg d2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgCisgICAg ICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSdyZSB2YWxpZCBmb3IgdGhpcyBy ZWFkIGJ1dCBtdXN0IHVzZSBhbiB1bmFsaWduZWQgcmVhZAorICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChzcmMuYWRkKG9mZnNldCkp IH07CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSBtYXNrX2FzY2lpKHNpbWQp OworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0gMCB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBtYXNrLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub25fYXNjaWkgPSB1bnNhZmUgeyAq c3JjLmFkZChvZmZzZXQpIH07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJlIChzYW1lIGFzIGFib3ZlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIGF0IGxlYXN0 IGBTSU1EX1NUUklERV9TSVpFYAorICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCAr IFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBXZSdyZSB2YWxpZCBmb3IgdGhpcyByZWFkIGJ1dCBtdXN0IHVzZSBhbiB1bmFs aWduZWQgcmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNh ZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgbWFzayAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldCArPSBtYXNrLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNy Yy5hZGQob2Zmc2V0KSB9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUgKHNhbWUgYXMgYWJvdmUpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQp KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiByZWxpZXMgc3RyYWlnaHRmb3J3YXJkbHkgb24gdGhlIGBsZW5gIGlu dmFyaWFudAorICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gdW5zYWZlIHsgKihzcmMu YWRkKG9mZnNldCkpIH07CisgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Cisr ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVy ZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7 CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAg ICAgICAgICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIHsK KysgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiByZXR1cm5zIGJ5dGUgaW5kZXgg b2YgZmlyc3Qgbm9uLWFzY2lpIGJ5dGUKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAg ICAgICBmbiBmaW5kX25vbl9hc2NpaSh3b3JkOiB1c2l6ZSwgc2Vjb25kX3dvcmQ6IHVzaXplKSAt PiBPcHRpb248dXNpemU+IHsKKyAgICAgICAgICAgICBsZXQgd29yZF9tYXNrZWQgPSB3b3JkICYg QVNDSUlfTUFTSzsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kX21hc2tlZCA9IHNlY29uZF93b3Jk ICYgQVNDSUlfTUFTSzsKKyAgICAgICAgICAgICBpZiAod29yZF9tYXNrZWQgfCBzZWNvbmRfbWFz a2VkKSA9PSAwIHsKKysgICAgICAgICAgICAgICAgLy8gQm90aCBhcmUgYXNjaWksIGludmFyaWFu dCB1cGhlbGQKKyAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CisgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIGlmIHdvcmRfbWFza2VkICE9IDAgeworICAgICAgICAgICAgICAgICBsZXQg emVyb3MgPSBjb3VudF96ZXJvcyh3b3JkX21hc2tlZCk7CistICAgICAgICAgICAgICAgIC8vIGB6 ZXJvc2Agbm93IGNvbnRhaW5zIDcgKGZvciB0aGUgc2V2ZW4gYml0cyBvZiBub24tQVNDSUkpCisr ICAgICAgICAgICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDAgdG8gNyAoZm9yIHRoZSBz ZXZlbiBiaXRzIG9mIG1hc2tlZCBBU0NJSSBpbiBsaXR0bGUgZW5kaWFuLAorKyAgICAgICAgICAg ICAgICAvLyBvciB1cCB0byA3IGJpdHMgb2Ygbm9uLUFTQ0lJIGluIGJpZyBlbmRpYW4gaWYgdGhl IGZpcnN0IGJ5dGUgaXMgbm9uLUFTQ0lJKQorICAgICAgICAgICAgICAgICAvLyBwbHVzIDggdGlt ZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbiB0ZXh0IG9yZGVyIGJlZm9yZSB0aGUKKyAgICAgICAg ICAgICAgICAgLy8gbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIGxpdHRsZS1lbmRpYW4gY2FzZSBvciA4 IHRpbWVzIHRoZSBudW1iZXIgb2YgQVNDSUkgaW4KKyAgICAgICAgICAgICAgICAgLy8gdGV4dCBv cmRlciBiZWZvcmUgdGhlIG5vbi1BU0NJSSBieXRlIGluIHRoZSBiaWctZW5kaWFuIGNhc2UuCisg ICAgICAgICAgICAgICAgIGxldCBudW1fYXNjaWkgPSAoemVyb3MgPj4gMykgYXMgdXNpemU7Cisr ICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJlCisg ICAgICAgICAgICAgICAgIHJldHVybiBTb21lKG51bV9hc2NpaSk7CisgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIGxldCB6ZXJvcyA9IGNvdW50X3plcm9zKHNlY29uZF9tYXNrZWQpOworLSAg ICAgICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDcgKGZvciB0aGUgc2V2ZW4gYml0cyBv ZiBub24tQVNDSUkpCisrICAgICAgICAgICAgLy8gYHplcm9zYCBub3cgY29udGFpbnMgMCB0byA3 IChmb3IgdGhlIHNldmVuIGJpdHMgb2YgbWFza2VkIEFTQ0lJIGluIGxpdHRsZSBlbmRpYW4sCisr ICAgICAgICAgICAgLy8gb3IgdXAgdG8gNyBiaXRzIG9mIG5vbi1BU0NJSSBpbiBiaWcgZW5kaWFu IGlmIHRoZSBmaXJzdCBieXRlIGlzIG5vbi1BU0NJSSkKKyAgICAgICAgICAgICAvLyBwbHVzIDgg dGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbiB0ZXh0IG9yZGVyIGJlZm9yZSB0aGUKKyAgICAg ICAgICAgICAvLyBub24tQVNDSUkgYnl0ZSBpbiB0aGUgbGl0dGxlLWVuZGlhbiBjYXNlIG9yIDgg dGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbgorICAgICAgICAgICAgIC8vIHRleHQgb3JkZXIg YmVmb3JlIHRoZSBub24tQVNDSUkgYnl0ZSBpbiB0aGUgYmlnLWVuZGlhbiBjYXNlLgorICAgICAg ICAgICAgIGxldCBudW1fYXNjaWkgPSAoemVyb3MgPj4gMykgYXMgdXNpemU7CisrICAgICAgICAg ICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAgICAgICAgICAgICBT b21lKEFMVV9BTElHTk1FTlQgKyBudW1fYXNjaWkpCisgICAgICAgICB9CisgCisrICAgICAgICAv Ly8gU2FmZXR5OiBgc3JjYCBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVhZHMgb2YgdHdvIGB1c2l6 ZWBzCisrICAgICAgICAvLy8KKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDog d2lsbCByZXR1cm4gYnl0ZSBpbmRleCBvZiBmaXJzdCBub24tYXNjaWkgYnl0ZQorICAgICAgICAg I1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiB2YWxpZGF0ZV9hc2NpaV9zdHJp ZGUoc3JjOiAqY29uc3QgdXNpemUpIC0+IE9wdGlvbjx1c2l6ZT4geworICAgICAgICAgICAgIGxl dCB3b3JkID0gKnNyYzsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAqKHNyYy5hZGQo MSkpOworICAgICAgICAgICAgIGZpbmRfbm9uX2FzY2lpKHdvcmQsIHNlY29uZF93b3JkKQorICAg ICAgICAgfQorIAorKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJl dHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmlyc3Qg ZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZworKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8gYmUg bm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hlcmUg aXQgaXMgZm91bmQKKyAgICAgICAgICNbY2ZnX2F0dHIoZmVhdHVyZSA9ICJjYXJnby1jbGlwcHki LCBhbGxvdyhjYXN0X3B0cl9hbGlnbm1lbnQpKV0KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyld CisgICAgICAgICBwdWIgZm4gdmFsaWRhdGVfYXNjaWkoc2xpY2U6ICZbdThdKSAtPiBPcHRpb248 KHU4LCB1c2l6ZSk+IHsKKyAgICAgICAgICAgICBsZXQgc3JjID0gc2xpY2UuYXNfcHRyKCk7Cisg ICAgICAgICAgICAgbGV0IGxlbiA9IHNsaWNlLmxlbigpOworICAgICAgICAgICAgIGxldCBtdXQg b2Zmc2V0ID0gMHVzaXplOworICAgICAgICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50ID0g KEFMVV9BTElHTk1FTlQgLSAoKHNyYyBhcyB1c2l6ZSkgJiBBTFVfQUxJR05NRU5UX01BU0spKSAm IEFMVV9BTElHTk1FTlRfTUFTSzsKKysgICAgICAgICAgICAvLyBTYWZldHk6IElmIHRoaXMgY2hl Y2sgZmFpbHMgd2UncmUgdmFsaWQgdG8gcmVhZCBgdW50aWxfYWxpZ25tZW50ICsgQUxVX1NUUklE RV9TSVpFYCBlbGVtZW50cworICAgICAgICAgICAgIGlmIHVudGlsX2FsaWdubWVudCArIEFMVV9T VFJJREVfU0laRSA8PSBsZW4geworICAgICAgICAgICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1l bnQgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gc2xpY2Vbb2Zm c2V0XTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7CisrICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhaXJhbnQgdXBoZWxkIGhlcmUK KyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQp KTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSAxOworICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7CisgICAgICAg ICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBBdCB0aGlzIHBvaW50IHdl IGhhdmUgcmVhZCB1bnRpbF9hbGlnbm1lbnQgZWxlbWVudHMgYW5kCisrICAgICAgICAgICAgICAg IC8vIGFyZSB2YWxpZCBmb3IgYEFMVV9TVFJJREVfU0laRWAgbW9yZS4KKyAgICAgICAgICAgICAg ICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7CisgICAgICAg ICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSB3ZXJl IHZhbGlkIGZvciB0aGlzIHJlYWQKKyAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSB1bnNh ZmUgeyBzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVzaXplIH07CisgICAgICAgICAgICAgICAg ICAgICBpZiBsZXQgU29tZShudW1fYXNjaWkpID0gdW5zYWZlIHsgdmFsaWRhdGVfYXNjaWlfc3Ry aWRlKHB0cikgfSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG51bV9hc2Np aTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFpcmFudCB1 cGhlbGQgaGVyZSB1c2luZyB0aGUgaW52YXJpYW50IGZyb20gdmFsaWRhdGVfYXNjaWlfc3RyaWRl KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgodW5zYWZlIHsgKihzcmMu YWRkKG9mZnNldCkpIH0sIG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gQUxVX1NUUklERV9TSVpFYCB3aGlj aCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgMiAqIEFMVV9TVFJJREVfU0laRWAgZWxl bWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0 ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKyAgICAgICAgICAgICAgICAgbGV0 IGNvZGVfdW5pdCA9IHNsaWNlW29mZnNldF07CisgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5p dCA+IDEyNyB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFpcmFu dCB1cGhlbGQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5p dCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgb2Zmc2V0 ICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgCisg ICAgIH0KK0BAIC0xNDIzLDcwICsxNzgxLDg4IEBAIGNmZ19pZiEgeworICAgICAgICAgLy8gdmVj dG9yIHJlYWRzIHdpdGhvdXQgdmVjdG9yIHdyaXRlcy4KKyAKKyAgICAgICAgIHB1YiBjb25zdCBB TFVfU1RSSURFX1NJWkU6IHVzaXplID0gODsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJ R05NRU5UOiB1c2l6ZSA9IDQ7CisgCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9N QVNLOiB1c2l6ZSA9IDM7CisgICAgIH0gZWxzZSB7CisrICAgICAgICAvLyBTYWZldHk6IHNyYyBw b2ludHMgdG8gdHdvIHZhbGlkIGB1c2l6ZWBzLCBkc3QgcG9pbnRzIHRvIGZvdXIgdmFsaWQgYHVz aXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gdW5w YWNrX2xhdGluMV9zdHJpZGVfYWx1KHNyYzogKmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUp IHsKKysgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVy ZQorICAgICAgICAgICAgIGxldCB3b3JkID0gKnNyYzsKKyAgICAgICAgICAgICBsZXQgc2Vjb25k X3dvcmQgPSAqKHNyYy5hZGQoMSkpOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0 eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24KKyAgICAgICAgICAgICB1bnBhY2tfYWx1KHdvcmQsIHNl Y29uZF93b3JkLCBkc3QpOworICAgICAgICAgfQorIAorKyAgICAgICAgLy8gU2FmZXR5OiBzcmMg cG9pbnRzIHRvIGZvdXIgdmFsaWQgYHVzaXplYHMsIGRzdCBwb2ludHMgdG8gdHdvIHZhbGlkIGB1 c2l6ZWBzCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHBh Y2tfbGF0aW4xX3N0cmlkZV9hbHUoc3JjOiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1c2l6ZSkg eworKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJl CisgICAgICAgICAgICAgbGV0IGZpcnN0ID0gKnNyYzsKKyAgICAgICAgICAgICBsZXQgc2Vjb25k ID0gKihzcmMuYWRkKDEpKTsKKyAgICAgICAgICAgICBsZXQgdGhpcmQgPSAqKHNyYy5hZGQoMikp OworICAgICAgICAgICAgIGxldCBmb3VydGggPSAqKHNyYy5hZGQoMykpOworKyAgICAgICAgICAg IC8vIFNhZmV0eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24KKyAgICAgICAgICAg ICBwYWNrX2FsdShmaXJzdCwgc2Vjb25kLCB0aGlyZCwgZm91cnRoLCBkc3QpOworICAgICAgICAg fQorIAorKyAgICAgICAgLy8gU2FmZXR5OiBzcmMgcG9pbnRzIHRvIHR3byB2YWxpZCBgdXNpemVg cywgZHN0IHBvaW50cyB0byBmb3VyIHZhbGlkIGB1c2l6ZWBzCisgICAgICAgICAjW2lubGluZShh bHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9h bHUoc3JjOiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgLT4gYm9vbCB7CisrICAgICAg ICAgICAgLy8gU2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAg ICAgICBsZXQgd29yZCA9ICpzcmM7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKihz cmMuYWRkKDEpKTsKKyAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgd29yZHMgY29udGFpbnMg bm9uLUFTQ0lJCisgICAgICAgICAgICAgaWYgKHdvcmQgJiBBU0NJSV9NQVNLKSB8IChzZWNvbmRf d29yZCAmIEFTQ0lJX01BU0spICE9IDAgeworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0eSBpbnZh cmlhbnQgcGFzc2VkIGRvd24KKyAgICAgICAgICAgICB1bnBhY2tfYWx1KHdvcmQsIHNlY29uZF93 b3JkLCBkc3QpOworICAgICAgICAgICAgIHRydWUKKyAgICAgICAgIH0KKyAKKysgICAgICAgIC8v IFNhZmV0eTogc3JjIHBvaW50cyBmb3VyIHZhbGlkIGB1c2l6ZWBzLCBkc3QgcG9pbnRzIHRvIHR3 byB2YWxpZCBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVu c2FmZSBmbiBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfYWx1KHNyYzogKmNvbnN0IHVzaXpl LCBkc3Q6ICptdXQgdXNpemUpIC0+IGJvb2wgeworKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3Jj IHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgbGV0IGZpcnN0ID0gKnNy YzsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kID0gKihzcmMuYWRkKDEpKTsKKyAgICAgICAgICAg ICBsZXQgdGhpcmQgPSAqKHNyYy5hZGQoMikpOworICAgICAgICAgICAgIGxldCBmb3VydGggPSAq KHNyYy5hZGQoMykpOworICAgICAgICAgICAgIGlmIChmaXJzdCAmIEJBU0lDX0xBVElOX01BU0sp IHwgKHNlY29uZCAmIEJBU0lDX0xBVElOX01BU0spIHwgKHRoaXJkICYgQkFTSUNfTEFUSU5fTUFT SykgfCAoZm91cnRoICYgQkFTSUNfTEFUSU5fTUFTSykgIT0gMCB7CisgICAgICAgICAgICAgICAg IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICB9CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBk c3Qgc2FmZXR5IGludmFyaWFudCBwYXNzZWQgZG93bgorICAgICAgICAgICAgIHBhY2tfYWx1KGZp cnN0LCBzZWNvbmQsIHRoaXJkLCBmb3VydGgsIGRzdCk7CisgICAgICAgICAgICAgdHJ1ZQorICAg ICAgICAgfQorIAorKyAgICAgICAgLy8gU2FmZXR5OiBzcmMsIGRzdCBib3RoIHBvaW50IHRvIHR3 byB2YWxpZCBgdXNpemVgcyBlYWNoCisrICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFu dDogV2lsbCByZXR1cm4gYnl0ZSBpbmRleCBvZiBmaXJzdCBub24tYXNjaWkgYnl0ZS4KKyAgICAg ICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gYXNjaWlfdG9fYXNjaWlf c3RyaWRlKHNyYzogKmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIC0+IE9wdGlvbjx1c2l6 ZT4geworKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBo ZXJlCisgICAgICAgICAgICAgbGV0IHdvcmQgPSAqc3JjOworICAgICAgICAgICAgIGxldCBzZWNv bmRfd29yZCA9ICooc3JjLmFkZCgxKSk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2Fm ZXR5IGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gd29yZDsKKyAgICAg ICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7CisrICAgICAgICAgICAgLy8gUmVs aWVzIG9uIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUKKyAgICAgICAgICAgICBmaW5kX25v bl9hc2NpaSh3b3JkLCBzZWNvbmRfd29yZCkKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIGJhc2lj X2xhdGluX2FsdSEoYXNjaWlfdG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYsIGFzY2lpX3RvX2Jhc2lj X2xhdGluX3N0cmlkZV9hbHUpOworICAgICAgICAgYmFzaWNfbGF0aW5fYWx1IShiYXNpY19sYXRp bl90b19hc2NpaSwgdTE2LCB1OCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2FsdSk7Cisg ICAgICAgICBsYXRpbjFfYWx1ISh1bnBhY2tfbGF0aW4xLCB1OCwgdTE2LCB1bnBhY2tfbGF0aW4x X3N0cmlkZV9hbHUpOworICAgICAgICAgbGF0aW4xX2FsdSEocGFja19sYXRpbjEsIHUxNiwgdTgs IHBhY2tfbGF0aW4xX3N0cmlkZV9hbHUpOworKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudCB1 cGhlbGQ6IGFzY2lpX3RvX2FzY2lpX3N0cmlkZSB3aWxsIHJldHVybiBieXRlIGluZGV4IG9mIGZp cnN0IG5vbi1hc2NpaSBpZiBmb3VuZAorICAgICAgICAgYXNjaWlfYWx1IShhc2NpaV90b19hc2Np aSwgdTgsIHU4LCBhc2NpaV90b19hc2NpaV9zdHJpZGUpOworICAgICB9CisgfQorIAorIHB1YiBm biBhc2NpaV92YWxpZF91cF90byhieXRlczogJlt1OF0pIC0+IHVzaXplIHsKKyAgICAgbWF0Y2gg dmFsaWRhdGVfYXNjaWkoYnl0ZXMpIHsKKyAgICAgICAgIE5vbmUgPT4gYnl0ZXMubGVuKCksCisg ICAgICAgICBTb21lKChfLCBudW1fdmFsaWQpKSA9PiBudW1fdmFsaWQsCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvaGFuZGxlcy5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2hhbmRsZXMucnMKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL2hhbmRsZXMucnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL2hhbmRsZXMucnMKK0BAIC0yOSwxNyArMjksMTcgQEAgdXNlIGNyYXRlOjpzaW1k X2Z1bmNzOjoqOworICNbY2ZnKGFsbCgKKyAgICAgZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwKKyAg ICAgYW55KAorICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIsCisgICAgICAgICBhbGwo dGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiksCisgICAg ICAgICBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9u IikKKyAgICAgKQorICkpXQorLXVzZSBwYWNrZWRfc2ltZDo6dTE2eDg7CisrdXNlIGNvcmU6OnNp bWQ6OnUxNng4OworIAorIHVzZSBzdXBlcjo6RGVjb2RlclJlc3VsdDsKKyB1c2Ugc3VwZXI6OkVu Y29kZXJSZXN1bHQ7CisgdXNlIGNyYXRlOjphc2NpaTo6KjsKKyB1c2UgY3JhdGU6OnV0Zl84Ojpj b252ZXJ0X3V0ZjhfdG9fdXRmMTZfdXBfdG9faW52YWxpZDsKKyB1c2UgY3JhdGU6OnV0Zl84Ojp1 dGY4X3ZhbGlkX3VwX3RvOworIAorIHB1YiBlbnVtIFNwYWNlPFQ+IHsKK0BAIC04NSw4NCArODUs MTAwIEBAIGltcGwgRW5kaWFuIGZvciBMaXR0bGVFbmRpYW4geworICAgICBjb25zdCBPUFBPU0lU RV9FTkRJQU46IGJvb2wgPSBmYWxzZTsKKyAKKyAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJi aWciKV0KKyAgICAgY29uc3QgT1BQT1NJVEVfRU5ESUFOOiBib29sID0gdHJ1ZTsKKyB9CisgCisg I1tkZXJpdmUoRGVidWcsIENvcHksIENsb25lKV0KKyBzdHJ1Y3QgVW5hbGlnbmVkVTE2U2xpY2Ug eworKyAgICAvLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgcmVhZGlu ZyAyKmxlbiBieXRlcworICAgICBwdHI6ICpjb25zdCB1OCwKKyAgICAgbGVuOiB1c2l6ZSwKKyB9 CisgCisgaW1wbCBVbmFsaWduZWRVMTZTbGljZSB7CisrICAgIC8vLyBTYWZldHk6IHB0ciBtdXN0 IGJlIHZhbGlkIGZvciByZWFkaW5nIDIqbGVuIGJ5dGVzCisgICAgICNbaW5saW5lKGFsd2F5cyld CisgICAgIHB1YiB1bnNhZmUgZm4gbmV3KHB0cjogKmNvbnN0IHU4LCBsZW46IHVzaXplKSAtPiBV bmFsaWduZWRVMTZTbGljZSB7CisrICAgICAgICAvLyBTYWZldHk6IGZpZWxkIGludmFyaWFudCBw YXNzZWQgdXAgdG8gY2FsbGVyIGhlcmUKKyAgICAgICAgIFVuYWxpZ25lZFUxNlNsaWNlIHsgcHRy LCBsZW4gfQorICAgICB9CisgCisgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgIHB1YiBmbiB0 cmltX2xhc3QoJm11dCBzZWxmKSB7CisgICAgICAgICBhc3NlcnQhKHNlbGYubGVuID4gMCk7Cisr ICAgICAgICAvLyBTYWZldHk6IGludmFyaWFudCB1cGhlbGQgaGVyZTogYSBzbGljZSBpcyBzdGls bCB2YWxpZCB3aXRoIGEgc2hvcnRlciBsZW4KKyAgICAgICAgIHNlbGYubGVuIC09IDE7CisgICAg IH0KKyAKKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgcHViIGZuIGF0KCZzZWxmLCBpOiB1 c2l6ZSkgLT4gdTE2IHsKKyAgICAgICAgIHVzZSBjb3JlOjptZW06Ok1heWJlVW5pbml0OworIAor ICAgICAgICAgYXNzZXJ0IShpIDwgc2VsZi5sZW4pOworICAgICAgICAgdW5zYWZlIHsKKyAgICAg ICAgICAgICBsZXQgbXV0IHU6IE1heWJlVW5pbml0PHUxNj4gPSBNYXliZVVuaW5pdDo6dW5pbml0 KCk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBpIGlzIGF0IG1vc3QgbGVuIC0gMSwgd2hpY2gg d29ya3MgaGVyZQorICAgICAgICAgICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5n KHNlbGYucHRyLmFkZChpICogMiksIHUuYXNfbXV0X3B0cigpIGFzICptdXQgdTgsIDIpOworKyAg ICAgICAgICAgIC8vIFNhZmV0eTogdmFsaWQgcmVhZCBhYm92ZSBsZXRzIHVzIGRvIHRoaXMKKyAg ICAgICAgICAgICB1LmFzc3VtZV9pbml0KCkKKyAgICAgICAgIH0KKyAgICAgfQorIAorICAgICAj W2NmZyhmZWF0dXJlID0gInNpbWQtYWNjZWwiKV0KKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAg ICAgcHViIGZuIHNpbWRfYXQoJnNlbGYsIGk6IHVzaXplKSAtPiB1MTZ4OCB7CisrICAgICAgICAv LyBTYWZldHk6IGkvbGVuIGFyZSBvbiB0aGUgc2NhbGUgb2YgdTE2cywgZWFjaCBvbmUgY29ycmVz cG9uZHMgdG8gMiB1OHMKKyAgICAgICAgIGFzc2VydCEoaSArIFNJTURfU1RSSURFX1NJWkUgLyAy IDw9IHNlbGYubGVuKTsKKyAgICAgICAgIGxldCBieXRlX2luZGV4ID0gaSAqIDI7CisrICAgICAg ICAvLyBTYWZldHk6IGxvYWQxNl91bmFsaWduZWQgbmVlZHMgU0lNRF9TVFJJREVfU0laRT0xNiB1 OCBlbGVtZW50cyB0byByZWFkLAorKyAgICAgICAgLy8gb3IgMTYvMiA9IDggdTE2IGVsZW1lbnRz IHRvIHJlYWQuCisrICAgICAgICAvLyBXZSBoYXZlIGNoZWNrZWQgdGhhdCB3ZSBoYXZlIGF0IGxl YXN0IHRoYXQgbWFueSBhYm92ZS4KKysKKyAgICAgICAgIHVuc2FmZSB7IHRvX3UxNl9sYW5lcyhs b2FkMTZfdW5hbGlnbmVkKHNlbGYucHRyLmFkZChieXRlX2luZGV4KSkpIH0KKyAgICAgfQorIAor ICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIgZm4gbGVuKCZzZWxmKSAtPiB1c2l6ZSB7 CisgICAgICAgICBzZWxmLmxlbgorICAgICB9CisgCisgICAgICNbaW5saW5lKGFsd2F5cyldCisg ICAgIHB1YiBmbiB0YWlsKCZzZWxmLCBmcm9tOiB1c2l6ZSkgLT4gVW5hbGlnbmVkVTE2U2xpY2Ug eworICAgICAgICAgLy8gWFhYIHRoZSByZXR1cm4gdmFsdWUgc2hvdWxkIGJlIHJlc3RyaWN0ZWQg bm90IHRvCisgICAgICAgICAvLyBvdXRsaXZlIHNlbGYuCisgICAgICAgICBhc3NlcnQhKGZyb20g PD0gc2VsZi5sZW4pOworKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIHVwaG9sZHMgdGhlIHNhbWUg aW52YXJpYW50OiBgZnJvbWAgaXMgaW4gYm91bmRzIGFuZCB3ZSdyZSByZXR1cm5pbmcgYSBzaG9y dGVyIHNsaWNlCisgICAgICAgICB1bnNhZmUgeyBVbmFsaWduZWRVMTZTbGljZTo6bmV3KHNlbGYu cHRyLmFkZChmcm9tICogMiksIHNlbGYubGVuIC0gZnJvbSkgfQorICAgICB9CisgCisgICAgICNb Y2ZnKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIpXQorICAgICAjW2lubGluZShhbHdheXMpXQorICAg ICBwdWIgZm4gY29weV9ibXBfdG88RTogRW5kaWFuPigmc2VsZiwgb3RoZXI6ICZtdXQgW3UxNl0p IC0+IE9wdGlvbjwodTE2LCB1c2l6ZSk+IHsKKyAgICAgICAgIGFzc2VydCEoc2VsZi5sZW4gPD0g b3RoZXIubGVuKCkpOworICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwOworKyAgICAgICAgLy8g U2FmZXR5OiBTSU1EX1NUUklERV9TSVpFIGlzIG1lYXN1cmVkIGluIGJ5dGVzLCB3aGVyZWFzIGxl biBpcyBpbiB1MTZzLiBXZSBjaGVjayB3ZSBjYW4KKysgICAgICAgIC8vIG11bmNoIFNJTURfU1RS SURFX1NJWkUgLyAyIHUxNnMgd2hpY2ggbWVhbnMgd2UgY2FuIHdyaXRlIFNJTURfU1RSSURFX1NJ WkUgdThzCisgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIC8gMiA8PSBzZWxmLmxlbiB7Cisg ICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBzZWxmLmxlbiAtIFNJTURfU1RSSURF X1NJWkUgLyAyOworICAgICAgICAgICAgIGxvb3AgeworICAgICAgICAgICAgICAgICBsZXQgbXV0 IHNpbWQgPSBzZWxmLnNpbWRfYXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgaWYgRTo6T1BQ T1NJVEVfRU5ESUFOIHsKKyAgICAgICAgICAgICAgICAgICAgIHNpbWQgPSBzaW1kX2J5dGVfc3dh cChzaW1kKTsKKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IHdlIGhhdmUgZW5vdWdoIHNwYWNlIG9uIHRoZSBvdGhlciBzaWRlIHRvIHdyaXRlIHRoaXMKKyAg ICAgICAgICAgICAgICAgdW5zYWZlIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0b3JlOF91bmFs aWduZWQob3RoZXIuYXNfbXV0X3B0cigpLmFkZChvZmZzZXQpLCBzaW1kKTsKKyAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICBpZiBjb250YWluc19zdXJyb2dhdGVzKHNpbWQpIHsK KyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFIC8gMjsKKysgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBUaGlzIGVuc3VyZXMgd2Ugc3RpbGwgaGF2ZSBzcGFjZSBmb3Igd3JpdGlu ZyBTSU1EX1NUUklERV9TSVpFIHU4cworICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5f bWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgd2hpbGUgb2Zmc2V0 IDwgc2VsZi5sZW4geworICAgICAgICAgICAgIGxldCB1bml0ID0gc3dhcF9pZl9vcHBvc2l0ZV9l bmRpYW46OjxFPihzZWxmLmF0KG9mZnNldCkpOworICAgICAgICAgICAgIG90aGVyW29mZnNldF0g PSB1bml0OworQEAgLTIzMSwzMyArMjQ3LDM3IEBAIGZuIGNvcHlfdW5hbGlnbmVkX2Jhc2ljX2xh dGluX3RvX2FzY2lpPEUKKyAjW2NmZyhmZWF0dXJlID0gInNpbWQtYWNjZWwiKV0KKyAjW2lubGlu ZShhbHdheXMpXQorIGZuIGNvcHlfdW5hbGlnbmVkX2Jhc2ljX2xhdGluX3RvX2FzY2lpPEU6IEVu ZGlhbj4oCisgICAgIHNyYzogVW5hbGlnbmVkVTE2U2xpY2UsCisgICAgIGRzdDogJm11dCBbdThd LAorICkgLT4gQ29weUFzY2lpUmVzdWx0PHVzaXplLCAodTE2LCB1c2l6ZSk+IHsKKyAgICAgbGV0 IGxlbiA9IDo6Y29yZTo6Y21wOjptaW4oc3JjLmxlbigpLCBkc3QubGVuKCkpOworICAgICBsZXQg bXV0IG9mZnNldCA9IDA7CisrICAgIC8vIFNhZmV0eTogVGhpcyBjaGVjayBlbnN1cmVzIHdlIGFy ZSBhYmxlIHRvIHJlYWQvd3JpdGUgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cwor ICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICBsZXQgbGVuX21pbnVz X3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICBsb29wIHsKKyAgICAg ICAgICAgICBsZXQgbXV0IGZpcnN0ID0gc3JjLnNpbWRfYXQob2Zmc2V0KTsKKyAgICAgICAgICAg ICBsZXQgbXV0IHNlY29uZCA9IHNyYy5zaW1kX2F0KG9mZnNldCArIChTSU1EX1NUUklERV9TSVpF IC8gMikpOworICAgICAgICAgICAgIGlmIEU6Ok9QUE9TSVRFX0VORElBTiB7CisgICAgICAgICAg ICAgICAgIGZpcnN0ID0gc2ltZF9ieXRlX3N3YXAoZmlyc3QpOworICAgICAgICAgICAgICAgICBz ZWNvbmQgPSBzaW1kX2J5dGVfc3dhcChzZWNvbmQpOworICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICBpZiAhc2ltZF9pc19iYXNpY19sYXRpbihmaXJzdCB8IHNlY29uZCkgeworICAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgbGV0IHBhY2tlZCA9 IHNpbWRfcGFjayhmaXJzdCwgc2Vjb25kKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGFy ZSBhYmxlIHRvIHdyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgaW4gdGhpcyBpdGVyYXRp b24KKyAgICAgICAgICAgICB1bnNhZmUgeworICAgICAgICAgICAgICAgICBzdG9yZTE2X3VuYWxp Z25lZChkc3QuYXNfbXV0X3B0cigpLmFkZChvZmZzZXQpLCBwYWNrZWQpOworICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAg ICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgLCB3 aGljaCBlbnN1cmVzIHRoYXQgd2UgY2FuIHdyaXRlIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUg ZWxlbWVudHMKKysgICAgICAgICAgICAvLyBpbiB0aGUgbmV4dCBpdGVyYXRpb24KKyAgICAgICAg ICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9CisgICAgIGNvcHlfdW5hbGln bmVkX2Jhc2ljX2xhdGluX3RvX2FzY2lpX2FsdTo6PEU+KHNyYy50YWlsKG9mZnNldCksICZtdXQg ZHN0W29mZnNldC4uXSwgb2Zmc2V0KQorIH0KKyAKK0BAIC02MzIsOTQgKzY1MiwxMDYgQEAgaW1w bDwnYT4gVXRmMTZEZXN0aW5hdGlvbjwnYT4geworICAgICAjW2lubGluZShhbHdheXMpXQorICAg ICBmbiB3cml0ZV9hc3RyYWwoJm11dCBzZWxmLCBhc3RyYWw6IHUzMikgeworICAgICAgICAgZGVi dWdfYXNzZXJ0IShhc3RyYWwgPiAweEZGRkYpOworICAgICAgICAgZGVidWdfYXNzZXJ0IShhc3Ry YWwgPD0gMHgxMF9GRkZGKTsKKyAgICAgICAgIHNlbGYud3JpdGVfY29kZV91bml0KCgweEQ3QzAg KyAoYXN0cmFsID4+IDEwKSkgYXMgdTE2KTsKKyAgICAgICAgIHNlbGYud3JpdGVfY29kZV91bml0 KCgweERDMDAgKyAoYXN0cmFsICYgMHgzRkYpKSBhcyB1MTYpOworICAgICB9CisgICAgICNbaW5s aW5lKGFsd2F5cyldCistICAgIHB1YiBmbiB3cml0ZV9zdXJyb2dhdGVfcGFpcigmbXV0IHNlbGYs IGhpZ2g6IHUxNiwgbG93OiB1MTYpIHsKKysgICAgZm4gd3JpdGVfc3Vycm9nYXRlX3BhaXIoJm11 dCBzZWxmLCBoaWdoOiB1MTYsIGxvdzogdTE2KSB7CisgICAgICAgICBzZWxmLndyaXRlX2NvZGVf dW5pdChoaWdoKTsKKyAgICAgICAgIHNlbGYud3JpdGVfY29kZV91bml0KGxvdyk7CisgICAgIH0K KyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgZm4gd3JpdGVfYmlnNV9jb21iaW5hdGlvbigm bXV0IHNlbGYsIGNvbWJpbmVkOiB1MTYsIGNvbWJpbmluZzogdTE2KSB7CisgICAgICAgICBzZWxm LndyaXRlX2JtcF9leGNsX2FzY2lpKGNvbWJpbmVkKTsKKyAgICAgICAgIHNlbGYud3JpdGVfYm1w X2V4Y2xfYXNjaWkoY29tYmluaW5nKTsKKyAgICAgfQorKyAgICAvLyBTYWZldHktdXNhYmxlIGlu dmFyaWFudDogQ29weUFzY2lpUmVzdWx0OjpHb09uIHdpbGwgb25seSBjb250YWluIGJ5dGVzID49 MHg4MAorICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIgZm4gY29weV9hc2NpaV9mcm9t X2NoZWNrX3NwYWNlX2JtcDwnYj4oCisgICAgICAgICAmJ2IgbXV0IHNlbGYsCisgICAgICAgICBz b3VyY2U6ICZtdXQgQnl0ZVNvdXJjZSwKKyAgICAgKSAtPiBDb3B5QXNjaWlSZXN1bHQ8KERlY29k ZXJSZXN1bHQsIHVzaXplLCB1c2l6ZSksICh1OCwgVXRmMTZCbXBIYW5kbGU8J2IsICdhPik+IHsK KyAgICAgICAgIGxldCBub25fYXNjaWlfcmV0ID0geworICAgICAgICAgICAgIGxldCBzcmNfcmVt YWluaW5nID0gJnNvdXJjZS5zbGljZVtzb3VyY2UucG9zLi5dOworICAgICAgICAgICAgIGxldCBk c3RfcmVtYWluaW5nID0gJm11dCBzZWxmLnNsaWNlW3NlbGYucG9zLi5dOworICAgICAgICAgICAg IGxldCAocGVuZGluZywgbGVuZ3RoKSA9IGlmIGRzdF9yZW1haW5pbmcubGVuKCkgPCBzcmNfcmVt YWluaW5nLmxlbigpIHsKKyAgICAgICAgICAgICAgICAgKERlY29kZXJSZXN1bHQ6Ok91dHB1dEZ1 bGwsIGRzdF9yZW1haW5pbmcubGVuKCkpCisgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgICAgKERlY29kZXJSZXN1bHQ6OklucHV0RW1wdHksIHNyY19yZW1haW5pbmcubGVuKCkp CisgICAgICAgICAgICAgfTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24g aXMgZG9jdW1lbnRlZCBhcyBuZWVkaW5nIHZhbGlkIHBvaW50ZXJzIGZvciBzcmMvZGVzdCBhbmQg bGVuLCB3aGljaAorKyAgICAgICAgICAgIC8vIGlzIHRydWUgc2luY2Ugd2UndmUgcGFzc2VkIHRo ZSBtaW51bXVtIGxlbmd0aCBvZiB0aGUgdHdvCisgICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsK KyAgICAgICAgICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW4oc3JjX3JlbWFpbmluZy5hc19w dHIoKSwgZHN0X3JlbWFpbmluZy5hc19tdXRfcHRyKCksIGxlbmd0aCkKKyAgICAgICAgICAgICB9 IHsKKyAgICAgICAgICAgICAgICAgTm9uZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICBzb3Vy Y2UucG9zICs9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYucG9zICs9IGxlbmd0 aDsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb3B5QXNjaWlSZXN1bHQ6OlN0b3AoKHBl bmRpbmcsIHNvdXJjZS5wb3MsIHNlbGYucG9zKSk7CisgICAgICAgICAgICAgICAgIH0KKysgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgZnVuY3Rpb24gaXMgZG9jdW1lbnRlZCBhcyByZXR1 cm5pbmcgYnl0ZXMgPj0weDgwIGluIHRoZSBTb21lCisgICAgICAgICAgICAgICAgIFNvbWUoKG5v bl9hc2NpaSwgY29uc3VtZWQpKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9z ICs9IGNvbnN1bWVkOworICAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3MgKz0gY29uc3VtZWQ7 CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zICs9IDE7IC8vICsxIGZvciBub25fYXNj aWkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBub24t YXNjaWkgYnViYmxlZCBvdXQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgbm9uX2FzY2lpCisg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICB9OworKyAgICAgICAg Ly8gU2FmZXR5OiBub24tYXNjaWkgcmV0dXJuZWQgaGVyZQorICAgICAgICAgQ29weUFzY2lpUmVz dWx0OjpHb09uKChub25fYXNjaWlfcmV0LCBVdGYxNkJtcEhhbmRsZTo6bmV3KHNlbGYpKSkKKyAg ICAgfQorKyAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogQ29weUFzY2lpUmVzdWx0OjpH b09uIHdpbGwgb25seSBjb250YWluIGJ5dGVzID49MHg4MAorICAgICAjW2lubGluZShhbHdheXMp XQorICAgICBwdWIgZm4gY29weV9hc2NpaV9mcm9tX2NoZWNrX3NwYWNlX2FzdHJhbDwnYj4oCisg ICAgICAgICAmJ2IgbXV0IHNlbGYsCisgICAgICAgICBzb3VyY2U6ICZtdXQgQnl0ZVNvdXJjZSwK KyAgICAgKSAtPiBDb3B5QXNjaWlSZXN1bHQ8KERlY29kZXJSZXN1bHQsIHVzaXplLCB1c2l6ZSks ICh1OCwgVXRmMTZBc3RyYWxIYW5kbGU8J2IsICdhPik+IHsKKyAgICAgICAgIGxldCBub25fYXNj aWlfcmV0ID0geworICAgICAgICAgICAgIGxldCBkc3RfbGVuID0gc2VsZi5zbGljZS5sZW4oKTsK KyAgICAgICAgICAgICBsZXQgc3JjX3JlbWFpbmluZyA9ICZzb3VyY2Uuc2xpY2Vbc291cmNlLnBv cy4uXTsKKyAgICAgICAgICAgICBsZXQgZHN0X3JlbWFpbmluZyA9ICZtdXQgc2VsZi5zbGljZVtz ZWxmLnBvcy4uXTsKKyAgICAgICAgICAgICBsZXQgKHBlbmRpbmcsIGxlbmd0aCkgPSBpZiBkc3Rf cmVtYWluaW5nLmxlbigpIDwgc3JjX3JlbWFpbmluZy5sZW4oKSB7CisgICAgICAgICAgICAgICAg IChEZWNvZGVyUmVzdWx0OjpPdXRwdXRGdWxsLCBkc3RfcmVtYWluaW5nLmxlbigpKQorICAgICAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpJbnB1dEVt cHR5LCBzcmNfcmVtYWluaW5nLmxlbigpKQorICAgICAgICAgICAgIH07CisrICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQgYXMgbmVlZGluZyB2YWxpZCBw b2ludGVycyBmb3Igc3JjL2Rlc3QgYW5kIGxlbiwgd2hpY2gKKysgICAgICAgICAgICAvLyBpcyB0 cnVlIHNpbmNlIHdlJ3ZlIHBhc3NlZCB0aGUgbWludW11bSBsZW5ndGggb2YgdGhlIHR3bworICAg ICAgICAgICAgIG1hdGNoIHVuc2FmZSB7CisgICAgICAgICAgICAgICAgIGFzY2lpX3RvX2Jhc2lj X2xhdGluKHNyY19yZW1haW5pbmcuYXNfcHRyKCksIGRzdF9yZW1haW5pbmcuYXNfbXV0X3B0cigp LCBsZW5ndGgpCisgICAgICAgICAgICAgfSB7CisgICAgICAgICAgICAgICAgIE5vbmUgPT4gewor ICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyArPSBsZW5ndGg7CisgICAgICAgICAgICAg ICAgICAgICBzZWxmLnBvcyArPSBsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g Q29weUFzY2lpUmVzdWx0OjpTdG9wKChwZW5kaW5nLCBzb3VyY2UucG9zLCBzZWxmLnBvcykpOwor ICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhlIGZ1bmN0 aW9uIGlzIGRvY3VtZW50ZWQgYXMgcmV0dXJuaW5nIGJ5dGVzID49MHg4MCBpbiB0aGUgU29tZQor ICAgICAgICAgICAgICAgICBTb21lKChub25fYXNjaWksIGNvbnN1bWVkKSkgPT4geworICAgICAg ICAgICAgICAgICAgICAgc291cmNlLnBvcyArPSBjb25zdW1lZDsKKyAgICAgICAgICAgICAgICAg ICAgIHNlbGYucG9zICs9IGNvbnN1bWVkOworICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5w b3MgKyAxIDwgZHN0X2xlbiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyAr PSAxOyAvLyArMSBmb3Igbm9uX2FzY2lpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IG5vbi1hc2NpaSBidWJibGVkIG91dCBoZXJlCisgICAgICAg ICAgICAgICAgICAgICAgICAgbm9uX2FzY2lpCisgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb3B5QXNjaWlSZXN1bHQ6OlN0b3Ao KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNvZGVyUmVzdWx0OjpPdXRwdXRGdWxs LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICApKTsK KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg IH0KKyAgICAgICAgIH07CisrICAgICAgICAvLyBTYWZldHk6IG5vbi1hc2NpaSByZXR1cm5lZCBo ZXJlCisgICAgICAgICBDb3B5QXNjaWlSZXN1bHQ6OkdvT24oKG5vbl9hc2NpaV9yZXQsIFV0ZjE2 QXN0cmFsSGFuZGxlOjpuZXcoc2VsZikpKQorICAgICB9CisgICAgICNbaW5saW5lKGFsd2F5cyld CisgICAgIHB1YiBmbiBjb3B5X3V0ZjhfdXBfdG9faW52YWxpZF9mcm9tKCZtdXQgc2VsZiwgc291 cmNlOiAmbXV0IEJ5dGVTb3VyY2UpIHsKKyAgICAgICAgIGxldCBzcmNfcmVtYWluaW5nID0gJnNv dXJjZS5zbGljZVtzb3VyY2UucG9zLi5dOworICAgICAgICAgbGV0IGRzdF9yZW1haW5pbmcgPSAm bXV0IHNlbGYuc2xpY2Vbc2VsZi5wb3MuLl07CisgICAgICAgICBsZXQgKHJlYWQsIHdyaXR0ZW4p ID0gY29udmVydF91dGY4X3RvX3V0ZjE2X3VwX3RvX2ludmFsaWQoc3JjX3JlbWFpbmluZywgZHN0 X3JlbWFpbmluZyk7CisgICAgICAgICBzb3VyY2UucG9zICs9IHJlYWQ7CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvbGliLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy9saWIucnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xp Yi5ycworQEAgLTY4NCwzNyArNjg0LDI2IEBACisgLy8hIDx0cj48dGQ+VElTLTYyMDwvdGQ+PHRk PndpbmRvd3MtODc0PC90ZD48L3RyPgorIC8vISA8L3Rib2R5PgorIC8vISA8L3RhYmxlPgorIC8v IQorIC8vISBTZWUgdGhlIHNlY3Rpb24gW19VVEYtMTZMRSwgVVRGLTE2QkUgYW5kIFVuaWNvZGUg RW5jb2RpbmcgU2NoZW1lc19dKCN1dGYtMTZsZS11dGYtMTZiZS1hbmQtdW5pY29kZS1lbmNvZGlu Zy1zY2hlbWVzKQorIC8vISBmb3IgZGlzY3Vzc2lvbiBhYm91dCB0aGUgVVRGLTE2IGZhbWlseS4K KyAKKyAjIVtub19zdGRdCistIyFbY2ZnX2F0dHIoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgZmVh dHVyZShjb3JlX2ludHJpbnNpY3MpKV0KKysjIVtjZmdfYXR0cihmZWF0dXJlID0gInNpbWQtYWNj ZWwiLCBmZWF0dXJlKGNvcmVfaW50cmluc2ljcywgcG9ydGFibGVfc2ltZCkpXQorIAorICNbY2Zn KGZlYXR1cmUgPSAiYWxsb2MiKV0KKyAjW2NmZ19hdHRyKHRlc3QsIG1hY3JvX3VzZSldCisgZXh0 ZXJuIGNyYXRlIGFsbG9jOworIAorIGV4dGVybiBjcmF0ZSBjb3JlOworICNbbWFjcm9fdXNlXQor IGV4dGVybiBjcmF0ZSBjZmdfaWY7CisgCistI1tjZmcoYWxsKAorLSAgICBmZWF0dXJlID0gInNp bWQtYWNjZWwiLAorLSAgICBhbnkoCistICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIiwK Ky0gICAgICAgIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9hcmNoID0gImFh cmNoNjQiKSwKKy0gICAgICAgIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9m ZWF0dXJlID0gIm5lb24iKQorLSAgICApCistKSldCistI1ttYWNyb191c2Uoc2h1ZmZsZSldCist ZXh0ZXJuIGNyYXRlIHBhY2tlZF9zaW1kOworLQorICNbY2ZnKGZlYXR1cmUgPSAic2VyZGUiKV0K KyBleHRlcm4gY3JhdGUgc2VyZGU7CisgCisgI1tjZmcoYWxsKHRlc3QsIGZlYXR1cmUgPSAic2Vy ZGUiKSldCisgZXh0ZXJuIGNyYXRlIGJpbmNvZGU7CisgI1tjZmcoYWxsKHRlc3QsIGZlYXR1cmUg PSAic2VyZGUiKSldCisgI1ttYWNyb191c2VdCisgZXh0ZXJuIGNyYXRlIHNlcmRlX2Rlcml2ZTsK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9tZW0ucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9tZW0ucnMKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL21lbS5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvbWVtLnJzCitAQCAtMTExLDE2ICsxMTEsMjEgQEAgbWFjcm9fcnVsZXMhIGJ5 X3VuaXRfY2hlY2tfYWx1IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxp Z25tZW50IC09IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGFjY3UgPj0gJGJvdW5kIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0g bGVuIC0gQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgIGlm IG9mZnNldCArICg0ICogKEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUpKSA8PSBsZW4geworKyAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhlIGFib3ZlIGNoZWNrIGxldHMgdXMg cGVyZm9ybSA0IGNvbnNlY3V0aXZlIHJlYWRzIG9mCisrICAgICAgICAgICAgICAgICAgICAgICAg Ly8gbGVuZ3RoIEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUuIEFMVV9BTElHTk1FTlQgaXMgdGhl IHNpemUgb2YgdXNpemUsIGFuZCB1bml0X3NpemUKKysgICAgICAgICAgICAgICAgICAgICAgICAv LyBpcyB0aGUgc2l6ZSBvZiB0aGUgYHNyY2AgcG9pbnRlciwgc28gdGhpcyBpcyBlcXVhbCB0byBw ZXJmb3JtaW5nIGZvdXIgdXNpemUgcmVhZHMuCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8K KysgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGludmFyaWFudCBpcyB1cGhlbGQgb24g YWxsIGxvb3AgaXRlcmF0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWlu dXNfdW5yb2xsID0gbGVuIC0gKDQgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSkpOworICAg ICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdW5yb2xsX2FjY3UgPSB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3Qg dXNpemUpIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdW5zYWZlIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKHNyYy5hZGQob2Zmc2V0ICsgKEFM VV9BTElHTk1FTlQgLyB1bml0X3NpemUpKSBhcyAqY29uc3QgdXNpemUpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHVuc2FmZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihzcmMuYWRk KG9mZnNldCArICgyICogKEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUpKSkKK0BAIC0xMjksMjIg KzEzNCwyNCBAQCBtYWNyb19ydWxlcyEgYnlfdW5pdF9jaGVja19hbHUgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB1bnNhZmUgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICooc3JjLmFkZChvZmZzZXQgKyAoMyAqIChBTFVfQUxJR05NRU5UIC8gdW5p dF9zaXplKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzICpj b25zdCB1c2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHVucm9sbF9hY2N1ICYgJG1hc2sgIT0gMCB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IDQgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSk7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogdGhpcyBjaGVjayBsZXRzIHVzIGNvbnRpbnVlIHRvIHBlcmZvcm0g dGhlIDQgcmVhZHMgZWFybGllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZz ZXQgPiBsZW5fbWludXNfdW5yb2xsIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg d2hpbGUgb2Zmc2V0IDw9IGxlbl9taW51c19zdHJpZGUgeworKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogdGhlIGFib3ZlIGNoZWNrIGxldHMgdXMgcGVyZm9ybSBvbmUgdXNpemUg cmVhZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICBhY2N1IHw9IHVuc2FmZSB7ICooc3JjLmFk ZChvZmZzZXQpIGFzICpjb25zdCB1c2l6ZSkgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBv ZmZzZXQgKz0gQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZTsKKyAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBmb3Ig JnVuaXQgaW4gJmJ1ZmZlcltvZmZzZXQuLl0geworICAgICAgICAgICAgICAgICBhY2N1IHw9IHVu aXQgYXMgdXNpemU7CisgICAgICAgICAgICAgfQorQEAgLTE4NCwxNiArMTkxLDIxIEBAIG1hY3Jv X3J1bGVzISBieV91bml0X2NoZWNrX3NpbWQgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgYWNjdSA+PSAkYm91bmQgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51 c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplOworICAgICAgICAg ICAgICAgICAgICAgaWYgb2Zmc2V0ICsgKDQgKiAoU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6 ZSkpIDw9IGxlbiB7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgYWJv dmUgY2hlY2sgbGV0cyB1cyBwZXJmb3JtIDQgY29uc2VjdXRpdmUgcmVhZHMgb2YKKysgICAgICAg ICAgICAgICAgICAgICAgICAvLyBsZW5ndGggU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZS4g U0lNRF9TVFJJREVfU0laRSBpcyB0aGUgc2l6ZSBvZiAkc2ltZF90eSwgYW5kIHVuaXRfc2l6ZQor KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIHRoZSBzaXplIG9mIHRoZSBgc3JjYCBwb2lu dGVyLCBzbyB0aGlzIGlzIGVxdWFsIHRvIHBlcmZvcm1pbmcgZm91ciAkc2ltZF90eSByZWFkcy4K KysgICAgICAgICAgICAgICAgICAgICAgICAvLworKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IFRoaXMgaW52YXJpYW50IGlzIHVwaGVsZCBvbiBhbGwgbG9vcCBpdGVyYXRpb25zCisgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c191bnJvbGwgPSBsZW4gLSAoNCAqIChTSU1E X1NUUklERV9TSVpFIC8gdW5pdF9zaXplKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9v cCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1bnJvbGxfYWNjdSA9IHVuc2Fm ZSB7ICooc3JjLmFkZChvZmZzZXQpIGFzICpjb25zdCAkc2ltZF90eSkgfQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB1bnNhZmUgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICooc3JjLmFkZChvZmZzZXQgKyAoU0lNRF9TVFJJREVfU0laRSAvIHVuaXRf c2l6ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzICpjb25z dCAkc2ltZF90eSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgdW5zYWZlIHsKK0BAIC0yMDMsMjMgKzIxNSwyNSBA QCBtYWNyb19ydWxlcyEgYnlfdW5pdF9jaGVja19zaW1kIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgdW5zYWZlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqKHNyYy5hZGQob2Zmc2V0ICsgKDMgKiAoU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6 ZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyAqY29uc3Qg JHNpbWRfdHkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAhJGZ1bmModW5yb2xsX2FjY3UpIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gNCAqIChT SU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiB0aGlzIGNoZWNrIGxldHMgdXMgY29udGludWUgdG8gcGVyZm9ybSB0aGUg NCByZWFkcyBlYXJsaWVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+ IGxlbl9taW51c191bnJvbGwgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHNpbWRfYWNjdSA9ICRzcGxhdDsKKyAgICAgICAgICAgICAgICAgICAgIHdoaWxlIG9mZnNl dCA8PSBsZW5fbWludXNfc3RyaWRlIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IHRoZSBhYm92ZSBjaGVjayBsZXRzIHVzIHBlcmZvcm0gb25lICRzaW1kX3R5IHJlYWQuCisg ICAgICAgICAgICAgICAgICAgICAgICAgc2ltZF9hY2N1ID0gc2ltZF9hY2N1IHwgdW5zYWZlIHsg KihzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0ICRzaW1kX3R5KSB9OworICAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplOworICAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgaWYgISRmdW5jKHNpbWRfYWNj dSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KK0BAIC0yMjks MTggKzI0MywxOCBAQCBtYWNyb19ydWxlcyEgYnlfdW5pdF9jaGVja19zaW1kIHsKKyAgICAgICAg ICAgICBhY2N1IDwgJGJvdW5kCisgICAgICAgICB9CisgICAgIH07CisgfQorIAorIGNmZ19pZiEg eworICAgICBpZiAjW2NmZyhhbGwoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgYW55KHRhcmdldF9m ZWF0dXJlID0gInNzZTIiLCBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfYXJj aCA9ICJhYXJjaDY0IiksIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9mZWF0 dXJlID0gIm5lb24iKSkpKV0geworICAgICAgICAgdXNlIGNyYXRlOjpzaW1kX2Z1bmNzOjoqOwor LSAgICAgICAgdXNlIHBhY2tlZF9zaW1kOjp1OHgxNjsKKy0gICAgICAgIHVzZSBwYWNrZWRfc2lt ZDo6dTE2eDg7CisrICAgICAgICB1c2UgY29yZTo6c2ltZDo6dTh4MTY7CisrICAgICAgICB1c2Ug Y29yZTo6c2ltZDo6dTE2eDg7CisgCisgICAgICAgICBjb25zdCBTSU1EX0FMSUdOTUVOVDogdXNp emUgPSAxNjsKKyAKKyAgICAgICAgIGNvbnN0IFNJTURfQUxJR05NRU5UX01BU0s6IHVzaXplID0g MTU7CisgCisgICAgICAgICBieV91bml0X2NoZWNrX3NpbWQhKGlzX2FzY2lpX2ltcGwsIHU4LCB1 OHgxNjo6c3BsYXQoMCksIHU4eDE2LCAweDgwLCBzaW1kX2lzX2FzY2lpKTsKKyAgICAgICAgIGJ5 X3VuaXRfY2hlY2tfc2ltZCEoaXNfYmFzaWNfbGF0aW5faW1wbCwgdTE2LCB1MTZ4ODo6c3BsYXQo MCksIHUxNng4LCAweDgwLCBzaW1kX2lzX2Jhc2ljX2xhdGluKTsKKyAgICAgICAgIGJ5X3VuaXRf Y2hlY2tfc2ltZCEoaXNfdXRmMTZfbGF0aW4xX2ltcGwsIHUxNiwgdTE2eDg6OnNwbGF0KDApLCB1 MTZ4OCwgMHgxMDAsIHNpbWRfaXNfbGF0aW4xKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy9zaW1kX2Z1bmNzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvc2ltZF9mdW5jcy5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvc2ltZF9mdW5jcy5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvc2ltZF9mdW5jcy5ycworQEAgLTIsNjUgKzIsODQgQEAKKyAvLyBmaWxlIGF0IHRoZSB0 b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uLgorIC8vCisgLy8gTGljZW5z ZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCA8TElDRU5TRS1BUEFDSEUg b3IKKyAvLyBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0 aGUgTUlUIGxpY2Vuc2UKKyAvLyA8TElDRU5TRS1NSVQgb3IgaHR0cHM6Ly9vcGVuc291cmNlLm9y Zy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCisgLy8gb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBi ZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAorIC8vIGV4Y2VwdCBhY2NvcmRpbmcg dG8gdGhvc2UgdGVybXMuCisgCistdXNlIHBhY2tlZF9zaW1kOjp1MTZ4ODsKKy11c2UgcGFja2Vk X3NpbWQ6OnU4eDE2OworLXVzZSBwYWNrZWRfc2ltZDo6SW50b0JpdHM7CisrdXNlIGFueV9hbGxf d29ya2Fyb3VuZDo6YWxsX21hc2sxNng4OworK3VzZSBhbnlfYWxsX3dvcmthcm91bmQ6OmFsbF9t YXNrOHgxNjsKKyt1c2UgYW55X2FsbF93b3JrYXJvdW5kOjphbnlfbWFzazE2eDg7CisrdXNlIGFu eV9hbGxfd29ya2Fyb3VuZDo6YW55X21hc2s4eDE2OworK3VzZSBjb3JlOjpzaW1kOjpjbXA6OlNp bWRQYXJ0aWFsRXE7CisrdXNlIGNvcmU6OnNpbWQ6OmNtcDo6U2ltZFBhcnRpYWxPcmQ7CisrdXNl IGNvcmU6OnNpbWQ6Om1hc2sxNng4OworK3VzZSBjb3JlOjpzaW1kOjptYXNrOHgxNjsKKyt1c2Ug Y29yZTo6c2ltZDo6c2ltZF9zd2l6emxlOworK3VzZSBjb3JlOjpzaW1kOjp1MTZ4ODsKKyt1c2Ug Y29yZTo6c2ltZDo6dTh4MTY7CisrdXNlIGNvcmU6OnNpbWQ6OlRvQnl0ZXM7CisgCisgLy8gVE9E TzogTWlncmF0ZSB1bmFsaWduZWQgYWNjZXNzIHRvIHN0ZGxpYiBjb2RlIGlmL3doZW4gdGhlIFJG QworIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxsLzE3MjUgaXMgaW1w bGVtZW50ZWQuCisgCisrLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZv ciBhbiB1bmFsaWduZWQgcmVhZCBvZiAxNiBieXRlcworICNbaW5saW5lKGFsd2F5cyldCisgcHVi IHVuc2FmZSBmbiBsb2FkMTZfdW5hbGlnbmVkKHB0cjogKmNvbnN0IHU4KSAtPiB1OHgxNiB7Cist ICAgIGxldCBtdXQgc2ltZCA9IDo6Y29yZTo6bWVtOjp1bmluaXRpYWxpemVkKCk7CistICAgIDo6 Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHB0ciwgJm11dCBzaW1kIGFzICptdXQgdTh4 MTYgYXMgKm11dCB1OCwgMTYpOworLSAgICBzaW1kCisrICAgIGxldCBtdXQgc2ltZCA9IDo6Y29y ZTo6bWVtOjpNYXliZVVuaW5pdDo6PHU4eDE2Pjo6dW5pbml0KCk7CisrICAgIDo6Y29yZTo6cHRy Ojpjb3B5X25vbm92ZXJsYXBwaW5nKHB0ciwgc2ltZC5hc19tdXRfcHRyKCkgYXMgKm11dCB1OCwg MTYpOworKyAgICAvLyBTYWZldHk6IGNvcGllZCAxNiBieXRlcyBvZiBpbml0aWFsaXplZCBtZW1v cnkgaW50byB0aGlzLCBpdCBpcyBub3cgaW5pdGlhbGl6ZWQKKysgICAgc2ltZC5hc3N1bWVfaW5p dCgpCisgfQorIAorKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3Ig YW4gYWxpZ25lZC1mb3ItdTh4MTYgcmVhZCBvZiAxNiBieXRlcworICNbYWxsb3coZGVhZF9jb2Rl KV0KKyAjW2lubGluZShhbHdheXMpXQorIHB1YiB1bnNhZmUgZm4gbG9hZDE2X2FsaWduZWQocHRy OiAqY29uc3QgdTgpIC0+IHU4eDE2IHsKKyAgICAgKihwdHIgYXMgKmNvbnN0IHU4eDE2KQorIH0K KyAKKysvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIHVuYWxp Z25lZCBzdG9yZSBvZiAxNiBieXRlcworICNbaW5saW5lKGFsd2F5cyldCisgcHViIHVuc2FmZSBm biBzdG9yZTE2X3VuYWxpZ25lZChwdHI6ICptdXQgdTgsIHM6IHU4eDE2KSB7CisgICAgIDo6Y29y ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKCZzIGFzICpjb25zdCB1OHgxNiBhcyAqY29uc3Qg dTgsIHB0ciwgMTYpOworIH0KKyAKKysvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUg dmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXU4eDE2IHN0b3JlIG9mIDE2IGJ5dGVzCisgI1thbGxv dyhkZWFkX2NvZGUpXQorICNbaW5saW5lKGFsd2F5cyldCisgcHViIHVuc2FmZSBmbiBzdG9yZTE2 X2FsaWduZWQocHRyOiAqbXV0IHU4LCBzOiB1OHgxNikgeworICAgICAqKHB0ciBhcyAqbXV0IHU4 eDE2KSA9IHM7CisgfQorIAorKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxp ZCBmb3IgYW4gdW5hbGlnbmVkIHJlYWQgb2YgMTYgYnl0ZXMKKyAjW2lubGluZShhbHdheXMpXQor IHB1YiB1bnNhZmUgZm4gbG9hZDhfdW5hbGlnbmVkKHB0cjogKmNvbnN0IHUxNikgLT4gdTE2eDgg eworLSAgICBsZXQgbXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6dW5pbml0aWFsaXplZCgpOworLSAg ICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhwdHIgYXMgKmNvbnN0IHU4LCAmbXV0 IHNpbWQgYXMgKm11dCB1MTZ4OCBhcyAqbXV0IHU4LCAxNik7CistICAgIHNpbWQKKysgICAgbGV0 IG11dCBzaW1kID0gOjpjb3JlOjptZW06Ok1heWJlVW5pbml0Ojo8dTE2eDg+Ojp1bmluaXQoKTsK KysgICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcocHRyIGFzICpjb25zdCB1OCwg c2ltZC5hc19tdXRfcHRyKCkgYXMgKm11dCB1OCwgMTYpOworKyAgICAvLyBTYWZldHk6IGNvcGll ZCAxNiBieXRlcyBvZiBpbml0aWFsaXplZCBtZW1vcnkgaW50byB0aGlzLCBpdCBpcyBub3cgaW5p dGlhbGl6ZWQKKysgICAgc2ltZC5hc3N1bWVfaW5pdCgpCisgfQorIAorKy8vLyBTYWZldHkgaW52 YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gYWxpZ25lZC1mb3ItdTE2eDggcmVhZCBv ZiAxNiBieXRlcworICNbYWxsb3coZGVhZF9jb2RlKV0KKyAjW2lubGluZShhbHdheXMpXQorIHB1 YiB1bnNhZmUgZm4gbG9hZDhfYWxpZ25lZChwdHI6ICpjb25zdCB1MTYpIC0+IHUxNng4IHsKKyAg ICAgKihwdHIgYXMgKmNvbnN0IHUxNng4KQorIH0KKyAKKysvLy8gU2FmZXR5IGludmFyaWFudDog cHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIHVuYWxpZ25lZCBzdG9yZSBvZiAxNiBieXRlcworICNb aW5saW5lKGFsd2F5cyldCisgcHViIHVuc2FmZSBmbiBzdG9yZThfdW5hbGlnbmVkKHB0cjogKm11 dCB1MTYsIHM6IHUxNng4KSB7CisgICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5n KCZzIGFzICpjb25zdCB1MTZ4OCBhcyAqY29uc3QgdTgsIHB0ciBhcyAqbXV0IHU4LCAxNik7Cisg fQorIAorKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gYWxp Z25lZC1mb3ItdTE2eDggc3RvcmUgb2YgMTYgYnl0ZXMKKyAjW2FsbG93KGRlYWRfY29kZSldCisg I1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5zYWZlIGZuIHN0b3JlOF9hbGlnbmVkKHB0cjogKm11 dCB1MTYsIHM6IHUxNng4KSB7CisgICAgICoocHRyIGFzICptdXQgdTE2eDgpID0gczsKKyB9Cisg CisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKGFsbCh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIiwg dGFyZ2V0X2FyY2ggPSAieDg2XzY0IikpXSB7CitAQCAtOTUsMjM0ICsxMTQsMjQxIEBAIGNmZ19p ZiEgeworIHB1YiBmbiBzaW1kX2J5dGVfc3dhcChzOiB1MTZ4OCkgLT4gdTE2eDggeworICAgICBs ZXQgbGVmdCA9IHMgPDwgODsKKyAgICAgbGV0IHJpZ2h0ID0gcyA+PiA4OworICAgICBsZWZ0IHwg cmlnaHQKKyB9CisgCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgZm4gdG9fdTE2X2xhbmVzKHM6 IHU4eDE2KSAtPiB1MTZ4OCB7CistICAgIHMuaW50b19iaXRzKCkKKysgICAgdTE2eDg6OmZyb21f bmVfYnl0ZXMocykKKyB9CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0 dXJlID0gInNzZTIiKV0geworIAorICAgICAgICAgLy8gRXhwb3NlIGxvdy1sZXZlbCBtYXNrIGlu c3RlYWQgb2YgaGlnaGVyLWxldmVsIGNvbmNsdXNpb24sCisgICAgICAgICAvLyBiZWNhdXNlIHRo ZSBub24tQVNDSUkgY2FzZSB3b3VsZCBwZXJmb3JtIGxlc3Mgd2VsbCBvdGhlcndpc2UuCisrICAg ICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogVGhpcyByZXR1cm5lZCB2YWx1ZSBpcyB3 aGV0aGVyIGVhY2ggaGlnaCBiaXQgaXMgc2V0CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQor ICAgICAgICAgcHViIGZuIG1hc2tfYXNjaWkoczogdTh4MTYpIC0+IGkzMiB7CisgICAgICAgICAg ICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX2VwaTgocy5pbnRvX2Jp dHMoKSkKKysgICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX2VwaTgocy5pbnRvKCkpCisgICAg ICAgICAgICAgfQorICAgICAgICAgfQorIAorICAgICB9IGVsc2UgeworIAorICAgICB9CisgfQor IAorIGNmZ19pZiEgeworICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsK KyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2ltZF9pc19hc2Np aShzOiB1OHgxNikgLT4gYm9vbCB7CisgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgX21tX21vdmVtYXNrX2VwaTgocy5pbnRvX2JpdHMoKSkgPT0gMAorKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBsYXRmb3JtCisrICAg ICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KHMuaW50bygpKSA9PSAwCisgICAgICAgICAg ICAgfQorICAgICAgICAgfQorICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIpXXsKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2lt ZF9pc19hc2NpaShzOiB1OHgxNikgLT4gYm9vbCB7CisgICAgICAgICAgICAgdW5zYWZlIHsKKy0g ICAgICAgICAgICAgICAgdm1heHZxX3U4KHMuaW50b19iaXRzKCkpIDwgMHg4MAorKyAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBsYXRmb3JtCisr ICAgICAgICAgICAgICAgIHZtYXh2cV91OChzLmludG8oKSkgPCAweDgwCisgICAgICAgICAgICAg fQorICAgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0K KyAgICAgICAgIHB1YiBmbiBzaW1kX2lzX2FzY2lpKHM6IHU4eDE2KSAtPiBib29sIHsKKyAgICAg ICAgICAgICAvLyBUaGlzIG9wdGltaXplcyBiZXR0ZXIgb24gQVJNIHRoYW4KKyAgICAgICAgICAg ICAvLyB0aGUgbHQgZm9ybXVsYXRpb24uCisgICAgICAgICAgICAgbGV0IGhpZ2hlc3RfYXNjaWkg PSB1OHgxNjo6c3BsYXQoMHg3Rik7CistICAgICAgICAgICAgIXMuZ3QoaGlnaGVzdF9hc2NpaSku YW55KCkKKysgICAgICAgICAgICAhYW55X21hc2s4eDE2KHMuc2ltZF9ndChoaWdoZXN0X2FzY2lp KSkKKyAgICAgICAgIH0KKyAgICAgfQorIH0KKyAKKyBjZmdfaWYhIHsKKyAgICAgaWYgI1tjZmco dGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQor ICAgICAgICAgcHViIGZuIHNpbWRfaXNfc3RyX2xhdGluMShzOiB1OHgxNikgLT4gYm9vbCB7Cisg ICAgICAgICAgICAgaWYgc2ltZF9pc19hc2NpaShzKSB7CisgICAgICAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBsZXQgYWJvdmVfc3RyX2xhdGlu MSA9IHU4eDE2OjpzcGxhdCgweEM0KTsKKy0gICAgICAgICAgICBzLmx0KGFib3ZlX3N0cl9sYXRp bjEpLmFsbCgpCisrICAgICAgICAgICAgcy5zaW1kX2x0KGFib3ZlX3N0cl9sYXRpbjEpLmFsbCgp CisgICAgICAgICB9CisgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0 IildeworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX2lz X3N0cl9sYXRpbjEoczogdTh4MTYpIC0+IGJvb2wgeworICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgIHZtYXh2cV91OChzLmludG9fYml0cygpKSA8IDB4QzQKKysgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQor KyAgICAgICAgICAgICAgICB2bWF4dnFfdTgocy5pbnRvKCkpIDwgMHhDNAorICAgICAgICAgICAg IH0KKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyld CisgICAgICAgICBwdWIgZm4gc2ltZF9pc19zdHJfbGF0aW4xKHM6IHU4eDE2KSAtPiBib29sIHsK KyAgICAgICAgICAgICBsZXQgYWJvdmVfc3RyX2xhdGluMSA9IHU4eDE2OjpzcGxhdCgweEM0KTsK Ky0gICAgICAgICAgICBzLmx0KGFib3ZlX3N0cl9sYXRpbjEpLmFsbCgpCisrICAgICAgICAgICAg YWxsX21hc2s4eDE2KHMuc2ltZF9sdChhYm92ZV9zdHJfbGF0aW4xKSkKKyAgICAgICAgIH0KKyAg ICAgfQorIH0KKyAKKyBjZmdfaWYhIHsKKyAgICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIpXXsKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2lt ZF9pc19iYXNpY19sYXRpbihzOiB1MTZ4OCkgLT4gYm9vbCB7CisgICAgICAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG9fYml0cygpKSA8IDB4ODAKKysg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0 Zm9ybQorKyAgICAgICAgICAgICAgICB2bWF4dnFfdTE2KHMuaW50bygpKSA8IDB4ODAKKyAgICAg ICAgICAgICB9CisgICAgICAgICB9CisgCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAg ICAgICAgcHViIGZuIHNpbWRfaXNfbGF0aW4xKHM6IHUxNng4KSAtPiBib29sIHsKKyAgICAgICAg ICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICB2bWF4dnFfdTE2KHMuaW50b19iaXRzKCkp IDwgMHgxMDAKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUg Y29ycmVjdCBwbGF0Zm9ybQorKyAgICAgICAgICAgICAgICB2bWF4dnFfdTE2KHMuaW50bygpKSA8 IDB4MTAwCisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX2lzX2Jhc2ljX2xhdGlu KHM6IHUxNng4KSAtPiBib29sIHsKKyAgICAgICAgICAgICBsZXQgYWJvdmVfYXNjaWkgPSB1MTZ4 ODo6c3BsYXQoMHg4MCk7CistICAgICAgICAgICAgcy5sdChhYm92ZV9hc2NpaSkuYWxsKCkKKysg ICAgICAgICAgICBhbGxfbWFzazE2eDgocy5zaW1kX2x0KGFib3ZlX2FzY2lpKSkKKyAgICAgICAg IH0KKyAKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2ltZF9p c19sYXRpbjEoczogdTE2eDgpIC0+IGJvb2wgeworICAgICAgICAgICAgIC8vIEZvciBzb21lIHJl YXNvbiwgb24gU1NFMiB0aGlzIGZvcm11bGF0aW9uCisgICAgICAgICAgICAgLy8gc2VlbXMgZmFz dGVyIGluIHRoaXMgY2FzZSB3aGlsZSB0aGUgYWJvdmUKKyAgICAgICAgICAgICAvLyBmdW5jdGlv biBpcyBiZXR0ZXIgdGhlIG90aGVyIHdheSByb3VuZC4uLgorICAgICAgICAgICAgIGxldCBoaWdo ZXN0X2xhdGluMSA9IHUxNng4OjpzcGxhdCgweEZGKTsKKy0gICAgICAgICAgICAhcy5ndChoaWdo ZXN0X2xhdGluMSkuYW55KCkKKysgICAgICAgICAgICAhYW55X21hc2sxNng4KHMuc2ltZF9ndCho aWdoZXN0X2xhdGluMSkpCisgICAgICAgICB9CisgICAgIH0KKyB9CisgCisgI1tpbmxpbmUoYWx3 YXlzKV0KKyBwdWIgZm4gY29udGFpbnNfc3Vycm9nYXRlcyhzOiB1MTZ4OCkgLT4gYm9vbCB7Cisg ICAgIGxldCBtYXNrID0gdTE2eDg6OnNwbGF0KDB4RjgwMCk7CisgICAgIGxldCBzdXJyb2dhdGVf Yml0cyA9IHUxNng4OjpzcGxhdCgweEQ4MDApOworLSAgICAocyAmIG1hc2spLmVxKHN1cnJvZ2F0 ZV9iaXRzKS5hbnkoKQorKyAgICBhbnlfbWFzazE2eDgoKHMgJiBtYXNrKS5zaW1kX2VxKHN1cnJv Z2F0ZV9iaXRzKSkKKyB9CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKHRhcmdldF9hcmNo ID0gImFhcmNoNjQiKV17CisgICAgICAgICBtYWNyb19ydWxlcyEgYWFyY2g2NF9yZXR1cm5fZmFs c2VfaWZfYmVsb3dfaGVicmV3IHsKKyAgICAgICAgICAgICAoJHM6aWRlbnQpID0+ICh7CisgICAg ICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBpZiB2bWF4dnFfdTE2 KCRzLmludG9fYml0cygpKSA8IDB4MDU5MCB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBsYXRmb3JtCisrICAgICAgICAgICAgICAg ICAgICBpZiB2bWF4dnFfdTE2KCRzLmludG8oKSkgPCAweDA1OTAgeworICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgIH0pCisgICAgICAgICB9CisgCisgICAgICAgICBtYWNy b19ydWxlcyEgbm9uX2FhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2FsbCB7CisgICAgICAgICAgICAg KCRzOmlkZW50KSA9PiAoKQorICAgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgICAgbWFj cm9fcnVsZXMhIGFhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2JlbG93X2hlYnJldyB7CisgICAgICAg ICAgICAgKCRzOmlkZW50KSA9PiAoKQorICAgICAgICAgfQorIAorICAgICAgICAgbWFjcm9fcnVs ZXMhIG5vbl9hYXJjaDY0X3JldHVybl9mYWxzZV9pZl9hbGwgeworICAgICAgICAgICAgICgkczpp ZGVudCkgPT4gKHsKKy0gICAgICAgICAgICAgICAgaWYgJHMuYWxsKCkgeworKyAgICAgICAgICAg ICAgICBpZiBhbGxfbWFzazE2eDgoJHMpIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBm YWxzZTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0pCisgICAgICAgICB9Cisg ICAgIH0KKyB9CisgCisgbWFjcm9fcnVsZXMhIGluX3JhbmdlMTZ4OCB7CisgICAgICgkczppZGVu dCwgJHN0YXJ0OmV4cHIsICRlbmQ6ZXhwcikgPT4ge3sKKyAgICAgICAgIC8vIFNJTUQgc3ViIGlz IHdyYXBwaW5nCistICAgICAgICAoJHMgLSB1MTZ4ODo6c3BsYXQoJHN0YXJ0KSkubHQodTE2eDg6 OnNwbGF0KCRlbmQgLSAkc3RhcnQpKQorKyAgICAgICAgKCRzIC0gdTE2eDg6OnNwbGF0KCRzdGFy dCkpLnNpbWRfbHQodTE2eDg6OnNwbGF0KCRlbmQgLSAkc3RhcnQpKQorICAgICB9fTsKKyB9Cisg CisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgZm4gaXNfdTE2eDhfYmlkaShzOiB1MTZ4OCkgLT4g Ym9vbCB7CisgICAgIC8vIFdlIHRyeSB0byBmaXJzdCBxdWlja2x5IHJlZnV0ZSB0aGUgUlRMbmVz cyBvZiB0aGUgdmVjdG9yLiBJZiB0aGF0CisgICAgIC8vIGZhaWxzLCB3ZSBkbyB0aGUgcmVhbCBS VEwgY2hlY2ssIHNvIGluIHRoYXQgY2FzZSB3ZSBlbmQgdXAgd2FzdGluZworICAgICAvLyB0aGUg d29yayBmb3IgdGhlIHVwLWZyb250IHF1aWNrIGNoZWNrcy4gRXZlbiB0aGUgcXVpY2stY2hlY2sg aXMKKyAgICAgLy8gdHdvLWZvbGQgaW4gb3JkZXIgdG8gcmV0dXJuIGBmYWxzZWAgQVNBUCBpZiBl dmVyeXRoaW5nIGlzIGJlbG93CisgICAgIC8vIEhlYnJldy4KKyAKKyAgICAgYWFyY2g2NF9yZXR1 cm5fZmFsc2VfaWZfYmVsb3dfaGVicmV3IShzKTsKKyAKKy0gICAgbGV0IGJlbG93X2hlYnJldyA9 IHMubHQodTE2eDg6OnNwbGF0KDB4MDU5MCkpOworKyAgICBsZXQgYmVsb3dfaGVicmV3ID0gcy5z aW1kX2x0KHUxNng4OjpzcGxhdCgweDA1OTApKTsKKyAKKyAgICAgbm9uX2FhcmNoNjRfcmV0dXJu X2ZhbHNlX2lmX2FsbCEoYmVsb3dfaGVicmV3KTsKKyAKKy0gICAgaWYgKGJlbG93X2hlYnJldyB8 IGluX3JhbmdlMTZ4OCEocywgMHgwOTAwLCAweDIwMEYpIHwgaW5fcmFuZ2UxNng4IShzLCAweDIw NjgsIDB4RDgwMikpLmFsbCgpIHsKKysgICAgaWYgYWxsX21hc2sxNng4KAorKyAgICAgICAgYmVs b3dfaGVicmV3IHwgaW5fcmFuZ2UxNng4IShzLCAweDA5MDAsIDB4MjAwRikgfCBpbl9yYW5nZTE2 eDghKHMsIDB4MjA2OCwgMHhEODAyKSwKKysgICAgKSB7CisgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgIH0KKyAKKyAgICAgLy8gUXVpY2sgcmVmdXRhdGlvbiBmYWlsZWQuIExldCdzIGRvIHRo ZSBmdWxsIGNoZWNrLgorIAorLSAgICAoaW5fcmFuZ2UxNng4IShzLCAweDA1OTAsIDB4MDkwMCkK Ky0gICAgICAgIHwgaW5fcmFuZ2UxNng4IShzLCAweEZCMUQsIDB4RkUwMCkKKy0gICAgICAgIHwg aW5fcmFuZ2UxNng4IShzLCAweEZFNzAsIDB4RkVGRikKKy0gICAgICAgIHwgaW5fcmFuZ2UxNng4 IShzLCAweEQ4MDIsIDB4RDgwNCkKKy0gICAgICAgIHwgaW5fcmFuZ2UxNng4IShzLCAweEQ4M0Es IDB4RDgzQykKKy0gICAgICAgIHwgcy5lcSh1MTZ4ODo6c3BsYXQoMHgyMDBGKSkKKy0gICAgICAg IHwgcy5lcSh1MTZ4ODo6c3BsYXQoMHgyMDJCKSkKKy0gICAgICAgIHwgcy5lcSh1MTZ4ODo6c3Bs YXQoMHgyMDJFKSkKKy0gICAgICAgIHwgcy5lcSh1MTZ4ODo6c3BsYXQoMHgyMDY3KSkpCistICAg IC5hbnkoKQorKyAgICBhbnlfbWFzazE2eDgoCisrICAgICAgICAoaW5fcmFuZ2UxNng4IShzLCAw eDA1OTAsIDB4MDkwMCkKKysgICAgICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhGQjFELCAw eEZFMDApCisrICAgICAgICAgICAgfCBpbl9yYW5nZTE2eDghKHMsIDB4RkU3MCwgMHhGRUZGKQor KyAgICAgICAgICAgIHwgaW5fcmFuZ2UxNng4IShzLCAweEQ4MDIsIDB4RDgwNCkKKysgICAgICAg ICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhEODNBLCAweEQ4M0MpCisrICAgICAgICAgICAgfCBz LnNpbWRfZXEodTE2eDg6OnNwbGF0KDB4MjAwRikpCisrICAgICAgICAgICAgfCBzLnNpbWRfZXEo dTE2eDg6OnNwbGF0KDB4MjAyQikpCisrICAgICAgICAgICAgfCBzLnNpbWRfZXEodTE2eDg6OnNw bGF0KDB4MjAyRSkpCisrICAgICAgICAgICAgfCBzLnNpbWRfZXEodTE2eDg6OnNwbGF0KDB4MjA2 NykpKSwKKysgICAgKQorIH0KKyAKKyAjW2lubGluZShhbHdheXMpXQorIHB1YiBmbiBzaW1kX3Vu cGFjayhzOiB1OHgxNikgLT4gKHUxNng4LCB1MTZ4OCkgeworLSAgICB1bnNhZmUgeworLSAgICAg ICAgbGV0IGZpcnN0OiB1OHgxNiA9IHNodWZmbGUhKAorLSAgICAgICAgICAgIHMsCistICAgICAg ICAgICAgdTh4MTY6OnNwbGF0KDApLAorLSAgICAgICAgICAgIFswLCAxNiwgMSwgMTcsIDIsIDE4 LCAzLCAxOSwgNCwgMjAsIDUsIDIxLCA2LCAyMiwgNywgMjNdCistICAgICAgICApOworLSAgICAg ICAgbGV0IHNlY29uZDogdTh4MTYgPSBzaHVmZmxlISgKKy0gICAgICAgICAgICBzLAorLSAgICAg ICAgICAgIHU4eDE2OjpzcGxhdCgwKSwKKy0gICAgICAgICAgICBbOCwgMjQsIDksIDI1LCAxMCwg MjYsIDExLCAyNywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxXQorLSAgICAgICAgKTsK Ky0gICAgICAgIChmaXJzdC5pbnRvX2JpdHMoKSwgc2Vjb25kLmludG9fYml0cygpKQorLSAgICB9 CisrICAgIGxldCBmaXJzdDogdTh4MTYgPSBzaW1kX3N3aXp6bGUhKAorKyAgICAgICAgcywKKysg ICAgICAgIHU4eDE2OjpzcGxhdCgwKSwKKysgICAgICAgIFswLCAxNiwgMSwgMTcsIDIsIDE4LCAz LCAxOSwgNCwgMjAsIDUsIDIxLCA2LCAyMiwgNywgMjNdCisrICAgICk7CisrICAgIGxldCBzZWNv bmQ6IHU4eDE2ID0gc2ltZF9zd2l6emxlISgKKysgICAgICAgIHMsCisrICAgICAgICB1OHgxNjo6 c3BsYXQoMCksCisrICAgICAgICBbOCwgMjQsIDksIDI1LCAxMCwgMjYsIDExLCAyNywgMTIsIDI4 LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxXQorKyAgICApOworKyAgICAodTE2eDg6OmZyb21fbmVf Ynl0ZXMoZmlyc3QpLCB1MTZ4ODo6ZnJvbV9uZV9ieXRlcyhzZWNvbmQpKQorIH0KKyAKKyBjZmdf aWYhIHsKKyAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7CisgICAgICAg ICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfcGFjayhhOiB1MTZ4OCwg YjogdTE2eDgpIC0+IHU4eDE2IHsKKyAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICBfbW1fcGFja3VzX2VwaTE2KGEuaW50b19iaXRzKCksIGIuaW50b19iaXRzKCkpLmludG9f Yml0cygpCisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNv cnJlY3QgcGxhdGZvcm0KKysgICAgICAgICAgICAgICAgX21tX3BhY2t1c19lcGkxNihhLmludG8o KSwgYi5pbnRvKCkpLmludG8oKQorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfSBl bHNlIHsKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2ltZF9w YWNrKGE6IHUxNng4LCBiOiB1MTZ4OCkgLT4gdTh4MTYgeworLSAgICAgICAgICAgIHVuc2FmZSB7 CistICAgICAgICAgICAgICAgIGxldCBmaXJzdDogdTh4MTYgPSBhLmludG9fYml0cygpOworLSAg ICAgICAgICAgICAgICBsZXQgc2Vjb25kOiB1OHgxNiA9IGIuaW50b19iaXRzKCk7CistICAgICAg ICAgICAgICAgIHNodWZmbGUhKAorLSAgICAgICAgICAgICAgICAgICAgZmlyc3QsCistICAgICAg ICAgICAgICAgICAgICBzZWNvbmQsCistICAgICAgICAgICAgICAgICAgICBbMCwgMiwgNCwgNiwg OCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwXQorLSAgICAgICAg ICAgICAgICApCistICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGxldCBmaXJzdDogdTh4MTYg PSBhLnRvX25lX2J5dGVzKCk7CisrICAgICAgICAgICAgbGV0IHNlY29uZDogdTh4MTYgPSBiLnRv X25lX2J5dGVzKCk7CisrICAgICAgICAgICAgc2ltZF9zd2l6emxlISgKKysgICAgICAgICAgICAg ICAgZmlyc3QsCisrICAgICAgICAgICAgICAgIHNlY29uZCwKKysgICAgICAgICAgICAgICAgWzAs IDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQsIDE2LCAxOCwgMjAsIDIyLCAyNCwgMjYsIDI4LCAzMF0K KysgICAgICAgICAgICApCisgICAgICAgICB9CisgICAgIH0KKyB9CisgCisgI1tjZmcodGVzdCld CisgbW9kIHRlc3RzIHsKKyAgICAgdXNlIHN1cGVyOjoqOworICAgICB1c2UgYWxsb2M6OnZlYzo6 VmVjOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Npbmds ZV9ieXRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvc2luZ2xlX2J5dGUu cnMKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbmdsZV9ieXRlLnJz CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycwor QEAgLTQ4LDE2ICs0OCwxOSBAQCBpbXBsIFNpbmdsZUJ5dGVEZWNvZGVyIHsKKyAgICAgICAgICAg ICAgICAgQ29weUFzY2lpUmVzdWx0OjpHb09uKChtdXQgbm9uX2FzY2lpLCBtdXQgaGFuZGxlKSkg PT4gJ21pZGRsZTogbG9vcCB7CisgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydCBub24tYm9p bGVycGxhdGUKKyAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAv LyBTaW5jZSB0aGUgbm9uLUFTQ0lJbmVzcyBvZiBgbm9uX2FzY2lpYCBpcyBoaWRkZW4gZnJvbQor ICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG9wdGltaXplciwgaXQgY2FuJ3QgZmlndXJlIG91 dCB0aGF0IGl0J3MgT0sgdG8KKyAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXRpY2FsbHkgb21p dCB0aGUgYm91bmQgY2hlY2sgd2hlbiBhY2Nlc3NpbmcKKyAgICAgICAgICAgICAgICAgICAgIC8v IGBbdTE2OyAxMjhdYCB3aXRoIGFuIGluZGV4CisgICAgICAgICAgICAgICAgICAgICAvLyBgbm9u X2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplYC4KKysgICAgICAgICAgICAgICAgICAgIC8vCisr ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGBub25fYXNjaWlgIGlzIGEgdTggYnl0ZSA+ PTB4ODAsIGZyb20gdGhlIGludmFyaWFudHMKKysgICAgICAgICAgICAgICAgICAgIC8vIG9uIFV0 ZjhEZXN0aW5hdGlvbjo6Y29weV9hc2NpaV9mcm9tX2NoZWNrX3NwYWNlX2JtcCgpCisgICAgICAg ICAgICAgICAgICAgICBsZXQgbWFwcGVkID0KKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNh ZmUgeyAqKHNlbGYudGFibGUuZ2V0X3VuY2hlY2tlZChub25fYXNjaWkgYXMgdXNpemUgLSAweDgw dXNpemUpKSB9OworICAgICAgICAgICAgICAgICAgICAgLy8gbGV0IG1hcHBlZCA9IHNlbGYudGFi bGVbbm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplXTsKKyAgICAgICAgICAgICAgICAgICAg IGlmIG1hcHBlZCA9PSAwdTE2IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNvZGVyUmVzdWx0OjpNYWxmb3JtZWQoMSwg MCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5jb25zdW1lZCgpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGUud3JpdHRlbigpLAorQEAgLTE0Niw4MiAr MTQ5LDEwMyBAQCBpbXBsIFNpbmdsZUJ5dGVEZWNvZGVyIHsKKyAgICAgICAgIGRzdDogJm11dCBb dTE2XSwKKyAgICAgICAgIF9sYXN0OiBib29sLAorICAgICApIC0+IChEZWNvZGVyUmVzdWx0LCB1 c2l6ZSwgdXNpemUpIHsKKyAgICAgICAgIGxldCAocGVuZGluZywgbGVuZ3RoKSA9IGlmIGRzdC5s ZW4oKSA8IHNyYy5sZW4oKSB7CisgICAgICAgICAgICAgKERlY29kZXJSZXN1bHQ6Ok91dHB1dEZ1 bGwsIGRzdC5sZW4oKSkKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgKERlY29kZXJS ZXN1bHQ6OklucHV0RW1wdHksIHNyYy5sZW4oKSkKKyAgICAgICAgIH07CisrICAgICAgICAvLyBT YWZldHkgaW52YXJpYW50OiBjb252ZXJ0ZWQgPD0gbGVuZ3RoLiBRdWl0ZSBvZnRlbiB3ZSBoYXZl IGBjb252ZXJ0ZWQgPCBsZW5ndGhgCisrICAgICAgICAvLyB3aGljaCB3aWxsIGJlIHNlcGFyYXRl bHkgbWFya2VkLgorICAgICAgICAgbGV0IG11dCBjb252ZXJ0ZWQgPSAwdXNpemU7CisgICAgICAg ICAnb3V0ZXJtb3N0OiBsb29wIHsKKyAgICAgICAgICAgICBtYXRjaCB1bnNhZmUgeworKyAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IGxlbmd0aCBpcyB0aGUgbWluaW11bSBsZW5ndGgsIGBzcmMv ZHN0ICsgeGAgd2lsbCBhbHdheXMgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuIC0g eGAKKyAgICAgICAgICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW4oCisgICAgICAgICAgICAg ICAgICAgICBzcmMuYXNfcHRyKCkuYWRkKGNvbnZlcnRlZCksCisgICAgICAgICAgICAgICAgICAg ICBkc3QuYXNfbXV0X3B0cigpLmFkZChjb252ZXJ0ZWQpLAorICAgICAgICAgICAgICAgICAgICAg bGVuZ3RoIC0gY29udmVydGVkLAorICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgfSB7 CisgICAgICAgICAgICAgICAgIE5vbmUgPT4geworICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IChwZW5kaW5nLCBsZW5ndGgsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgU29tZSgobXV0IG5vbl9hc2NpaSwgY29uc3VtZWQpKSA9PiB7CisrICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiBgY29udmVydGVkIDw9IGxlbmd0aGAgdXBo ZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGNvbnN1bWUKKysgICAgICAgICAgICAgICAgICAgIC8v IHVwIHRvIGBsZW5ndGggLSBjb252ZXJ0ZWRgIGJ5dGVzLgorKyAgICAgICAgICAgICAgICAgICAg Ly8KKysgICAgICAgICAgICAgICAgICAgIC8vIEZ1cnRoZXJtb3JlLCBpbiB0aGlzIGNvbnRleHQs CisrICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gYXNzdW1lIGBjb252ZXJ0ZWQgPCBsZW5n dGhgIHNpbmNlIHRoaXMgYnJhbmNoIGlzIG9ubHkgZXZlciBoaXQgd2hlbgorKyAgICAgICAgICAg ICAgICAgICAgLy8gYXNjaWlfdG9fYmFzaWNfbGF0aW4gZmFpbHMgdG8gY29uc3VtZSB0aGUgZW50 aXJlIHNsaWNlCisgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0gY29uc3VtZWQ7Cisg ICAgICAgICAgICAgICAgICAgICAnbWlkZGxlOiBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBgY29udmVydGVkYCBkb2Vzbid0IGNvdW50IHRoZSByZWFkaW5nIG9mIGBub25fYXNj aWlgIHlldC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB0aGUgbm9uLUFTQ0lJ bmVzcyBvZiBgbm9uX2FzY2lpYCBpcyBoaWRkZW4gZnJvbQorICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRoZSBvcHRpbWl6ZXIsIGl0IGNhbid0IGZpZ3VyZSBvdXQgdGhhdCBpdCdzIE9LIHRv CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhdGljYWxseSBvbWl0IHRoZSBib3VuZCBj aGVjayB3aGVuIGFjY2Vzc2luZworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBbdTE2OyAx MjhdYCB3aXRoIGFuIGluZGV4CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYG5vbl9hc2Np aSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZWAuCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8KKysg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGNhbiByZWx5IG9uIGBub25fYXNj aWlgIGJlaW5nIGJldHdlZW4gYDB4ODBgIGFuZCBgMHhGRmAgZHVlIHRvCisrICAgICAgICAgICAg ICAgICAgICAgICAgLy8gdGhlIGludmFyaWFudHMgb2YgYGFzY2lpX3RvX2Jhc2ljX2xhdGluKClg LCBhbmQgb3VyIHRhYmxlIGhhcyBlbm91Z2ggc3BhY2UgZm9yIHRoYXQuCisgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG1hcHBlZCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2FmZSB7ICooc2VsZi50YWJsZS5nZXRfdW5jaGVja2VkKG5vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4 ODB1c2l6ZSkpIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGV0IG1hcHBlZCA9IHNl bGYudGFibGVbbm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplXTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBtYXBwZWQgPT0gMHUxNiB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNvZGVyUmVz dWx0OjpNYWxmb3JtZWQoMSwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b252ZXJ0ZWQgKyAxLCAvLyArMSBgZm9yIG5vbl9hc2NpaWAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnZlcnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGJvdW5kIGNoZWNrIGhh cyBhbHJlYWR5IGJlZW4gcGVyZm9ybWVkCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogQXMgbWVudGlvbmVkIGFib3ZlLCBgY29udmVydGVkIDwgbGVuZ3RoYAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5nZXRfdW5jaGVja2VkX211dChjb252ZXJ0ZWQp KSA9IG1hcHBlZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVkIDw9IGxlbmd0aGAgdXBoZWxkLCBzaW5jZSBg Y29udmVydGVkIDwgbGVuZ3RoYCBiZWZvcmUgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnZlcnRlZCArPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5leHQsIGhhbmRs ZSBBU0NJSSBwdW5jdHVhdGlvbiBhbmQgbm9uLUFTQ0lJIHdpdGhvdXQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBnb2luZyBiYWNrIHRvIEFTQ0lJIGFjY2VsZXJhdGlvbi4gTm9uLUFTQ0lJ IHNjcmlwdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2UgQVNDSUkgcHVuY3R1YXRp b24sIHNvIHRoaXMgYXZvaWQgZ29pbmcgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBh Y2NlbGVyYXRpb24ganVzdCBmb3IgcHVuY3R1YXRpb24vc3BhY2UgYW5kIHRoZW4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBmYWlsaW5nLiBUaGlzIGlzIGEgc2lnbmlmaWNhbnQgYm9vc3Qg dG8gbm9uLUFTQ0lJCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2NyaXB0cy4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBTcGxpdCBvdXQgTGF0aW4gY29udmVydGVycyB3 aXRob3V0IHRoaXMgcGFydAorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc3R1ZmYg bWFrZXMgTGF0aW4gc2NyaXB0LWNvbnZlcnNpb24gc2xvd2VyLgorICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGNvbnZlcnRlZCA9PSBsZW5ndGggeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBhcmUgYmFj ayB0byBgY29udmVydGVkIDwgbGVuZ3RoYCBiZWNhdXNlIG9mIHRoZSA9PSBhYm92ZQorKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGFuZCBjYW4gcGVyZm9ybSB0aGlzIGNoZWNrLgorICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9IHVuc2FmZSB7ICooc3JjLmdldF91bmNoZWNr ZWQoY29udmVydGVkKSkgfTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGBj b252ZXJ0ZWQgPCBsZW5ndGhgIGlzIHVwaGVsZCBmb3IgdGhpcyBsb29wCisgICAgICAgICAgICAg ICAgICAgICAgICAgJ2lubmVybW9zdDogbG9vcCB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGIgPiAxMjcgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uX2Fz Y2lpID0gYjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlICdtaWRk bGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gVGVzdGluZyBvbiBIYXN3ZWxsIHNheXMgdGhhdCB3ZSBzaG91bGQgd3JpdGUg dGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5dGUgdW5jb25kaXRpb25hbGx5 IGluc3RlYWQgb2YgdHJ5aW5nIHRvIHVucmVhZCBpdAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyB0byBtYWtlIGl0IHBhcnQgb2YgdGhlIG5leHQgU0lNRCBzdHJpZGUuCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IGBjb252ZXJ0ZWQgPCBsZW5ndGhgIGlzIHRydWUgZm9yIHRoaXMg bG9vcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuZ2V0X3VuY2hlY2tl ZF9tdXQoY29udmVydGVkKSkgPSB1MTY6OmZyb20oYik7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBhcmUg bm93IGF0IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYC4gV2Ugc2hvdWxkICpub3QqIGBjb250aW51ZWAK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGxvb3Agd2l0aG91dCByZXZlcmlm eWluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0gMTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgYiA8IDYwIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBwdW5jdHVhdGlvbgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgY29udmVydGVkID09IGxlbmd0aCB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5nLCBsZW5ndGgsIGxlbmd0aCk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IHdlJ3JlIGJhY2sgdG8gYGNvbnZlcnRlZCA8PSBsZW5ndGhg IGJlY2F1c2Ugb2YgdGhlID09IGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiID0gdW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQpKSB9OworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGUgbG9vcCBjb250aW51ZXMg YXMgYGNvbnZlcnRlZCA8IGxlbmd0aGAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRpbnVlICdpbm5lcm1vc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgZ290IG1hcmt1cCBvciBBU0NJSSB0 ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlICdvdXRlcm1vc3Q7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorQEAgLTIyOSwxNiArMjUzLDE4IEBAIGltcGwg U2luZ2xlQnl0ZURlY29kZXIgeworICAgICB9CisgCisgICAgIHB1YiBmbiBsYXRpbjFfYnl0ZV9j b21wYXRpYmxlX3VwX3RvKCZzZWxmLCBidWZmZXI6ICZbdThdKSAtPiB1c2l6ZSB7CisgICAgICAg ICBsZXQgbXV0IGJ5dGVzID0gYnVmZmVyOworICAgICAgICAgbGV0IG11dCB0b3RhbCA9IDA7Cisg ICAgICAgICBsb29wIHsKKyAgICAgICAgICAgICBpZiBsZXQgU29tZSgobm9uX2FzY2lpLCBvZmZz ZXQpKSA9IHZhbGlkYXRlX2FzY2lpKGJ5dGVzKSB7CisgICAgICAgICAgICAgICAgIHRvdGFsICs9 IG9mZnNldDsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBjYW4gcmVseSBvbiBgbm9u X2FzY2lpYCBiZWluZyBiZXR3ZWVuIGAweDgwYCBhbmQgYDB4RkZgIGR1ZSB0bworKyAgICAgICAg ICAgICAgICAvLyB0aGUgaW52YXJpYW50cyBvZiBgYXNjaWlfdG9fYmFzaWNfbGF0aW4oKWAsIGFu ZCBvdXIgdGFibGUgaGFzIGVub3VnaCBzcGFjZSBmb3IgdGhhdC4KKyAgICAgICAgICAgICAgICAg bGV0IG1hcHBlZCA9IHVuc2FmZSB7ICooc2VsZi50YWJsZS5nZXRfdW5jaGVja2VkKG5vbl9hc2Np aSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZSkpIH07CisgICAgICAgICAgICAgICAgIGlmIG1hcHBlZCAh PSB1MTY6OmZyb20obm9uX2FzY2lpKSB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG90 YWw7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgdG90YWwgKz0gMTsKKyAg ICAgICAgICAgICAgICAgYnl0ZXMgPSAmYnl0ZXNbb2Zmc2V0ICsgMS4uXTsKKyAgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWw7CitAQCAtMzc5LDY0ICs0 MDUsODkgQEAgaW1wbCBTaW5nbGVCeXRlRW5jb2RlciB7CisgICAgICAgICBkc3Q6ICZtdXQgW3U4 XSwKKyAgICAgICAgIF9sYXN0OiBib29sLAorICAgICApIC0+IChFbmNvZGVyUmVzdWx0LCB1c2l6 ZSwgdXNpemUpIHsKKyAgICAgICAgIGxldCAocGVuZGluZywgbGVuZ3RoKSA9IGlmIGRzdC5sZW4o KSA8IHNyYy5sZW4oKSB7CisgICAgICAgICAgICAgKEVuY29kZXJSZXN1bHQ6Ok91dHB1dEZ1bGws IGRzdC5sZW4oKSkKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgKEVuY29kZXJSZXN1 bHQ6OklucHV0RW1wdHksIHNyYy5sZW4oKSkKKyAgICAgICAgIH07CisrICAgICAgICAvLyBTYWZl dHkgaW52YXJpYW50OiBjb252ZXJ0ZWQgPD0gbGVuZ3RoLiBRdWl0ZSBvZnRlbiB3ZSBoYXZlIGBj b252ZXJ0ZWQgPCBsZW5ndGhgCisrICAgICAgICAvLyB3aGljaCB3aWxsIGJlIHNlcGFyYXRlbHkg bWFya2VkLgorICAgICAgICAgbGV0IG11dCBjb252ZXJ0ZWQgPSAwdXNpemU7CisgICAgICAgICAn b3V0ZXJtb3N0OiBsb29wIHsKKyAgICAgICAgICAgICBtYXRjaCB1bnNhZmUgeworKyAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IGxlbmd0aCBpcyB0aGUgbWluaW11bSBsZW5ndGgsIGBzcmMvZHN0 ICsgeGAgd2lsbCBhbHdheXMgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuIC0geGAK KyAgICAgICAgICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWkoCisgICAgICAgICAgICAgICAg ICAgICBzcmMuYXNfcHRyKCkuYWRkKGNvbnZlcnRlZCksCisgICAgICAgICAgICAgICAgICAgICBk c3QuYXNfbXV0X3B0cigpLmFkZChjb252ZXJ0ZWQpLAorICAgICAgICAgICAgICAgICAgICAgbGVu Z3RoIC0gY29udmVydGVkLAorICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgfSB7Cisg ICAgICAgICAgICAgICAgIE5vbmUgPT4geworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChw ZW5kaW5nLCBsZW5ndGgsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgU29tZSgobXV0IG5vbl9hc2NpaSwgY29uc3VtZWQpKSA9PiB7CisrICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiBgY29udmVydGVkIDw9IGxlbmd0aGAgdXBoZWxk LCBzaW5jZSB0aGlzIGNhbiBvbmx5IGNvbnN1bWUKKysgICAgICAgICAgICAgICAgICAgIC8vIHVw IHRvIGBsZW5ndGggLSBjb252ZXJ0ZWRgIGJ5dGVzLgorKyAgICAgICAgICAgICAgICAgICAgLy8K KysgICAgICAgICAgICAgICAgICAgIC8vIEZ1cnRoZXJtb3JlLCBpbiB0aGlzIGNvbnRleHQsCisr ICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gYXNzdW1lIGBjb252ZXJ0ZWQgPCBsZW5ndGhg IHNpbmNlIHRoaXMgYnJhbmNoIGlzIG9ubHkgZXZlciBoaXQgd2hlbgorKyAgICAgICAgICAgICAg ICAgICAgLy8gYXNjaWlfdG9fYmFzaWNfbGF0aW4gZmFpbHMgdG8gY29uc3VtZSB0aGUgZW50aXJl IHNsaWNlCisgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0gY29uc3VtZWQ7CisgICAg ICAgICAgICAgICAgICAgICAnbWlkZGxlOiBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBgY29udmVydGVkYCBkb2Vzbid0IGNvdW50IHRoZSByZWFkaW5nIG9mIGBub25fYXNjaWlg IHlldC4KKyAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBzZWxmLmVuY29kZV91MTYobm9u X2FzY2lpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoYnl0ZSkgPT4gewor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHdlJ3JlIGFsbG93ZWQgdGhpcyBhY2Nl c3Mgc2luY2UgYGNvbnZlcnRlZCA8IGxlbmd0aGAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqKGRzdC5nZXRfdW5jaGVja2VkX211dChjb252ZXJ0ZWQpKSA9IGJ5dGU7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb252ZXJ0ZWQgKz0gMTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCBub3cKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lID0+IHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIG5lZWQgdG8ga25v dyBpZiB3ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBhIHN1cnJv Z2F0ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoaWdoX2JpdHMgPSBu b25fYXNjaWkgJiAweEZDMDB1MTY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBoaWdoX2JpdHMgPT0gMHhEODAwdTE2IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBoaWdoIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGNvbnZlcnRlZCArIDEgPT0gbGVuZ3RoIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gRW5kIG9mIGJ1ZmZlci4gVGhpcyBzdXJyb2dhdGUgaXMg dW5wYWlyZWQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmNvZGVy UmVzdWx0OjpVbm1hcHBhYmxlKCdcdXtGRkZEfScpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICsgMSwgLy8gKzEgYGZvciBub25fYXNjaWlg CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogY29udmVyZWQgPCBsZW5ndGggZnJvbSBvdXRzaWRlIHRoZSBt YXRjaCwgYW5kIGBjb252ZXJ0ZWQgKyAxICE9IGxlbmd0aGAsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU28gYGNvbnZlcnRlZCArIDEgPCBsZW5ndGhgIGFzIHdlbGwu IFdlJ3JlIGluIGJvdW5kcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBzZWNvbmQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzI6 OmZyb20odW5zYWZlIHsgKnNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCArIDEpIH0pOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlY29uZCAmIDB4RkMwMHUzMiAh PSAweERDMDB1MzIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5j b2RlclJlc3VsdDo6VW5tYXBwYWJsZSgnXHV7RkZGRH0nKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArIDEsIC8vICsxIGBmb3Igbm9uX2Fz Y2lpYAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVy dGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBjb2RlIHVuaXQgaXMgYSBsb3cgc3Vycm9nYXRlLgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhc3RyYWw6IGNoYXIgPSB1 bnNhZmUgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IFdlIGNhbiByZWx5IG9uIG5vbl9hc2NpaSBiZWluZyAweEQ4MDAtMHhEQkZGIHNpbmNlIHRo ZSBoaWdoIGJpdHMgYXJlIDB4RDgwMAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGVuLCAobm9uX2FzY2lpIDw8IDEwIC0gMHhEODAwIDw8IDEwKSBiZWNvbWVz IGJldHdlZW4gKDAgdG8gMHgzRkYpIDw8IDEwLCB3aGljaCBpcyBiZXR3ZWVuCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDB4NDAwIHRvIDB4ZmZjMDAuIEFkZGlu ZyB0aGUgMHgxMDAwMCBnaXZlcyBhIHJhbmdlIG9mIDB4MTA0MDAgdG8gMHgxMGZjMDAuIFN1YnRy YWN0aW5nIHRoZSAweERDMDAKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZ2l2ZXMgMHgyODAwIHRvIDB4MTAyMDAwCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFRoZSBzZWNvbmQgdGVybSBpcyBiZXR3ZWVuIDB4REMwMCBhbmQg MHhERkZGIGZyb20gdGhlIGNoZWNrIGFib3ZlLiBUaGlzIGdpdmVzIGEgbWF4aW11bQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwb3NzaWJsZSByYW5nZSBvZiAo MHgxMDQwMCArIDB4REMwMCkgdG8gKDB4MTAyMDAwICsgMHhERkZGKSB3aGljaCBpcyAweDFFMDAw IHRvIDB4MTBmZmZmLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBUaGlzIGlzIGluIHJhbmdlLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGcm9t IGEgVW5pY29kZSBwcmluY2lwbGVzIHBlcnNwZWN0aXZlIHRoaXMgY2FuIGFsc28gYmUgdmVyaWZp ZWQgYXMgd2UgaGF2ZSBjaGVja2VkIHRoYXQgYG5vbl9hc2NpaWAgaXMgYSBoaWdoIHN1cnJvZ2F0 ZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoMHhEODAwLi49 MHhEQkZGKSwgYW5kIHRoYXQgYHNlY29uZGAgaXMgYSBsb3cgc3Vycm9nYXRlIChgMHhEQzAwLi49 MHhERkZGYCksIGFuZCB3ZSBhcmUgYXBwbHlpbmcgcmV2ZXJzZSBvZiB0aGUgVVRDMTYgdHJhbnNm b3JtYXRpb24KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxn b3JpdGhtIDxodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtMTYjQ29kZV9wb2ludHNf ZnJvbV9VKzAxMDAwMF90b19VKzEwRkZGRj4sIGJ5IGFwcGx5aW5nIHRoZSBoaWdoIHN1cnJvZ2F0 ZSAtIDB4RDgwMCB0byB0aGUKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gaGlnaCB0ZW4gYml0cywgYW5kIHRoZSBsb3cgc3Vycm9nYXRlIC0gMHhEYzAwIHRvIHRo ZSBsb3cgdGVuIGJpdHMsIGFuZCB0aGVuIGFkZGluZyAweDEwMDAwCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDo6Y29yZTo6Y2hhcjo6ZnJvbV91MzJfdW5jaGVja2Vk KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHUzMjo6ZnJv bShub25fYXNjaWkpIDw8IDEwKSArIHNlY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0gKCgoMHhEODAwdTMyIDw8IDEwKSAtIDB4MV8wMDAwdTMy KSArIDB4REMwMHUzMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVuY29kZXJSZXN1bHQ6OlVubWFwcGFibGUoYXN0cmFsKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICsgMiwgLy8g KzIgYGZvciBub25fYXNjaWlgIGFuZCBgc2Vjb25kYAorQEAgLTQ1MSw1MiArNTAyLDYzIEBAIGlt cGwgU2luZ2xlQnl0ZUVuY29kZXIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb252ZXJ0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRW5jb2RlclJlc3VsdDo6dW5tYXBwYWJsZV9mcm9tX2JtcChub25fYXNjaWkpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArIDEsIC8vICsxIGBm b3Igbm9uX2FzY2lpYAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZl cnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgYnJhbmNoIGRpdmVyZ2VzLCBzbyBu byBuZWVkIHRvIHVwaG9sZCBpbnZhcmlhbnRzIG9uIGBjb252ZXJ0ZWRgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gTmV4dCwgaGFuZGxlIEFTQ0lJIHB1bmN0dWF0aW9uIGFuZCBub24t QVNDSUkgd2l0aG91dAorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdvaW5nIGJhY2sgdG8g QVNDSUkgYWNjZWxlcmF0aW9uLiBOb24tQVNDSUkgc2NyaXB0cworICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHVzZSBBU0NJSSBwdW5jdHVhdGlvbiwgc28gdGhpcyBhdm9pZCBnb2luZyB0bwor ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFjY2VsZXJhdGlvbiBqdXN0IGZvciBwdW5jdHVh dGlvbi9zcGFjZSBhbmQgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhaWxpbmcu IFRoaXMgaXMgYSBzaWduaWZpY2FudCBib29zdCB0byBub24tQVNDSUkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBzY3JpcHRzLgorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86 IFNwbGl0IG91dCBMYXRpbiBjb252ZXJ0ZXJzIHdpdGhvdXQgdGhpcyBwYXJ0CisgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdGhpcyBzdHVmZiBtYWtlcyBMYXRpbiBzY3JpcHQtY29udmVyc2lv biBzbG93ZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29udmVydGVkID09IGxlbmd0 aCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywgbGVuZ3Ro LCBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IHdlJ3JlIGJhY2sgdG8gYGNvbnZlcnRlZCA8IGxlbmd0aGAgZHVl IHRvIHRoZSA9PSBhYm92ZSBhbmQgY2FuIHBlcmZvcm0KKysgICAgICAgICAgICAgICAgICAgICAg ICAvLyB0aGUgdW5jaGVja2VkIHJlYWQKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHVuaXQgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCkpIH07CisgICAg ICAgICAgICAgICAgICAgICAgICAgJ2lubmVybW9zdDogbG9vcCB7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBsb29wIGFsd2F5cyBiZWdpbnMgd2l0aCBgY29u dmVydGVkIDwgbGVuZ3RoYCwgc2VlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo ZSBpbnZhcmlhbnQgb3V0c2lkZSBhbmQgdGhlIGNvbW1lbnQgb24gdGhlIGNvbnRpbnVlIGJlbG93 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHVuaXQgPiAxMjcgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbm9uX2FzY2lpID0gdW5pdDsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlICdtaWRkbGU7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGVzdGluZyBvbiBI YXN3ZWxsIHNheXMgdGhhdCB3ZSBzaG91bGQgd3JpdGUgdGhlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGJ5dGUgdW5jb25kaXRpb25hbGx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIHVu cmVhZCBpdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBtYWtlIGl0IHBhcnQg b2YgdGhlIG5leHQgU0lNRCBzdHJpZGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2FmZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IENhbiBy ZWx5IG9uIGNvbnZlcnRlZCA8IGxlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKihkc3QuZ2V0X3VuY2hlY2tlZF9tdXQoY29udmVydGVkKSkgPSB1bml0IGFzIHU4OworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnZlcnRlZCArPSAxOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgY29udmVy dGVkIDw9IGxlbmd0aGAgaGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB1bml0 IDwgNjAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgZ290IHB1 bmN0dWF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQg PT0gbGVuZ3RoIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g KHBlbmRpbmcsIGxlbmd0aCwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYGNvbnZl cnRlZCA8IGxlbmd0aGAgZHVlIHRvIHRoZSA9PSBhYm92ZS4gVGhlIHJlYWQgaXMgc2FmZS4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQgPSB1bnNhZmUgeyAqKHNyYy5nZXRf dW5jaGVja2VkKGNvbnZlcnRlZCkpIH07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFRoaXMgb25seSBoYXBwZW5zIGlmIGBjb252ZXJ0ZWQgPCBsZW5ndGhgLCBt YWludGFpbmluZyBpdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUg J2lubmVybW9zdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb3QgbWFya3VwIG9yIEFTQ0lJIHRleHQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgJ291dGVybW9zdDsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBBbGwgb3RoZXIgcm91dGVzIHRvIGhlcmUgZGl2 ZXJnZSBzbyB0aGUgY29udGludWUgaXMgdGhlIG9ubHkKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gd2F5IHRvIHJ1biB0aGUgaW5uZXJtb3N0IGxvb3AuCisgICAgICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9CisgfQorIAorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzCisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycworQEAgLTksMjIg KzksMjMgQEAKKyAKKyB1c2Ugc3VwZXI6Oio7CisgdXNlIGNyYXRlOjpoYW5kbGVzOjoqOworIHVz ZSBjcmF0ZTo6dmFyaWFudDo6KjsKKyAKKyBjZmdfaWYhIHsKKyAgICAgaWYgI1tjZmcoZmVhdHVy ZSA9ICJzaW1kLWFjY2VsIildIHsKKyAgICAgICAgIHVzZSBzaW1kX2Z1bmNzOjoqOworLSAgICAg ICAgdXNlIHBhY2tlZF9zaW1kOjp1MTZ4ODsKKysgICAgICAgIHVzZSBjb3JlOjpzaW1kOjp1MTZ4 ODsKKysgICAgICAgIHVzZSBjb3JlOjpzaW1kOjpjbXA6OlNpbWRQYXJ0aWFsT3JkOworIAorICAg ICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIGZuIHNoaWZ0X3VwcGVyKHVucGFja2Vk OiB1MTZ4OCkgLT4gdTE2eDggeworICAgICAgICAgICAgIGxldCBoaWdoZXN0X2FzY2lpID0gdTE2 eDg6OnNwbGF0KDB4N0YpOworLSAgICAgICAgICAgIHVucGFja2VkICsgdW5wYWNrZWQuZ3QoaGln aGVzdF9hc2NpaSkuc2VsZWN0KHUxNng4OjpzcGxhdCgweEY3MDApLCB1MTZ4ODo6c3BsYXQoMCkp ICAgICAgICB9CisrICAgICAgICAgICAgdW5wYWNrZWQgKyB1bnBhY2tlZC5zaW1kX2d0KGhpZ2hl c3RfYXNjaWkpLnNlbGVjdCh1MTZ4ODo6c3BsYXQoMHhGNzAwKSwgdTE2eDg6OnNwbGF0KDApKSAg ICAgICAgfQorICAgICB9IGVsc2UgeworICAgICB9CisgfQorIAorIHB1YiBzdHJ1Y3QgVXNlckRl ZmluZWREZWNvZGVyOworIAorIGltcGwgVXNlckRlZmluZWREZWNvZGVyIHsKKyAgICAgcHViIGZu IG5ldygpIC0+IFZhcmlhbnREZWNvZGVyIHsKK0BAIC0xMTEsMjAgKzExMiwyNSBAQCBpbXBsIFVz ZXJEZWZpbmVkRGVjb2RlciB7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIChEZWNv ZGVyUmVzdWx0OjpJbnB1dEVtcHR5LCBzcmMubGVuKCkpCisgICAgICAgICB9OworICAgICAgICAg Ly8gTm90IGJvdGhlcmluZyB3aXRoIGFsaWdubWVudAorICAgICAgICAgbGV0IHRhaWxfc3RhcnQg PSBsZW5ndGggJiAhMHhGOworICAgICAgICAgbGV0IHNpbWRfaXRlcmF0aW9ucyA9IGxlbmd0aCA+ PiA0OworICAgICAgICAgbGV0IHNyY19wdHIgPSBzcmMuYXNfcHRyKCk7CisgICAgICAgICBsZXQg ZHN0X3B0ciA9IGRzdC5hc19tdXRfcHRyKCk7CisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMg YGZvciBpIGluIDAuLmxlbmd0aCAvIDE2YAorICAgICAgICAgZm9yIGkgaW4gMC4uc2ltZF9pdGVy YXRpb25zIHsKKysgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgaW4gYm91bmRzOiBsZW5n dGggaXMgdGhlIG1pbnVtdW0gdmFsaWQgbGVuZ3RoIGZvciBib3RoIHNyYy9kc3QKKysgICAgICAg ICAgICAvLyBhbmQgaSByYW5nZXMgdG8gbGVuZ3RoLzE2LCBzbyBtdWx0aXBseWluZyBieSAxNiB3 aWxsIGFsd2F5cyBiZSBgPCBsZW5ndGhgIGFuZCBjYW4gZG8KKysgICAgICAgICAgICAvLyBhIDE2 IGJ5dGUgcmVhZAorICAgICAgICAgICAgIGxldCBpbnB1dCA9IHVuc2FmZSB7IGxvYWQxNl91bmFs aWduZWQoc3JjX3B0ci5hZGQoaSAqIDE2KSkgfTsKKyAgICAgICAgICAgICBsZXQgKGZpcnN0LCBz ZWNvbmQpID0gc2ltZF91bnBhY2soaW5wdXQpOworICAgICAgICAgICAgIHVuc2FmZSB7CisrICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogc2FtZSBhcyBhYm92ZSwgYnV0IHRoaXMgaXMgdHdvIGNv bnNlY3V0aXZlIDgtYnl0ZSByZWFkcworICAgICAgICAgICAgICAgICBzdG9yZThfdW5hbGlnbmVk KGRzdF9wdHIuYWRkKGkgKiAxNiksIHNoaWZ0X3VwcGVyKGZpcnN0KSk7CisgICAgICAgICAgICAg ICAgIHN0b3JlOF91bmFsaWduZWQoZHN0X3B0ci5hZGQoKGkgKiAxNikgKyA4KSwgc2hpZnRfdXBw ZXIoc2Vjb25kKSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgbGV0IHNy Y190YWlsID0gJnNyY1t0YWlsX3N0YXJ0Li5sZW5ndGhdOworICAgICAgICAgbGV0IGRzdF90YWls ID0gJm11dCBkc3RbdGFpbF9zdGFydC4ubGVuZ3RoXTsKKyAgICAgICAgIHNyY190YWlsCisgICAg ICAgICAgICAgLml0ZXIoKQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvLmFwcHZleW9yLnltbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmFwcHZleW9y LnltbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kLy5hcHB2ZXlvci55bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDU5ICswLDAgQEAK Ky1tYXRyaXg6CistICBhbGxvd19mYWlsdXJlczoKKy0gICAgIyBGSVhNRTogaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy83MgorLSAgICAtIFRB UkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKKy0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93 cy1nbnUKKy0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLWdudQorLSAgZmFzdF9maW5p c2g6IHRydWUKKy0KKy1lbnZpcm9ubWVudDoKKy0gIG1hdHJpeDoKKy0gICAgLSBUQVJHRVQ6IHg4 Nl82NC1wYy13aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVNOiBNSU5HVzY0CistICAgICAgTk9W RVJJRlk6ICIxIgorLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtbXN2YworLSAgICAg IE1TWVNURU06IE1JTkdXNjQKKy0gICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVyZT0r c3NlNC4yIgorLSAgICAgIE5PVkVSSUZZOiAiMSIKKy0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13 aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVNOiBNSU5HVzY0CistICAgICAgUlVTVEZMQUdTOiAi LUMgdGFyZ2V0LWZlYXR1cmU9K2F2eCIKKy0gICAgICBOT1ZFUklGWTogIjEiCistICAgIC0gVEFS R0VUOiB4ODZfNjQtcGMtd2luZG93cy1tc3ZjCistICAgICAgTVNZU1RFTTogTUlOR1c2NAorLSAg ICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSthdngyIgorLSAgICAgIE5PVkVSSUZZ OiAiMSIKKy0KKy0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93cy1tc3ZjCistICAgICAgTVNZ U1RFTTogTUlOR1czMgorLSAgICAgIE5PVkVSSUZZOiAiMSIKKy0gICAgLSBUQVJHRVQ6IGk2ODYt cGMtd2luZG93cy1tc3ZjCistICAgICAgTVNZU1RFTTogTUlOR1czMgorLSAgICAgIFJVU1RGTEFH UzogIi1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCistICAgICAgTk9WRVJJRlk6ICIxIgorLSAg ICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVNOiBNSU5HVzMy CistICAgICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eCIKKy0gICAgICBOT1ZF UklGWTogIjEiCistICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YworLSAgICAgIE1T WVNURU06IE1JTkdXMzIKKy0gICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4 MiIKKy0gICAgICBOT1ZFUklGWTogIjEiCistCistICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2lu ZG93cy1nbnUKKy0gICAgICBNU1lTVEVNOiBNSU5HVzY0CistCistICAgIC0gVEFSR0VUOiBpNjg2 LXBjLXdpbmRvd3MtZ251CistICAgICAgTVNZU1RFTTogTUlOR1czMgorLSAgICAtIFRBUkdFVDog eDg2XzY0LXBjLXdpbmRvd3MtZ251CistICAgICAgTVNZU1RFTTogTUlOR1c2NAorLWluc3RhbGw6 CistICAtIHBzOiBpZiAobHMgLXIgLiAtZmkgIioucnMiIHwgc2xzICJgdCIpIHsgdGhyb3cgIkZv dW5kIHRhYiBjaGFyYWN0ZXIiIH0KKy0gIC0gcHM6IFN0YXJ0LUZpbGVEb3dubG9hZCAiaHR0cHM6 Ly9zdGF0aWMucnVzdC1sYW5nLm9yZy9kaXN0L3J1c3QtbmlnaHRseS0ke2VudjpUQVJHRVR9LmV4 ZSIgLUZpbGVOYW1lICJydXN0LWluc3RhbGwuZXhlIgorLSAgLSBwczogLlxydXN0LWluc3RhbGwu ZXhlIC9WRVJZU0lMRU5UIC9OT1JFU1RBUlQgL0RJUj0iQzpccnVzdCIgfCBPdXQtTnVsbAorLSAg LSBwczogJGVudjpQQVRIPSIkZW52OlBBVEg7QzpccnVzdFxiaW4iCistICAtIHNldCBQQVRIPWM6 XG1zeXM2NFwlTVNZU1RFTSVcYmluO2M6XG1zeXM2NFx1c3JcYmluOyVQQVRIJQorLSAgLSBydXN0 YyAtdlYKKy0gIC0gY2FyZ28gLXZWCistYnVpbGQ6IGZhbHNlCistdGVzdF9zY3JpcHQ6IGJhc2gg LWMgImNpL3J1bi5zaCIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k Ly5jYXJnby1jaGVja3N1bS5qc29uIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uY2Fy Z28tY2hlY2tzdW0uanNvbgorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5jYXJnby1jaGVja3N1bS5qc29uCisrKysgL2Rldi9udWxs CitAQCAtMSwxICswLDAgQEAKKy17ImZpbGVzIjp7Ii5hcHB2ZXlvci55bWwiOiJmMWVkMDE4NTBl MGQ3MjVmOTQ5OGY1MmExYTYzZGRmNDA3MDJhZDZlMGJmNWIyZDdjNGMwNGQ3NmU5Njc5NGEzIiwi LmdpdGh1Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55bWwiOiJkMDQ5ZjAxNmRjNTM4MzBhM2ZjYzcz NTgzM2VjYTE2OGRmMmU0OTFmMzNiNmI0NGNlN2U0ZDVkMWRkNDUzODU0IiwiLmdpdGh1Yi93b3Jr Zmxvd3MvY2kueW1sIjoiMTcwYTIwNzRhZGQ1N2RkYzhmODhiNzgwMTQ5ZTQ5MzAxNjJjNmVlNDcx OGFkZDQzNjlkY2E4ZTNmZDZjMDIyYSIsIi5naXRodWIvd29ya2Zsb3dzL2RvY3MueW1sIjoiODZm N2ViNjUyYzkwMDYyNGU0ZGViNzYzMjBjZDkyMTc1ZGIxZmE3Mjk1YTc2ZjI4ZjMwMzM2ZmYwZmFk MTYwNCIsIi5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sIjoiZDg0N2JlMjkzZjll YzE3MDM4ZTQ1MDY1MmIxZWI3YmRjMjBiODA1YzE4YzVkYmFiMzRkMWQ5ZmY3YTljODk0MCIsIi50 cmF2aXMueW1sIjoiMzBhNjFhNWVjNTMzNTVmYzFmMzU4NWUxNjkwMjgwMzA4YzJiNzk2MTcwMWFi YzExZTgzODliMjM1YjY0NzE3OCIsIkNhcmdvLnRvbWwiOiIwMjE1MWM0MTVmMjY3YTZhZWI4NjUx MTU4NDcyNzQ0ZDcxZTFkOWRhODg4M2RkMjBiZTI1NzMxYTQyZTUyMGY0IiwiTElDRU5TRS1BUEFD SEUiOiJhNjBlZWE4MTc1MTQ1MzE2NjhkN2UwMDc2NTczMTQ0OWZlMTRkMDU5ZDMyNDllMGJjOTNi MzZkZTQ1Zjc1OWYyIiwiTElDRU5TRS1NSVQiOiI2NDg1YjhlZDMxMGQzZjAzNDBiZjFhZDFmNDc2 NDUwNjljZTQwNjlkY2M2YmI0NmM3ZDVjNmZhZjQxZGUxZmRiIiwiUkVBRE1FLm1kIjoiYzRhYzcw MjdhOWFiN2Q3ODU4YWE4OTU3ZDc0NTRkYmZjZGJiODFlNjA1YjZhMTcxZjA1MzEwY2MzY2FkMzc2 MiIsImJvcnMudG9tbCI6ImRlZTg4MWRjNjliOWI3ODM0ZTRlYmE1ZDk1YzNlZDVhNDE2ZDQ2Mjg4 MTVhMTY3ZDZhMjJkNGNiNGZiMDY0YjgiLCJidWlsZC5ycyI6IjAxOWVkMjljNDM5ODk3ODJkOGVl YzNhOTYxNjU0Y2ZjMTcyZDdhNzg5OGRhNGVjYThmNjU0NzAwYWY3ZTE5ODgiLCJjaS9hbGwuc2gi OiIyYWU2YjI0NDViNGRiODM4MzNlNDBiMzdlZmQwMDE2YzZiOTg3OWVlOTg4YjliM2VmOTRkYjU0 MzlhM2UxNjA2IiwiY2kvYW5kcm9pZC1pbnN0YWxsLW5kay5zaCI6ImJkY2Y5M2JhOTA0M2FjMTE4 NGUyYzUwNGEzZDQwYzQ3YzZjMTYwMWQ4ODJlMGYwYTI3YThlYjU2ZmJhYmNiNWYiLCJjaS9hbmRy b2lkLWluc3RhbGwtc2RrLnNoIjoiMzQ5MDQzMjAyMmM1YzhmNWExMTVjMDg0ZjdhOWFjYTE2MjZm OTZjMGM4N2ZmYjYyMDE5MjI4YzQzNDZiNDdlNCIsImNpL2FuZHJvaWQtc3lzaW1hZ2Uuc2giOiJl YmY0ZTVkYWExZjBmZTFiMjA5MmI3OWYwZjNmMTYxYzRjNDI3NWNiNzQ0ZTUyMzUyYzRkODFhYjQ1 MWU0YzVhIiwiY2kvYmVuY2htYXJrLnNoIjoiYjYxZDE5ZWY2YjkwZGViYThmYjc5ZGVlNzRjOGIw NjJkOTQ4NDQ2NzYyOTNkYTM0NmRhODdiYjc4YTlhNDlhNCIsImNpL2RlcGxveV9hbmRfcnVuX29u X2lvc19zaW11bGF0b3IucnMiOiJlYzhlY2Y4MmQ5MjA3MjY3NmFhNDdmMGQxYTNkMDIxYjYwYTdh ZTM1MzExNTNlZjEyZDJmZjQ1NDFmYzI5NGRjIiwiY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5k cm9pZC9Eb2NrZXJmaWxlIjoiYWNlMmU3ZDMzYzg3YmMwZjZkMzk2MmE0YTM0MDhjMDQ1NTc2NDZm N2Y1MWFiOTljZmJmNTc0OTA2Nzk2YjAxNiIsImNpL2RvY2tlci9hYXJjaDY0LXVua25vd24tbGlu dXgtZ251L0RvY2tlcmZpbGUiOiJkYTg4YzBkNTBmMTZkYzA4NDQ4YzdmZGYxZmE1ZWQyY2JlNTc2 YWNmOWU3ZGQ4NWI1YjgxODYyMWIyYThjNzAyIiwiY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4 LWdudWVhYmkvRG9ja2VyZmlsZSI6ImJiNWY4YWU4OTA3MDdjMTI4NjUyMjkwZmZjNTQ0NDQ3NjQz YmYxMjAzN2RkZDczYzZhZDY5ODlmODQ4Y2IzODAiLCJjaS9kb2NrZXIvYXJtLXVua25vd24tbGlu dXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUiOiIxYWZhZWZjYmMwNWI3NDA4NTlhY2Q0ZTA2N2JjOTI0 MzliZTZiY2JlOGYyZTk2Nzg0NzRmYjQzNGJjZDM5OGQ5IiwiY2kvZG9ja2VyL2FybXY3LWxpbnV4 LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUiOiIzNzBlNTVkMzMzMGE0MTNhM2NjZjY3N2IzYWZiM2Uw ZWY5MDE4YTVmYWIyNjNmYWE5N2FlOGFjMDE3ZmMyMjg2IiwiY2kvZG9ja2VyL2FybXY3LXVua25v d24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUiOiI4MjgyZWE3MDdhOTQxMDliZWVkNDdhNTc1 NzQ3NTVlMmQ1ODQwMTczNTkwNGEwM2Y4NWZiNjRjNTc4YzUzYjRmIiwiY2kvZG9ja2VyL2k1ODYt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6IjQ5NzkyOTIyMjY5ZjM3MWJkMjlkYTQ3Mjdl OTA4NTEwMWIyN2JlNjdhNmI5Nzc1NWQwMTk2YzYzMzE3ZjdhYmIiLCJjaS9kb2NrZXIvaTY4Ni11 bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiNDk3OTI5MjIyNjlmMzcxYmQyOWRhNDcyN2U5 MDg1MTAxYjI3YmU2N2E2Yjk3NzU1ZDAxOTZjNjMzMTdmN2FiYiIsImNpL2RvY2tlci9taXBzLXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiJiMmViYzI1Nzk3NjEyYzRmODM5NWZlOWQ0MDc3 MjUxNTYwNDQ5NTViZmJjZjQ0MjAzNmI3ZjU1YjQzYTVmOWRhIiwiY2kvZG9ja2VyL21pcHM2NC11 bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUiOiJiMGMxNjkyYWM2NWJjNTZkZDMwNDk0 YjE5OTNkOGU5MjljNDhjYzljNGI5MjAyOWI3Yzc1OTJhZjZkNGY5MjIwIiwiY2kvZG9ja2VyL21p cHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZSI6IjRlOTI0OWMxNzkzMDAx MzgxNDFkMGIyYjc0MDFiMTE4OTdmNjRhZWQ2OWY1NDFmMDc4YzFkYjQ1OTRkZjI4MjciLCJjaS9k b2NrZXIvbWlwc2VsLXVua25vd24tbGludXgtbXVzbC9Eb2NrZXJmaWxlIjoiMzE2NGM1MmIwZGNi YjAxYWZhNzgyOTJiMTViNWM0MzUwM2NjZjA0OTFjZjZlYjgwMWVjMmJmMjJhZTI3NGU1MiIsImNp L2RvY2tlci9wb3dlcnBjLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiJhZTgyNzQzMDk5 Mjg2MjBhNWRkMjMyYTQ2MjY0ZTA1Mzk5YmI3NDYyODhlYmVlMzg0M2E3MWM0MTYyMjA4Y2MzIiwi Y2kvZG9ja2VyL3Bvd2VycGM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiYmE1ZmJj NGJmM2JiOTFjZDUwYjQwNzI0OGRhMzEyMjU2ODFlZmM4ZjJiZTc2MThmNGEwYWIxMjE5YjM4OTUw OCIsImNpL2RvY2tlci9wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoi NTNmOTdmOGI5YjVhY2E3NTM0YjliZjllYTQ4ZjM1MTc1MDUyY2QyYTU2MGExMDdlMDFhZDI3MDcz MWMwMzJmYyIsImNpL2RvY2tlci9zMzkweC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoi ODlmNTQyMWNmMDZkODE3YWU5NDA5Mjk4N2U5MTQ0NzJlZjM4NGFkMmQxZmZmMjczNWJlM2Q4Nzg2 YmExMTIxNCIsImNpL2RvY2tlci9zcGFyYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUi OiI4M2ViYTE5NTc2NDg2ZjlkMTBkN2MwMzdkNjY5ZDcyYjMxYTY1NTY1YTQ3OWYzMGIyMmFhYjM2 YWFhMmZmOGRjIiwiY2kvZG9ja2VyL3RodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tl cmZpbGUiOiJjMmRlY2Q1NTkxYmQ3YTA5Mzc4OTAxYmVmNjI5Y2Q5NDRhY2YwNTJlYjU1ZTRmMzVi NzllYjljYjRkNjIyNDZhIiwiY2kvZG9ja2VyL3RodW1idjduZW9uLXVua25vd24tbGludXgtZ251 ZWFiaWhmL0RvY2tlcmZpbGUiOiI1MTk1NWE4YmYzYzRkNDQwZjQ3MzgyYWY2ZjU0MjZlYmZmOTRh YjAxYTA0ZGEzNjE3NWJhYmRhOWEwNTc3NDBmIiwiY2kvZG9ja2VyL3dhc20zMi11bmtub3duLXVu a25vd24vRG9ja2VyZmlsZSI6ImI5ODJiNDIxYzcwZGI0NzY5MDBkZjViNjBlMTllZjg4MTVlNmM3 ZGFlMjI2ODcyMjUwMDI3ODBjYWI3YjBhNzYiLCJjaS9kb2NrZXIveDg2XzY0LWxpbnV4LWFuZHJv aWQvRG9ja2VyZmlsZSI6ImExN2ViZGIxODZjZTJkZDZiNjIxMDBiNWE0MzllMDVhMWFiOWFkYWIx MTNlMjUwODg0M2UxMjFhYWVhNTI5OTIiLCJjaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgt Z251LWVtdWxhdGVkL0RvY2tlcmZpbGUiOiI0NGI2MjAzZDkyOTBiZmRjNTNkODEyMTlmMDkzN2Ux MTEwODQ3YTIzZGQ5ODJlYzhjNGRlMzg4MzU0ZjAxNTM2IiwiY2kvZG9ja2VyL3g4Nl82NC11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiN2Y0ZTNjYTVmYTI4OGVhNzBlZGI0ZDFmNzUzMDk3 MDhjZDMwYjE5MmUyZTQ0NDRlNjFjNGQ1YjNiNThmODljZiIsImNpL2RveC5zaCI6IjQzNGU5NjEx YzUyZTM4OTMxMmQyYjAzNTY0YWRmMDk0MjlmMTBjYzc2ZmU2NmE4NjQ0YWRiMTA0OTAzYjg3Yjci LCJjaS9saW51eC1zMzkweC5zaCI6ImQ2YjczMmQ3Nzk1YjRiYTEzMTMyNmFmZjg5M2JjYTYyMjhh N2QyZWIwZTk0MDJmMTM1NzA1NDEzZGJiZTBkY2UiLCJjaS9saW51eC1zcGFyYzY0LnNoIjoiYzky OTY2ODM4YjFhYjdhZDNiN2EzNDQ4MzNlZTcyNmFiYTZiNjQ3Y2Y1OTUyZTU2ZjBhZDFiYTQyMGIx MzMyNSIsImNpL2xsZC1zaGltLnJzIjoiM2Q3ZjcxZWMyM2E0OWUyYjY3ZjY5NGEwMTY4Nzg2Zjlh OTU0ZGRhMTVmNWExMzg4MTVkOTY2NjQzZmQzZmNjMyIsImNpL21heF9saW5lX3dpZHRoLnNoIjoi MGExNTE4YmJhNGM5ZWNhYTU1Njk0Y2IyZTk5MzBkMGUxOWMyNjViYWFiZjczMTQzZjE3ZjljZjI4 NWFhYTViYiIsImNpL3J1bi1kb2NrZXIuc2giOiI5MmUwMzYzOTBhZDliMGQxNmYxMDk1NzlkZjFi NWNlZDJlNzJlOWFmZWE0MGM3ZDAxMTQwMGViZDNhMmE5MGRlIiwiY2kvcnVuLnNoIjoiOWFmYWJj OTYxZTBlZTgzYjg3MjAxZjNmZDU1NGMxOWU1YjBjMzZmM2E5NWQwMTM1OTVlMjc2Yzk4ODJkZDBh NCIsImNpL3J1bl9leGFtcGxlcy5zaCI6ImQxYTIzYzZjMzUzNzRhMDY3OGJhNTExNGI5YjhmZWZk OGJlMGE3OWU3NzQ4NzJhOGJmMDg5OGQxYmFjYTE4ZDAiLCJjaS9ydW50ZXN0LWFuZHJvaWQucnMi OiIxNDVhOGU5Nzk5YTUyMjM5NzUwNjFmZTdlNTg2YWRlNTY2OWVlNDg3N2E3ZDdhNGNmNmI0YWI0 OGU4ZTM2YzdjIiwiY2kvc2V0dXBfYmVuY2htYXJrcy5zaCI6ImZhZTM5NjAwMjNmNmYzZDEzODhj ZDJhZDIyZmRiYWI0YjA3NWYxZjI5ZGQ0MjkyZDc5OTRhMjA3ODNiZWI2Y2YiLCJjaS90ZXN0LXJ1 bm5lci1saW51eCI6ImM4YWE2MDI1Y2ZmNTMwNmY0ZjMxZDBjNjFkYzVmOWQ0ZGQ1YTFkMTg5YWI2 MTNlZjhkNGMzNjdjNjk0ZDljY2QiLCJjb250cmlidXRpbmcubWQiOiIyZDI2MjkzMTBhZDRkNDY0 YzQ4MmJkYmI1ODE5ZjBkNmNlMjIzYzU3NmFlZWYyY2RjZTZhMWY2ODU3MDg1ZWE1IiwicGVyZi1n dWlkZS8uZ2l0aWdub3JlIjoiZmU4MmM3ZGE1NTEwNzlkODMyY2Y3NDIwMGIwYjM1OWI0ZGY5ODI4 Y2I0YTA0MTZmYTczODRmMDdhMmFlNmExMyIsInBlcmYtZ3VpZGUvYm9vay50b21sIjoiMTE1YTk4 Mjg0MTI2YzZiMTgwMTc4YjQ0NzEzMzE0Y2M0OTRmMDhhNzE2NjJlZTJjZTE1Y2Y2N2YxN2E1MTA2 NCIsInBlcmYtZ3VpZGUvc3JjL1NVTU1BUlkubWQiOiIzZTAzYmZmYzk5MWZkYzIwNTBmM2Q1MTg0 MmQ3MmQ5ZDIxZWE2YWJhYjU2YTNiYWYzYjJkNTk3M2E3OGI4OWUxIiwicGVyZi1ndWlkZS9zcmMv YXNjaWkuY3NzIjoiMjlhZmIwODgzM2IyZmUyMjUwZjA0MTJlMWZhMTE2MWEyNDMyYTA4MjBhMTQ5 NTNjODcxMjQ0MDc0MTdjNzQxYSIsInBlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZCI6IjVl NDk5MWZmNThhMTgzZWYwY2Q5ZmRjMWZlYjRjZDEyZDA4M2I0NGJkZjg3MzkzYmJiMDkyNzgwOGVm M2NlN2QiLCJwZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2FwcHJveC5tZCI6IjhjMDkwMzJmYTJk Nzk1YTBjNWRiMTc3NTgyNmM4NTBkMjhlYjI2Mjc4NDZkMDk2NWM2MGVlNzJkZTYzNzM1YWQiLCJw ZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5tZCI6IjMxMTA3NmJhNGI3NDFkNjA0YTgyZTc0 YjgzYThkN2U4YzMxOGZjYmQ3ZjY0YzQzOTJkMWNmNWFmOTVjNjAyNDMiLCJwZXJmLWd1aWRlL3Ny Yy9mbG9hdC1tYXRoL2ZwLm1kIjoiMDQxNTNlNzc1YWI2ZTRmMGQ3ODM3YmNjNTE1MjMwZDMyN2Iw NGVkZmEzNGM4NGNlOWM5ZTEwZWJhZWVmMmJlOCIsInBlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgv c3ZtbC5tZCI6IjA3OTg4NzNiOGVlZGFlZGE1ZmVkNjJkYzkxNjQ1YjU3YzIwNzc1YTAyZDNjZDc0 ZDhiZDA2OTU4ZjE1MTY1MDYiLCJwZXJmLWd1aWRlL3NyYy9pbnRyb2R1Y3Rpb24ubWQiOiI5ZjVh MTllOWU2NzUxZjI1ZDJkYWFkMzk4OTFhMGNjNjAwOTc0NTI3ZWM0YzgzMDU4NDNmOTYxODkxMDY3 MWJkIiwicGVyZi1ndWlkZS9zcmMvcHJvZi9saW51eC5tZCI6IjQ0NzczMWViNWRlN2Q2OTE2Njcy OGZkYmM1ZWNiMGMwYzlkYjY3OGVhNDkzYjQ1YTU5MmQ2N2RkMDAyMTg0YzAiLCJwZXJmLWd1aWRl L3NyYy9wcm9mL21jYS5tZCI6ImY1NmQ1NGYzZDIwZTdhYTRkMzIwNTIxODZlODIzN2IwM2Q2NTk3 MWViNWQxMTI4MDJiNDQyNTcwZmYxMWQzNDQiLCJwZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGlu Zy5tZCI6IjhhNjUwYzBmZDZlZGUwOTY0Nzg5YmI2NTc3NTU3ZWVlZjFkODIyNmE4OTY3ODg2MDJj ZTYxNTI4ZTI2MGU0M2MiLCJwZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUu bWQiOiI2MTVmODhkY2EwYTcwN2I2YzQxNmZhNjA1NDM1ZGQ2ZTFmYjUzNjFjYzYzOTQyOWNiZjY4 Y2Q4NzYyNGJkNzhiIiwicGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvZmVhdHVyZXMubWQi OiIxNzA3Nzc2MGZmMjRjMDA2YjYwNmRkMjE4ODljNTNkODcyMjhmNDMxMWYzYmEzYTU3NGY5YWZk ZWFjZDg2MTY1IiwicGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcubWQiOiI3 ZWQxZDcwNjhkODE3M2EwMGQ4NGMxNmNmZTU4NzFjZDY4YjlmMDRmOGQwY2NhMmQwMWViYzg0OTU3 ZWJmMmY2IiwicGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcHJhY3RpY2UubWQiOiJjNGIz NzE4NDJlMDA4NmRmMTc4NDg4ZmVjOTdmMjBkZWY4ZjBjNjJlZTU4OGJjZDI1ZmQ5NDhiOWIxZmEy MjdlIiwicGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVudGltZS5tZCI6IjgzNTQyNWY1 ZWU1OTdmYjNlNTFkMzZlNzI1YTgxZWJlZTI5ZjQ1NjEyMzFkMTk1NjNjZDRkYTgxZGJiMWNmY2Ii LCJwZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQiOiIwMTE5N2FjZjZm MGFkZWM4ZGIzMmI4NTkxODExZjY5Y2VjYjY1NTVhMmIwNWRjNWQ1ZWMyN2QwZTNmN2IwNjVlIiwi cGVyZi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1kIjoiYzYyMTFjMGVlOTFlNjA1NTJlYzU5MmQ4 OWQ5ZDk1N2VlZGMyMWRlZTNjYmQ4OWUxYWQ2NzY1ZWEwNmEyNzQ3MSIsInJ1c3RmbXQudG9tbCI6 ImQ5OWE0M2YzZjhlZjllNDI1Y2YwMWMzMzNmYmE5ZjAwNTFmODg4ZjVkODdhYjRlOGY2M2MyZjdk MGZlNjYyMGYiLCJzcmMvYXBpLnJzIjoiYmIxNzk1ZTk2NTdhODI5OGQzN2QyMzQ5YjQ1NDQzZjA4 ZTllNDU1Mzk5YWQ0YjcyNzAxODYwMDcyODQ3OGMxMCIsInNyYy9hcGkvYml0X21hbmlwLnJzIjoi MjdmMzA5N2ZjMGExMWUzYzQxMDcwNDlkOTc3OWU2ODBkY2Q2NzQwN2EwNjY3MDQwMDhhNmI5YzRm ZDUyOWUwNSIsInNyYy9hcGkvYml0bWFzay5ycyI6IjA1OGViYzM4YTJlMDM2M2YwN2E0NDFkM2U5 YTQ3NzVhYWVjNTdjY2IxNzBhMGU1ZDVlZmE1ZGM0NzQzYWIwN2IiLCJzcmMvYXBpL2Nhc3QucnMi OiIwM2I5NGEzZDMxNmFjN2I3YmU3MDY4ODEwMDQ0OTExZTk2NWU4ODlhMGFjZTdiYWU3NjI3NDlj YTc0YTkyNzQ3Iiwic3JjL2FwaS9jYXN0L21hY3Jvcy5ycyI6ImIwYTE0ZDBjODNhZDJlYmI3YTI3 NTE4MGY2ZDllM2YyYmMzMTJiYTU3YTdkM2Q2YzM5ZmFkNGUwZjIwZjk0MDgiLCJzcmMvYXBpL2Nh c3QvdjEyOC5ycyI6ImVkZDA5OTRlZmFjNDM3OWRmZjI2ZTE3ODQyM2E1MmRiYjNmZmViMzhiMWZj OTdjYWU5NzVkNzQ0YzAwYjRmYjYiLCJzcmMvYXBpL2Nhc3QvdjE2LnJzIjoiOTZiZDk4YzJkMjFi MDY2M2FiZTZjMGFiMzMwMDViMWZhNjkzZjNkYjdlZTY3OTUzNTEzOTEzNDM4NjM0ODRkYSIsInNy Yy9hcGkvY2FzdC92MjU2LnJzIjoiOGMzMWZlOTFmNWU3OGVmNzM3ZGZiYTY5NzljYzEyNDAyMTBj YjA5NGE4OWQyODRmZTQ1OWJmOGE5OTFjYTI0YiIsInNyYy9hcGkvY2FzdC92MzIucnMiOiJhOTlh NzlkZDg0ZDJhNWU2YWRmOWRiOTg3MDU2NzU5MTViZDAzZmQxMjg3ZDQ4OWM3ZmUzOGU4NGQ3ZTRh MDg2Iiwic3JjL2FwaS9jYXN0L3Y1MTIucnMiOiJjMGRkNTI2ZjQxZWQ3YjhhNzFjMzc0M2Q5MTI2 NzU1NGVjMGEwYzc1ODM0Y2NjMmUzZWNiMGVmMzAwNGFmNjQyIiwic3JjL2FwaS9jYXN0L3Y2NC5y cyI6IjY1NzJmZGJhMmExMjQxYTZjZDY2NmQzZjBjY2UzMzA2Y2QyY2I3ZTVlMjM2MTcyZTU5ZDVk NDM1MWM4YTg4YWYiLCJzcmMvYXBpL2NtcC5ycyI6IjM1N2MzYTJhMDljNmQ0NjExYzMyZGQ3ZmE5 NWJlMmZhZTkzM2Q1MTNlMjI5MDI2ZWM5YjQ0NDUxYTc3Yjg4NGUiLCJzcmMvYXBpL2NtcC9lcS5y cyI6IjYwZjcwZjM1NWJhZTRjYjViMTdkYjUzMjA0Y2FjYzM4OTBmNzA2NzA2MTFjMTdkZjYzOGQ0 YzA0ZjdjYzgwNzUiLCJzcmMvYXBpL2NtcC9vcmQucnMiOiI1ODlmNzIzNDc2MWMyOTRmYTVkZjhm NTI1YmM0YWNkNWE0N2NkYjYwMjIwN2Q1MjRhMGQ0ZTE5ODA0Y2Q5Njk1Iiwic3JjL2FwaS9jbXAv cGFydGlhbF9lcS5ycyI6IjkwMmNjYjhhYTAxZmQ1NzM4YjMwYmEwYjcxMjY2OWMyMWQ0ODAxOTU4 OTA3ZTAzYmFkMjM0MzJjN2RiYTAxOTgiLCJzcmMvYXBpL2NtcC9wYXJ0aWFsX29yZC5ycyI6Ijlk YjBjMzdkNzQzNGNkZmM2MmQ4ZDY2OTEyZTk3MmZhM2Q4YzExNWFiMmFmMDUxYTZmNDVlNDE0YmQz ZTRmMWMiLCJzcmMvYXBpL2NtcC92ZXJ0aWNhbC5ycyI6ImRlM2Q2MmYzOGViYTgxNzI5OWFhMTZm MWUxOTM5OTU0YzlhNDQ3ZTMxNjUwOTM5NzQ2NWMyODMwODUyYmEwNTMiLCJzcmMvYXBpL2RlZmF1 bHQucnMiOiI2N2JmMjFjMTM0MTI3ZDEyYTcwMjhjOGI4OGE1N2YwY2VlZThjY2JkNzQ5NzZkYThj YTc0ZWI5ZjE2YTE3NGQ1Iiwic3JjL2FwaS9mbXQucnMiOiI2N2ZiODA0YmI4NmI2Y2Q3N2NmOGNk NDkyYjU3MzNjZTQzNzA3MWI2NmZlMzI5NzI3OGI4YTY1NTJjMzI1ZGRhIiwic3JjL2FwaS9mbXQv YmluYXJ5LnJzIjoiMDJiMmIyODdmNzQwNGY4YTk4MzgxM2NmNzBjODcxMDhjOGRhMzgzNTU3OGI2 M2FiMzAzMTE2ODg1ZjYwOTQxMyIsInNyYy9hcGkvZm10L2RlYnVnLnJzIjoiNTZlMWMzYmRjMDky NzQ3MzQ0ZmZmYWFmZmY5ZGE3MTYzZWU3ODI3ODU3ZjZmYjdjYjFjOTkyM2VjYTRmNmZhMCIsInNy Yy9hcGkvZm10L2xvd2VyX2hleC5ycyI6IjU1OGZkNTkyZjdmNDg1NzEyZmIwNTE1MDljZWNjNzE3 NGEyMWU2YmY2MmU1Y2U2NDc2NmU3NWFmYzk3YmI4ZTEiLCJzcmMvYXBpL2ZtdC9vY3RhbC5ycyI6 IjNiMmU3MDg3N2E0ZjM2OGM3NzA0ZjhlMjU0MjM2YzAxNGMzNjVjNzRkOTMzNzFjMWZlYjVmMDMw ZTZjNjY0MjIiLCJzcmMvYXBpL2ZtdC91cHBlcl9oZXgucnMiOiIyYTQ0MmY2NjZiYzgwZTIyZDQx ZjkwM2Y4ODEyMzhmZTExNGRkNDkzNDRjM2VkNjk4NDkyNTBlODUzY2FmYzVkIiwic3JjL2FwaS9m cm9tLnJzIjoiMmU1OTlkODMyOWNiMDVlYWYwNjIyNGNjNDQxMzU1YzRiN2I1MTI1NGZjMTkyNTY2 MTkzMzNiZThjMTQ5ZDQ0NCIsInNyYy9hcGkvZnJvbS9mcm9tX2FycmF5LnJzIjoiNWQyY2M3MDA1 NjgzNzZiZjZlZTFmZTVlNDA2ZGEzYmMyZDQ4OGZmMTU1NjQ0YmY3M2QwNmExMzQ5YjczZmM1MyIs InNyYy9hcGkvZnJvbS9mcm9tX3ZlY3Rvci5ycyI6Ijk3NjQzNzFhYTllNjAwNWFhY2U3NGRlYTE0 ZjU5ZTU2MTFhMDk1YjdjZjQyNzA3OTQwOTI0NzQ5MjgyYzUyZjAiLCJzcmMvYXBpL2hhc2gucnMi OiI1MDc2ZWNlODc5Njk1OTJjODc2NDg2ZjViMWVhOGFmZmJlYWVjMzc5ZDFhMTRhMzA4NTllMGFh NTU5MjAxOWRlIiwic3JjL2FwaS9pbnRvX2JpdHMucnMiOiI4ZjgwMTE2MjcyNTBlMjNlNjZiNWMw Y2E2NDFhZmIwNzlkODIzMjY3NGJiMTM1NDE0MGI1MzZiZGJlYTYzZTU1Iiwic3JjL2FwaS9pbnRv X2JpdHMvYXJjaF9zcGVjaWZpYy5ycyI6ImU3NDQ1MDIxZjM5MDgzMjZiZmVlNzU4ODM1ZTVmYzVh ZDU2YWExYmFhNzdmYzFjNThhYmU0MzUwYzY2YzY3MGEiLCJzcmMvYXBpL2ludG9fYml0cy9tYWNy b3MucnMiOiJiYjRmZTk5YmUyYWY2YTIxZDgwNWVmYWI0NGM4ZTRlNjFhN2IyYWRiNDJhNjU1MDRh MGNmMjZkMTNlZmRhZGNkIiwic3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycyI6IjE0NWE0NDkyMmIw OWE1Y2E1YjYyZDg4YTQ2MWQzMjdkMzk5YTk5N2ExNWRiNGIxMWQ3YjE3ZTU1NGE5ZmE0YzAiLCJz cmMvYXBpL2ludG9fYml0cy92MTYucnMiOiJmNGY0ZjYxYmE4OGFhNTFiMTU4ZWM1NmNhM2RjZTIz NDM0OWFlYTBkYWYyYjMwMjlhMTRhYjUxMjVkMWU0MWU1Iiwic3JjL2FwaS9pbnRvX2JpdHMvdjI1 Ni5ycyI6IjhjZWE5YzVkOTgwOWYxMTMyM2NiN2NkYzUzYjgzZGY1OTNmZDE3Y2FmOTI2MjUxZTQx MmFlOTc3N2JlZDU0N2YiLCJzcmMvYXBpL2ludG9fYml0cy92MzIucnMiOiI5MDViYTY4M2QzNDJm YTMyZjQyMDJiODBiYjQ2NTMwODA3YmQwYTViNTg4ZjZjMmU4YzlmNDc1MjIzYzQ3Nzc1Iiwic3Jj L2FwaS9pbnRvX2JpdHMvdjUxMi5ycyI6ImUyNWFmYTFmYmYwODhhNWQ1OGU3ZDc1ZDE5N2I2Y2Q0 YzU2NjM3ZWEyODU0MmJhMThlNDZhNDUxZjI5ZDA0ZTciLCJzcmMvYXBpL2ludG9fYml0cy92NjQu cnMiOiJkNjIzODAyMmNjZmY3YjkyZTU1YjNmNjAxN2ZjMjY5YWNiNmYzNjMzMGE2ZDdlOGZiMzg5 ODUzYTBmMWI2NDc4Iiwic3JjL2FwaS9tYXRoLnJzIjoiOGIyYTJmYzY1MTkxN2E4NTA1MzlmOTkz YWEwYjllNWJmNGRhNjdiMTE2ODUyODViOGRlOGNkY2EzMTE3MTllYyIsInNyYy9hcGkvbWF0aC9m bG9hdC5ycyI6IjYxZDI3OTRkNjgyNjJhMTA5MGFlNDczYmQzMDc5M2I1ZjY1Y2Y3MzJmMzJhNjY5 NGEzYWYyY2U1ZDkyMjU2MTYiLCJzcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJzIjoiNWI2YjI3MDFl MmUxMTEzNWI3Y2U1OGEwNTA1MmVhODEyMGUxMGU0NzAyYzk1ZDA0NmI5ZDIxYjgyN2IyNmJmOCIs InNyYy9hcGkvbWF0aC9mbG9hdC9jb25zdHMucnMiOiI2MzAyYzkyNjFkYTQyOTFkMTQ0ZDViYjUz NDkzY2RkMDczNDk4ZmViNDA5NTVmYjY4NjBlYTNjNGQwNmM5NzhhIiwic3JjL2FwaS9tYXRoL2Zs b2F0L2Nvcy5ycyI6IjRjMmRkNzE3MzcyOGVmMTg5MzE0ZjE1NzZjOTQ4NmUwM2JlMjFiN2RhOTg4 NDNiMmY5MDExMjgyYTc5NzllMzEiLCJzcmMvYXBpL21hdGgvZmxvYXQvZXhwLnJzIjoiN2M2ZDVm MWUzMDRmNDk4YTAxY2ZhMjNiOTIzODBjODE1ZDdkYTBhZDk0ZWFlMzQ4Mzc4M2JjMzc3ZDI4N2Vl ZiIsInNyYy9hcGkvbWF0aC9mbG9hdC9sbi5ycyI6IjU0Yzc1ODNmM2RmNzkzYjM5ZmY1NzUzNGZh ZGUyN2I0MWJiOTkyNDM5ZTVkYzE3ODI1MmY1Y2EzMTkwYTNlNTQiLCJzcmMvYXBpL21hdGgvZmxv YXQvbXVsX2FkZC5ycyI6IjYyY2FjNzc2NjBkMjAxNTkyNzZkNGM5ZWYwNjZlYjkwYzgxY2JkZGI4 MDhlOGUxNTcxODJjNjA3NjI1YWQyZWIiLCJzcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZGUucnMi OiJiYWUwNTZlZTlmM2E3MGRmMzllYzNjM2IyZjY0MzdjNjUzMDM4ODhhN2I4NDNlZjFhNWJjZjFm NWFjYTBlNjAyIiwic3JjL2FwaS9tYXRoL2Zsb2F0L3Bvd2YucnMiOiI5ZGRiOTM4OTg0YjM2ZDM5 ZDgyYTgyZjg2MmY4MGRmOGY3ZmIwMTNmMWQyMjJkNDU2OThkNDFkODg0NzJmNTY4Iiwic3JjL2Fw aS9tYXRoL2Zsb2F0L3JlY3ByZS5ycyI6IjU4OTIyNTc5NGZmMWRiZjMxMTU4ZGZmNjYwZTZkNDUw OWVjYzhiZWZiYjU3YzYzMzkwMGRlYTVhYzBiODQwZDYiLCJzcmMvYXBpL21hdGgvZmxvYXQvcnNx cnRlLnJzIjoiYTMyYWJkY2MzMThkN2NjYzg0NDgyMzFmNTRkNzViODg0YjdjYmViMDNhN2Q1OTU3 MTNhYjYyNDMwMzZmNGRiZiIsInNyYy9hcGkvbWF0aC9mbG9hdC9zaW4ucnMiOiJjYmQzNjIyYjdk Zjc0ZjE5NjkxNzQzMDAxYzhjZjc0N2EyMDFmODk3N2FkOTA1NDJmZWU5MTVmMzdkY2QxZTQ5Iiwi c3JjL2FwaS9tYXRoL2Zsb2F0L3NxcnQucnMiOiIwYzY2ZDVkNjNmYjA4ZTRkOTljNmI4MmE4ODI4 ZTQxMTczYWZmMWFjOWZhMWEyNzY0YTExZmFjMjE3Y2NmMmFjIiwic3JjL2FwaS9tYXRoL2Zsb2F0 L3NxcnRlLnJzIjoiNzMxZTFjOWYzMjFiNjYyYWNjZGQyN2RhY2IzYWFjMmU4MDQzYjdhZWNiMmYy MTYxZGRlNzMzYmQ5ZjAyNTM2MiIsInNyYy9hcGkvbWluaW1hbC5ycyI6IjFmMjJiY2M1Mjg1NTU0 NDRlNzZkZTU2OWVjMGFlMjAyOWI5YWU5ZDA0ODA1ZWZlYWZhOTMzNjljODA5ODAzNmIiLCJzcmMv YXBpL21pbmltYWwvaXVmLnJzIjoiODE5Y2ZmMjZkM2UxOTZmODA3NjQ1YmNjMWQ3OWViMjdkOWYx NzVlZGI4OTkxMGYyMjc0ZDUyYTFlOTEzY2QxMSIsInNyYy9hcGkvbWluaW1hbC9tYXNrLnJzIjoi MGNhZTEwYWUxZmM2NWY1MDcwZTY4NmMwYzc5YmZiYTI3Yjg2YjMzZDZjMzk5MzY3YmQ0ODQ4ZmIz NjdkY2VjNCIsInNyYy9hcGkvbWluaW1hbC9wdHIucnMiOiJmNzRkN2E0OTI1ZDcyMDlmYWViYzI2 ZWE4MzE1MjU5Y2IyYzA4ZWM2NTc4OWE3MDg2OWU1OTU2NDlhOWJjMzlhIiwic3JjL2FwaS9vcHMu cnMiOiIzZTI3M2IyNzdhMGYzMDE5ZDQyYzNjNTljYTk0YTVhZmQ0ODg1ZDVhZTZkMjE4MmU1MDg5 YmJlZWM5ZGU0MmVlIiwic3JjL2FwaS9vcHMvc2NhbGFyX2FyaXRobWV0aWMucnMiOiJkMmQ1YWQ4 OTdhNTlkZDA3ODc1NDRmOTI3ZTBlN2NhNDA3MmMzZTU4YjBmNGEyMzI0MDgzMzEyYjBkNWEyMWQ3 Iiwic3JjL2FwaS9vcHMvc2NhbGFyX2JpdHdpc2UucnMiOiI0ODIyMDRlNDU5Y2E2YmU3OTU2OGUx YzlmNzBhZGJlMmQyMTUxNDEyZGRmMTIyZmIyMTYxYmU4ZWJiNTFjNDBjIiwic3JjL2FwaS9vcHMv c2NhbGFyX21hc2tfYml0d2lzZS5ycyI6ImMyNTBmNTIwNDJlMzdiMjJkNTcyNTZjODBkNDYwNDEw NGNmZDJmYmUyYTJlMTI3YzY3NjI2NzI3MGNhNWQzNTAiLCJzcmMvYXBpL29wcy9zY2FsYXJfc2hp ZnRzLnJzIjoiYzQ3NzNkNDM1YzNmOWRhNDQ1NDMyN2U2ZmJiMmI1YjQxYTFjMGViYjFjY2E3Mzcy ZTY5ZGM3YTM0NGExYjZlNCIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9hcml0aG1ldGljLnJzIjoiZGRj YTE1ZDA5ZGRlZWY1MDJjMmVkNjYxMTdhNjIzMDBjYTY1ZDg3ZTk1OWU4YjYyMmQ3NjdiZGYxYzMw NzkxMCIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9iaXR3aXNlLnJzIjoiYjM5NjhmNzAwNWI2NDllZGNj MjJhNTRlMjM3OWIxNGQ1ZWUxOTA0NWYyZTc4NDAyOTgwNTc4MWFlMDQzYjVlZSIsInNyYy9hcGkv b3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzIjoiNzZiZjhjYjYwN2UyYzQ0MjkyM2MxZGExMDYx YTZiODBkNzQyZDYwNzQwODAzM2MyYTM3NjExNjExMTRjZjJhMCIsInNyYy9hcGkvb3BzL3ZlY3Rv cl9pbnRfbWluX21heC5ycyI6ImEzNzg3ODljNmZmOWIzMmE1MWZiZDBhOTdmZmQzNmVkMTAyY2Qx ZmU2YTA2N2QyYjAyMDE3YzFkZjM0MmRlZjYiLCJzcmMvYXBpL29wcy92ZWN0b3JfbWFza19iaXR3 aXNlLnJzIjoiNTA1MmQxODUxN2Q3NjU0MTVkNDAzMjdlNmU4ZTU1YTMxMmRhYWNhMGE1ZTJhZWM5 NTliZmE1NGIxNjc1ZjljOCIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMiOiI1YzYyZjZiMDIy MTk4M2NkYmQyM2NkMGEzYWYzNjcyZTZiYTEyNTVmMGRmZThiMTlhYWU2ZmJkNjUwM2UyMzFiIiwi c3JjL2FwaS9vcHMvdmVjdG9yX3JvdGF0ZXMucnMiOiI2YzNmNzYxZDlkNTUxZjYzNjVhOGE5NTUz OWNlYWNlNGIxYTAyZTBiMTJkMTQ0ZjM0ZWQ2OGRiOTRlODhjZmY0Iiwic3JjL2FwaS9vcHMvdmVj dG9yX3NoaWZ0cy5ycyI6ImU1MTBiZTE0MTI3YzBmZmQ1OGEyNTczYTM5NzAxZGEzNTU3ZDY2YmVk ZWMwOTgzN2FjOGJiZDQ0ZDU3OWRhMDAiLCJzcmMvYXBpL3B0ci5ycyI6IjhhNzkzMjUxYmVkNjEz MGRjZmIyZjE1MTljZWFhMThiNzUxYmJiMTU4NzU5MjhkMGZiNmRlYjVhNWUwNzUyM2EiLCJzcmMv YXBpL3B0ci9nYXRoZXJfc2NhdHRlci5ycyI6IjNkNjE0ZjlkNWI0Y2EyMDFhOWY3ZTQ2YWY0NDA1 ZTFkMmMyOGVjZWUxNjIwMjk3YzIzYjUyZTM3YjkyY2MwZWEiLCJzcmMvYXBpL3JlZHVjdGlvbnMu cnMiOiJhZTViYWNhODEzNTJlY2Q0NDUyNmQ2YzMwYzBhMWZlZWRhNDc1ZWM3M2RkZDNjM2VjNmIx NGU5NDRlNTQ0OGVlIiwic3JjL2FwaS9yZWR1Y3Rpb25zL2JpdHdpc2UucnMiOiI4YmY5MTBhZTIy NjE4OGJkMTVmYzdlMTI1ZjA1OGNkMjU2NmI2MTg2ZmNkMGNkOGZkMDIwZjM1MmMzOWNlMTM5Iiwi c3JjL2FwaS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMiOiI0N2E1Njc5ODk2ZGIyY2Ji NTZjMzEzNzJmZTQyMTQzZGEwMTViNmJlYWU3ZGI1ZDJmM2EwMzA5ZGRmNDI3YWUxIiwic3JjL2Fw aS9yZWR1Y3Rpb25zL2ludGVnZXJfYXJpdGhtZXRpYy5ycyI6ImMyZGYzY2Y3NDkzY2NhNDE3NGYy YzY1YWVhNDIyYTNkMjBkOGEyM2FmMDNmOGQ1N2NlZjcyYzE5ZmVlOGYyMGQiLCJzcmMvYXBpL3Jl ZHVjdGlvbnMvbWFzay5ycyI6ImRiODMzMjdhOTUwZTMzYTMxN2YzN2ZkMzNjYTRlMjBjMzQ3ZmI0 MTU5NzVlYzAyNGYzZTIzZGE4NTA5NDI1YWYiLCJzcmMvYXBpL3JlZHVjdGlvbnMvbWluX21heC5y cyI6IjZhZjhjOWFhNDVjNjk5NjFiMWI2ZmMyMDUzOTVmNDc2N2Q0NDIxODY5ZmIxMDVmYjNkNTYz YzU2MDVmYzEzY2QiLCJzcmMvYXBpL3NlbGVjdC5ycyI6IjZiMDdlN2U4MDI2ZGY1NjFmNzMwNzIy MWE4OTZmMGZiYjI3MjUzNmY0MWI5MTA5MDQwYWMwOTRjMjRjNjkzMzEiLCJzcmMvYXBpL3NodWZm bGUucnMiOiJiZTdmYWZmOWI1OTY1NDkyNmRmMTI4OTdiMmY5OGE0YmFhN2Q2YWNmMmFmMWFhZjkz ZDM4OGJhNmU5NmY4M2VjIiwic3JjL2FwaS9zaHVmZmxlMV9keW4ucnMiOiJiZmVhNWE5MTkwNWIz MTQ0NGU5ZWY3Y2E2ZWRkYjdhOTYwNmI3ZTIyZDNmNzFiYjg0MmViMjc5NWEwMzQ2NjIwIiwic3Jj L2FwaS9zbGljZS5ycyI6ImVlODc0ODRlOGFmMzI5NTQ3YjlhNWQ0ZjJhNjllOGJlZDZlYTEwYmJk OTYyNzBkNzA2MDgzODQzZDRlZWEyYWMiLCJzcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMiOiIz NzM1MzYzMDAwNzM3MTA0YThmYzVmMzk0YWQ4YzMxZWMxNGU4ODU5NTJiZDU3NjQ3ZGQyYTg0MDAx YWVlMGE2Iiwic3JjL2FwaS9zbGljZS93cml0ZV90b19zbGljZS5ycyI6Ijc5ZDA5YzY0ZDAwNzI0 NzgzYzc3YzQyZTQ1ODNlZWVjOTdiMThkYjk0Y2YyYWUxNDZiNTY0YzNmODVjZmVmZDYiLCJzcmMv YXBpL3N3YXBfYnl0ZXMucnMiOiIwNWI0MjYyZWFhZGUyZjYzZTZjZDNiNzgwYzE5YTAzYWVjZDI0 NTlkNGNjNDM2MDA1MWZjMDg4ODg3MTc5YTZlIiwic3JjL2NvZGVnZW4ucnMiOiJkYjRmMjMyZmI5 ZjU3MjhkYjMxMGI4N2RjOGM0NzMzYmU0OGFmYWNhYjEwNTM3OThjMDYxMDZiZWY5YTQyYjA1Iiwi c3JjL2NvZGVnZW4vYml0X21hbmlwLnJzIjoiNTI1ZWE2ZmY3YWQxZTA0M2I2ZjYxMzY5OTIxNjZm MTgwM2VkNTU2M2I3ZjZmYzI5MmMxYzQwMjU3ZDIwZTI2NCIsInNyYy9jb2RlZ2VuL2xsdm0ucnMi OiIxMmU3NDhiNDkyOGMzYmU2Y2MxMmI0MTY1YzMwNDFhM2QwZWZjY2Y2MTk1MzM4ZWNkM2Q4OGI4 ZmRiMGJiY2M3Iiwic3JjL2NvZGVnZW4vbWF0aC5ycyI6ImRmY2YwMmFkMzRlMmZkZmUyMmMzZjFj YzI4MjIwMDFjYzg5NWU2NTAzMWI0ZDA2ZTU4NWU1MDQ3ODM5ZmViYjciLCJzcmMvY29kZWdlbi9t YXRoL2Zsb2F0LnJzIjoiMmMxY2JjZTE1NWJjNTI3Y2UzNGQ0NzJjMGZlZjZiYzNkYWRiNzljZDdh MzU3ZGQ3YWE1YjFlYmViMWQ3N2ExMyIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvYWJzLnJzIjoi ZDVhYWFkY2Y1NDBiZGI5YjQyNjRkY2E2NDcxYTI1NWZkN2JmNTA5ZTc2M2JlZjAyMzljMDE0NGE2 ODQ2NmZlYSIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zLnJzIjoiMTdmMjhkMjkwMGM4NTJk Y2EyMjFmYTljOTJhOWNkNWZlN2ZkMmRmOGQ0MjdiYmM2MDIxNmM3NDliMmJlMDEzZCIsInNyYy9j b2RlZ2VuL21hdGgvZmxvYXQvY29zX3BpLnJzIjoiZGJhZjlmNDQzZjk4NDZhNDkxZDRlYzUyMjEw YTdiNTgzNWRkNTkzYjAzMzY2ZTMxMzViMDVjMzdkNzBmOWQ2YyIsInNyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvZXhwLnJzIjoiZDMwMDA1OGE0YmNjN2FlNzk3NmYyMTZmODE5MDJjZDczYTllNjAzYWQ2 Mzg4MGRmZjNiYmM4NjZjMjdhOWYzNyIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbG4ucnMiOiJj ODUxZTIxMWU0M2Y4MjU2MDkzYmE3NWIwM2FlMGMzMDdjOTk2MmVlNjZkOTRmMDliNGRkODAwNjgx OTBjYmRmIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMiOiJmYzk5MjQ4NjllZDg1 ZTQ3OTU5ODNhZjIyOGNhY2YyMzE1OGY0ZjM1OTE5YWRjZTE2YzkyMGFkNGEzZjBhMDA5Iiwic3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkLnJzIjoiMDQxYTViNjlkNTk5MWQ5M2VmNzk1MzUx YjE3NTYwYzEwZmFmODBiNzhmZDI2YWQ3ZGY0MmEyMzliMzJjZjlkZSIsInNyYy9jb2RlZ2VuL21h dGgvZmxvYXQvbXVsX2FkZGUucnMiOiJkNzFkNWYwZjMzMzNiNjJhNzQzOWI4MjNjYjdhZGY1MzQw ZWExNTU1Y2U4MjBmYjRhM2Y0Y2I5MjJmNzNmNWY1Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9w b3dmLnJzIjoiOTc0MmMzODc3ZjFhNTUwOWNhNWM5NDkyYTQwODg0YjY1NzliYTZkZDExYzI2Yjcx MTJlNjNmNzA2NjZiMzk1ZCIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luLnJzIjoiMGU5ODY4 ZDM1NTMxNTY2NTA5ZjNhMDFkODVkNTI1MzA0NWViNGFmYTg1MjVkODQwN2RjYzFmNWYzM2M1NjAz NiIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX2Nvc19waS5ycyI6IjhlNmI2MTQyZDdkZDI0 MGNkYjM2NjY5NzIyZTgyYWI5ODEwYTIyNjFlODZlNjU5ZjdkOTdhOTQyYWQ4YjEyNTgiLCJzcmMv Y29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9waS5ycyI6ImJiNmQzOWRiOGY5MjFlMDNhMzAxZmM1MjA2 YWMxYTYxYTk3ZGVmOGEyY2I4M2I4N2NjZjE4OWYzZmM0OGQ1NDgiLCJzcmMvY29kZWdlbi9tYXRo L2Zsb2F0L3NxcnQucnMiOiJlNmViYjBjNWY0MjhlZmFkMWY2NzJiOWE4ZmU0ZTU4NTM0ZGJmMWVh NWE4ZmUwOTJjZTVjZTc2YjUyZmU4OWNiIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0ZS5y cyI6IjIzYWNmYWVhMzhkMGUwODFhNmQ5MDIxYzEwOTRlODEzZDBjZmQxMmM1OGMxZWNhOTY2MmFh ZGU1ZTYyNWQ1MWMiLCJzcmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5ycyI6IjZjYTEzYzIx NGI2Y2Y3ZTA5MjlkYmUxOGU5NmExNmZjMGJiN2Q4Nzk5NjA4ZGYyOWM0YzgxMTU0OTBmOTllMDEi LCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzIjoiOGViMThlYmFjNzY5ODVkMmFhMzAyNjJhMmVk ZDhjYjAwNDIzMGI1MTFhNzY1ZDY1NzUyNWY2NzdhNTg1YzEyYyIsInNyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay5ycyI6ImU2N2YzNWExZjRkMTU2YTQ4OTRhMmQ2ZWE1YTkzNWI0ZDg5OGNmNzBl ZWZiMjcxNWY1YzFjYzE2NWU3NzZjMTEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYWFy Y2g2NC5ycyI6Ijg0YjEwMWMxN2NhZDFlZGU0ZWI2ZDM4Y2FkYTBhYzdkYTIzOWRiYThjZWEzYmFk ZDM4MjliOTY3ZTU1ODQzMWYiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzIjoi YWFhMDcxMjliZDA3OGFlN2U2NzdjZjhiOGU2N2VjOWYzMDUzNjYwNmEwYzdlZDFiYWFhMThmZDE3 OTNiYjIxOCIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycyI6IjNlYjkz MTlkMmM3Y2YxOTIxNmI2MDdiODQ1OTYxMmM0ZTAyN2I2NDNjZjExYjAzNjkzN2QzNjg5NmJmNzY3 ODYiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1wbC5ycyI6Ijc2NTQ3 ZjM5NmU1NWVmNDAzMzI3Yzc3YzMxNGNmOGRiOGM3YTVjOWI5ODE5YmZiOTI1YWJlYWNmMTMwMjQ5 ZTUiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2LnJzIjoiMzZkY2Q4YWY0YWI5OTcz MGEwNzhlZDExM2QzOTU1Zjc0ZWIxYTI4NzZlMmU2ZDlmMjI0ZTBmZjQ2MmMyMTZkMSIsInNyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzIjoiM2E0MDg2OGIzOGM4NmUzNWFlZmI5 NmQ3NTc4ZGU2MzIyZWZlODlkODEzNWUwMzY2MzU5YjU0ZGRkMDZmODYxYSIsInNyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4Mi5ycyI6IjY3N2FlZDNmMDU2Mjg1Mjg1ZGFhM2FkZmY4 YmM2NWU3Mzk2MzBiNDQyNGRlZmE2ZDk2NjVlMTYwZjAyNzUwN2UiLCJzcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2sveDg2L3NzZS5ycyI6Ijg1MjJmNmVkMDNmNmMzMmRkNTc3ZDQyOThkZjQ3N2Mw OGFlYWFhMzg1NjM3MDZmMjkwOTZlMTkxMWVkNzMxZjIiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25z L21hc2sveDg2L3NzZTIucnMiOiI1NGVjNTZlNDliMGM2ODQxZWNjYjcxOWU0ZjMxMGQ2NWZlNzY3 YzA0MTM2YjJlYzIwYmQ4YjlkN2Q5ODk3YjllIiwic3JjL2NvZGVnZW4vc2h1ZmZsZS5ycyI6IjFl YzI5MzBmNGUxYWNjNDNhYzMwYjUxOGFmMjk4ZDQ2NmE3OWU5ZTc1NzM0YTUxYzM4MGI3ODEwZWZk MWEyN2YiLCJzcmMvY29kZWdlbi9zaHVmZmxlMV9keW4ucnMiOiIzZjEzY2ExNTk3Mzc4NzU4ZDA1 MTA2YmY1ZmYzNzE1ZWVlNTMxZjNjYjZkODhmNDhiOTE4MmJkNmM5Mzg2YjUxIiwic3JjL2NvZGVn ZW4vc3dhcF9ieXRlcy5ycyI6ImM2N2M4NmU5MWNhM2ZjNzc1MzllMGVmY2VhMDgxYTNjNjI1NDhj Y2NmNTAzOTYzYWU0MDhmMmU4NmY0ZTZhMjEiLCJzcmMvY29kZWdlbi92MTI4LnJzIjoiOTQyMjZi MzFlYzQwM2QxOGQ5ZDJmZTA2NzEzZjE0N2M5Yzc5ZTliNWY5MTA1MDg5MDg4MjY2MzEzZjg0MzE4 NSIsInNyYy9jb2RlZ2VuL3YxNi5ycyI6ImRkZWM0ZmZiNjZiNmY3YWFmZmI5YTE3ODBjNWRkYmE4 MjU1N2FiZDc0ZjQ1MDczZDMzNTA0N2UwNGNmNzQ5MjQiLCJzcmMvY29kZWdlbi92MjU2LnJzIjoi NmI2MzkxN2YwNDQ0MTE4ZDZiMTU5NWJmZjIwNDVlNTliOTdjNGQyNDAxMmJkNTc1ZjY5ZjFmMGVm YzVhMDI0MSIsInNyYy9jb2RlZ2VuL3YzMi5ycyI6IjM0NzdiM2M1NTQwYWVkODZlNjFlMmY1ODA3 ZGQzMWRiOTQ3NDEzY2VjOTE4MWM1ODdkOTNlZDZlYzc0ZjBlYmEiLCJzcmMvY29kZWdlbi92NTEy LnJzIjoiNTg1NGY5OWQzYWFiYzRjZDQyYjI4YTIwZDljZTQ0Nzc1NmRjMmJhMDI0YTQwOWE2OWI2 YThhZTFmMTg0MmZjNSIsInNyYy9jb2RlZ2VuL3Y2NC5ycyI6ImU5ZTg5Y2FlYmZlNjNkMTBjMGNi Y2E2MWU0ZGZkYmEzYjdlMDJlZTA5ODkxNzBmODBiZWVkMjMyMzdkZGQ5NTAiLCJzcmMvY29kZWdl bi92UHRyLnJzIjoiZjA3NTNiNDA1Y2RjODY1YmRmOGU4MmM2NTA1ZjI5OWVhMWY5NjEzNjIzOWVi YmFmN2Y5Y2U5M2QzMTA3NjRiOCIsInNyYy9jb2RlZ2VuL3ZTaXplLnJzIjoiYzg5ZjVmZGViMjhh YzRjODI3MmVkMTgxNmZjZTAzZDlkOTUzMDhjYzMyYmIyNTMzYmQ4YjIwY2Q1YWMxMDJhYyIsInNy Yy9saWIucnMiOiIwNTA0OGM2YTg1ZWM2NWNmOTAyZDlkZDhmNzU3YTNmNzYzOTJiNzAzYTY3OTRl YTcxZjBkNDE1MDBhODlmNzhmIiwic3JjL21hc2tzLnJzIjoiNzBmYzBhYmU0YzI5MDdjZTJhNDkx YzU3NGUxY2ZiOWYzNDIzMzg1ZGEyZTFhOTIzYTQ4YzljMTNmOGJhNmVkOCIsInNyYy9zZWFsZWQu cnMiOiJhZTdmZGVhZjVkODRjZDc3MTBlZDczMGNhNzJjYTdlYWJhOTNkZjZjYjBhY2IxODNlNWMw YTczMjdhY2YxOTdmIiwic3JjL3Rlc3RpbmcucnMiOiI4OTY2NjljMDhkOGM4MDE0NDhhNGQyZmFk YzlkNjMzZWRhMGZiZTg3OWQyMjk5OTdlMmExODJlMzEyNzhlNDY5Iiwic3JjL3Rlc3RpbmcvbWFj cm9zLnJzIjoiNDAzYmJjNWVjYjdjNzg2ZmUzNjE1NmRmMzAyZDBjMDdhODEyMjQwOGRiYjE1Zjc0 NzRkNzY4MjIyNGJhMTEwNiIsInNyYy90ZXN0aW5nL3V0aWxzLnJzIjoiNDE5MTJhOTIyNjZkZmU4 ODQ2NDdmYzAzNWU0MjQyZmQ3NDYxMDBkZjhlODM5ODA4YWUwMzk3YWYzNzU5YTNjOCIsInNyYy92 MTI4LnJzIjoiMTZjZjlhOGU3MTU2Yjg5OWVlOWI5Y2QzZjJkYmE5ZDEzZWM2MzI4OWJlYThjM2Vl OWFlMmU0M2FkOTUxMDI4OCIsInNyYy92MTYucnMiOiJjYjY0NjVjZjFlMDBiZjUzMDE4M2FmMTgx OWI5ZmUzZDdlZWM5NzhmODc2NWQ1ZTg1ZDliNThhMzlhNGI0MDQ1Iiwic3JjL3YyNTYucnMiOiJm ZTIzNTAxN2RhMThjN2YzYzM2MTgzMWM2MGUzMTczYWQzMDRkOGVhMWU5NWQ2NGViZWJjNzlkYTJk NzA4NTExIiwic3JjL3YzMi5ycyI6IjE0NWQzNDc4NTViYWM1OWIyZGU2NTA4ZjllNTk0NjU0ZTZj MzMwNDIzYWY5ZWRjMGUyYWM4ZjRkMWFiZGY0NWUiLCJzcmMvdjUxMi5ycyI6ImYzNzJmMjc3ZjNl NjJlYjVjOTQ1YmIxYzQ2MDMzM2ZkYjE3YjY5NzRmY2M4NzY2MzM3ODhmZjUzYmRlZDk1OTkiLCJz cmMvdjY0LnJzIjoiMGI4MDc5ODgxYjcxNTc1ZTM0MTRiZTBiN2Y4ZjdlYWJhNjUyODFiYTY3MzJm MmIyZjYxZjczZTk1YjZmNDhmNyIsInNyYy92UHRyLnJzIjoiOGIzZTQzM2Q0ODcxODBiYjQzMDRm ZjcxMjQ1ZWNhZDkwZjAwMTBmNDNlMTM5YTcyMDI3YjY3MmFiZTU4ZmFjYyIsInNyYy92U2l6ZS5y cyI6ImVkYTVhYTAyMDcwNmNiZjk0ZDE1YmFkYTQxYTBjMmEzNWZjOGYzZjM3Y2I3YzJjZDZmMzRk MjAxMzk5YTQ5NWUiLCJ0ZXN0cy9lbmRpYW5uZXNzLnJzIjoiNTE0N2Y4NmQyMjRjNGM1NDBiNzcy MDMzZGEyZjk5NGNhZDliYzljMDM1ZjM4ZWMyMWUyM2JjNGU1NWY4YTc1OSJ9LCJwYWNrYWdlIjpu dWxsfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9iZW5jaG1hcmtzLnltbCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55 bWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9iZW5jaG1hcmtzLnltbAorKysrIC9kZXYvbnVsbAor QEAgLTEsMzEgKzAsMCBAQAorLW5hbWU6IGJlbmNobWFya3MKKy0KKy1vbjoKKy0gIHB1c2g6Cist ICAgIGJyYW5jaGVzOgorLSAgICAgIC0gbWFzdGVyCistICBwdWxsX3JlcXVlc3Q6CistICB3b3Jr Zmxvd19kaXNwYXRjaDoKKy0KKy1qb2JzOgorLSAgeDg2XzY0LXVua25vd24tbGludXgtZ251Ogor LSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHdp dGg6CistICAgICAgdGFyZ2V0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBzZXR1 cF9zY3JpcHQ6IGNpL3NldHVwX2JlbmNobWFya3Muc2gKKy0gICAgICBzY3JpcHQ6IGNpL2JlbmNo bWFyay5zaAorLSAgICAgIG5vcnVuOiAxCistICAgICAgdmVyaWZ5OiAxCistICAgICAgIyBGSVhN RTogZmlndXJlIG91dCBob3cgdG8gYWRkIGRvd25sb2FkZWQgaXNwYyB0byBQQVRICistICAgICAg IyBmZWF0dXJlczogaXNwYworLSAgeDg2XzY0LWFwcGxlLWRhcndpbjoKKy0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICB3aXRoOgorLSAgICAgIHRh cmdldDogeDg2XzY0LWFwcGxlLWRhcndpbgorLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0Cist ICAgICAgc2V0dXBfc2NyaXB0OiBjaS9zZXR1cF9iZW5jaG1hcmtzLnNoCistICAgICAgc2NyaXB0 OiBjaS9iZW5jaG1hcmsuc2gKKy0gICAgICBub3J1bjogMQorLSAgICAgIHZlcmlmeTogMQorLSAg ICAgICMgRklYTUU6IGZpZ3VyZSBvdXQgaG93IHRvIGFkZCBkb3dubG9hZGVkIGlzcGMgdG8gUEFU SAorLSAgICAgICMgZmVhdHVyZXM6IGlzcGMKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2NpLnltbCBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1sCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxv d3MvY2kueW1sCisrKysgL2Rldi9udWxsCitAQCAtMSwyMTggKzAsMCBAQAorLW5hbWU6IGNpCist CistIyB0cmlnZ2VyIGZvciBhbGwgUFJzIGFuZCBjaGFuZ2VzIHRvIG1hc3RlcgorLW9uOgorLSAg cHVzaDoKKy0gICAgYnJhbmNoZXM6CistICAgICAgLSBtYXN0ZXIKKy0gIHB1bGxfcmVxdWVzdDoK Ky0KKy1qb2JzOgorLSAgcnVzdGZtdDoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9y dW4tY2ktc2NyaXB0LnltbAorLSAgICB3aXRoOgorLSAgICAgIHNjcmlwdDogY2kvYWxsLnNoIGNo ZWNrX2ZtdCB8fCB0cnVlCistICB4ODZfNjQtdW5rbm93bi1saW51eC1hbmRyb2lkOgorLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5 OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogeDg2 XzY0LWxpbnV4LWFuZHJvaWQKKy0gIGFybXY3LWxpbnV4LWFuZHJvaWRlYWJpOgorLSAgICB1c2Vz OiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5Ogor LSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogYXJtdjct bGludXgtYW5kcm9pZGVhYmkKKy0gIGFhcmNoNjQtdW5rbm93bi1saW51eC1hbmRyb2lkLU5FT046 CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAg c3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFy Z2V0OiBhYXJjaDY0LWxpbnV4LWFuZHJvaWQKKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZl YXR1cmU9K25lb24KKy0gIHRodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpOgorLSAgICB1c2Vz OiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5Ogor LSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHRodW1i djduZW9uLWxpbnV4LWFuZHJvaWRlYWJpCistICBpNTg2LXVua25vd24tbGludXgtZ251OgorLSAg ICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0 ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6 IGk1ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2NhdGlvbi1t b2RlbD1zdGF0aWMKKy0gIGk1ODYtdW5rbm93bi1saW51eC1nbnUtU1NFOgorLSAgICB1c2VzOiAu Ly5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAg ICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IGk1ODYtdW5r bm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2NhdGlvbi1tb2RlbD1zdGF0 aWMgLUN0YXJnZXQtZmVhdHVyZT0rc3NlCistICBpNTg2LXVua25vd24tbGludXgtZ251LVNTRTI6 CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAg c3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRh cmdldDogaTU4Ni11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUNyZWxvY2F0 aW9uLW1vZGVsPXN0YXRpYyAtQ3RhcmdldC1mZWF0dXJlPStzc2UyCistICBpNjg2LXVua25vd24t bGludXgtZ251OgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQu eW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoK Ky0gICAgICB0YXJnZXQ6IGk2ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6 IC1DcmVsb2NhdGlvbi1tb2RlbD1zdGF0aWMKKy0gIGk2ODYtdW5rbm93bi1saW51eC1nbnUtU1NF NF8yOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCist ICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAg ICB0YXJnZXQ6IGk2ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DcmVs b2NhdGlvbi1tb2RlbD1zdGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rc3NlNC4yCistICBpNjg2LXVu a25vd24tbGludXgtZ251LUFWWDI6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVu LWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiBmYWxzZQor LSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogaTY4Ni11bmtub3duLWxpbnV4LWdudQorLSAgICAg IHJ1c3RmbGFnczogLUNyZWxvY2F0aW9uLW1vZGVsPXN0YXRpYyAtQ3RhcmdldC1mZWF0dXJlPSth dngyCistICB4ODZfNjQtdW5rbm93bi1saW51eC1nbnU6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93 b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1m YXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiB4ODZfNjQtdW5rbm93bi1saW51 eC1nbnUKKy0gIHg4Nl82NC11bmtub3duLWxpbnV4LWdudS1TU0U0XzI6CistICAgIHVzZXM6IC4v LmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAg ICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiB4ODZfNjQtdW5r bm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQu MgorLSAgeDg2XzY0LXVua25vd24tbGludXgtZ251LUFWWDI6CistICAgIHVzZXM6IC4vLmdpdGh1 Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFp bC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiB4ODZfNjQtdW5rbm93bi1s aW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K2F2eDIKKy0gIGFy bS11bmtub3duLWxpbnV4LWdudWVhYmloZjoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRy dWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IGFybS11bmtub3duLWxpbnV4LWdudWVhYmlo ZgorLSAgYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGY6CistICAgIHVzZXM6IC4vLmdpdGh1 Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFp bC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBhcm12Ny11bmtub3duLWxp bnV4LWdudWVhYmloZgorLSAgYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYtTkVPTjoKKy0g ICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJh dGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6 IGFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmCistICAgICAgcnVzdGZsYWdzOiAtQ3Rhcmdl dC1mZWF0dXJlPStuZW9uCistICB0aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZjoK Ky0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBz dHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFy Z2V0OiB0aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZgorLSAgYWFyY2g2NC11bmtu b3duLWxpbnV4LWdudS1ORU9OOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1j aS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAg ICB3aXRoOgorLSAgICAgIHRhcmdldDogYWFyY2g2NC11bmtub3duLWxpbnV4LWdudQorLSAgICAg IHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rbmVvbgorLSAgcG93ZXJwYy11bmtub3duLWxp bnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0Lnlt bAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6Cist ICAgICAgdGFyZ2V0OiBwb3dlcnBjLXVua25vd24tbGludXgtZ251CistICBwb3dlcnBjNjQtdW5r bm93bi1saW51eC1nbnU6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNj cmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3 aXRoOgorLSAgICAgIHRhcmdldDogcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251CistICBwb3dl cnBjNjRsZS11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRy dWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHBvd2VycGM2NGxlLXVua25vd24tbGludXgt Z251CistICBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS1BTFRJVkVDOgorLSAgICB1c2Vz OiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5Ogor LSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogcG93ZXJw YzY0bGUtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1 cmU9K2FsdGl2ZWMKKy0gIHBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251LVZTWDoKKy0gICAg dXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVn eToKKy0gICAgICBmYWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHBv d2VycGM2NGxlLXVua25vd24tbGludXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1m ZWF0dXJlPSt2c3gKKy0gIHMzOTB4LXVua25vd24tbGludXgtZ251OgorLSAgICB1c2VzOiAuLy5n aXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAg IGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHMzOTB4LXVua25v d24tbGludXgtZ251CistICBzcGFyYzY0LXVua25vd24tbGludXgtZ251OgorLSAgICB1c2VzOiAu Ly5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAg ICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHNwYXJjNjQt dW5rbm93bi1saW51eC1nbnUKKy0gIHdhc20zMi11bmtub3duLXVua25vd246CistICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6Cist ICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogd2FzbTMy LXVua25vd24tdW5rbm93bgorLSAgeDg2XzY0LWFwcGxlLWRhcndpbi1TU0U0XzI6CistICAgIHVz ZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6 CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgcnVubmVyOiBtYWNv cy1sYXRlc3QKKy0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAgICAgIHRhcmdldDogeDg2XzY0 LWFwcGxlLWRhcndpbgorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rc3NlNC4y CistICB4ODZfNjQtYXBwbGUtZGFyd2luLUFWWDoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6 IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICBydW5uZXI6IG1hY29zLWxhdGVzdAorLSAgICAgIHNj cmlwdDogY2kvcnVuLnNoCistICAgICAgdGFyZ2V0OiB4ODZfNjQtYXBwbGUtZGFyd2luCistICAg ICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthdngKKy0gIHg4Nl82NC1hcHBsZS1pb3M6 CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAg c3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgcnVu bmVyOiBtYWNvcy1sYXRlc3QKKy0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAgICAgIHRhcmdl dDogeDg2XzY0LWFwcGxlLWlvcworLSAgYWFyY2g2NC1hcHBsZS1pb3M6CistICAgIHVzZXM6IC4v LmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAg ICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgcnVubmVyOiBtYWNvcy1sYXRl c3QKKy0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAgICAgIHRhcmdldDogYWFyY2g2NC1hcHBs ZS1pb3MKKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K25lb24KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2RvY3Mu eW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9kb2Nz LnltbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2RvY3MueW1sCisrKysgL2Rldi9udWxsCitAQCAt MSwxMyArMCwwIEBACistbmFtZTogZG9jcworLQorLW9uOgorLSAgcHVzaDoKKy0gICAgYnJhbmNo ZXM6CistICAgICAgLSBtYXN0ZXIKKy0KKy1qb2JzOgorLSAgZG9jczoKKy0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICB3aXRoOgorLSAgICAgIHNl dHVwX3NjcmlwdDogY2FyZ28gaW5zdGFsbCBtZGJvb2sKKy0gICAgICBzY3JpcHQ6IGNpL2RveC5z aAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3Jr Zmxvd3MvcnVuLWNpLXNjcmlwdC55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5n aXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3Mv cnVuLWNpLXNjcmlwdC55bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDg2ICswLDAgQEAKKy1uYW1l OiBydW4tY2ktc2NyaXB0CistCistb246CistICB3b3JrZmxvd19jYWxsOgorLSAgICBpbnB1dHM6 CistICAgICAgcnVubmVyOgorLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBl OiBzdHJpbmcKKy0gICAgICAgIGRlZmF1bHQ6IHVidW50dS1sYXRlc3QKKy0gICAgICB0YXJnZXQ6 CistICAgICAgICByZXF1aXJlZDogZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0cmluZworLSAgICAg ICAgZGVmYXVsdDogJycKKy0gICAgICBydXN0ZmxhZ3M6CistICAgICAgICByZXF1aXJlZDogZmFs c2UKKy0gICAgICAgIHR5cGU6IHN0cmluZworLSAgICAgICAgZGVmYXVsdDogJycKKy0gICAgICBz Y3JpcHQ6CistICAgICAgICByZXF1aXJlZDogZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0cmluZwor LSAgICAgICAgZGVmYXVsdDogY2kvcnVuLWRvY2tlci5zaAorLSAgICAgIHNldHVwX3NjcmlwdDoK Ky0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQorLSAgICAgICAgdHlwZTogc3RyaW5nCistICAgICAg bm9ydW46CistICAgICAgICByZXF1aXJlZDogZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0cmluZwor LSAgICAgICAgZGVmYXVsdDogJycKKy0gICAgICB2ZXJpZnk6CistICAgICAgICByZXF1aXJlZDog ZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0cmluZworLSAgICAgICAgZGVmYXVsdDogJycKKy0gICAg ICBmZWF0dXJlczoKKy0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQorLSAgICAgICAgdHlwZTogc3Ry aW5nCistICAgICAgICBkZWZhdWx0OiAnJworLQorLWpvYnM6CistICBydW4tY2ktc2NyaXB0Ogor LSAgICBydW5zLW9uOiAke3sgaW5wdXRzLnJ1bm5lciB9fQorLSAgICBzdGVwczoKKy0gICAgICAt IG5hbWU6IENoZWNrb3V0CistICAgICAgICB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYyCistICAg ICAgLSBuYW1lOiBJbml0IFJ1c3R1cCBDYWNoZQorLSAgICAgICAgdXNlczogYWN0aW9ucy9jYWNo ZUB2MgorLSAgICAgICAgd2l0aDoKKy0gICAgICAgICAgcGF0aDogfAorLSAgICAgICAgICAgIH4v LnJ1c3R1cC90b29sY2hhaW5zCistICAgICAgICAgIGtleTogJHt7IHJ1bm5lci5vcyB9fS1jYXJn by0ke3sgaGFzaEZpbGVzKCcqKi9ydXN0LXRvb2xjaGFpbicpIH19CistICAgICAgLSBuYW1lOiBJ bnN0YWxsIFRvb2xjaGFpbgorLSAgICAgICAgdXNlczogZHRvbG5heS9ydXN0LXRvb2xjaGFpbkBu aWdodGx5CistICAgICAgICB3aXRoOgorLSAgICAgICAgICAjIEZJWE1FOiBjaGFuZ2UgdG8gbmln aHRseSBvbmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQvcHVsbC8z NTAgaXMgbWVyZ2VkCistICAgICAgICAgICMgbmVlZHMgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGgg dGhlIHRvb2xjaGFpbiBmaWxlcworLSAgICAgICAgICB0YXJnZXRzOiAke3sgaW5wdXRzLnRhcmdl dCB9fQorLSAgICAgICAgICBjb21wb25lbnRzOiBydXN0Zm10CistICAgICAgLSBuYW1lOiBHZW5l cmF0ZSBMb2NrZmlsZQorLSAgICAgICAgcnVuOiBjYXJnbyBnZW5lcmF0ZS1sb2NrZmlsZQorLSAg ICAgIC0gbmFtZTogSW5pdCBDYXJnbyBDYWNoZQorLSAgICAgICAgdXNlczogYWN0aW9ucy9jYWNo ZUB2MgorLSAgICAgICAgd2l0aDoKKy0gICAgICAgICAgcGF0aDogfAorLSAgICAgICAgICAgIH4v LmNhcmdvL2Jpbi8KKy0gICAgICAgICAgICB+Ly5jYXJnby9yZWdpc3RyeS9pbmRleC8KKy0gICAg ICAgICAgICB+Ly5jYXJnby9yZWdpc3RyeS9jYWNoZS8KKy0gICAgICAgICAgICB+Ly5jYXJnby9n aXQvZGIvCistICAgICAgICAgICAgdGFyZ2V0LworLSAgICAgICAgICBrZXk6ICR7eyBydW5uZXIu b3MgfX0tY2FyZ28tJHt7IGhhc2hGaWxlcygnKiovQ2FyZ28ubG9jaycpIH19CistICAgICAgLSBu YW1lOiBTZXR1cAorLSAgICAgICAgaWY6ICR7eyBpbnB1dHMuc2V0dXBfc2NyaXB0ICE9ICcnIH19 CistICAgICAgICBydW46ICR7eyBpbnB1dHMuc2V0dXBfc2NyaXB0IH19CistICAgICAgICBlbnY6 CistICAgICAgICAgIFRBUkdFVDogJHt7IGlucHV0cy50YXJnZXQgfX0KKy0gICAgICAgICAgUlVT VEZMQUdTOiAke3sgaW5wdXRzLnJ1c3RmbGFncyB9fQorLSAgICAgICAgICBOT1JVTjogJHt7IGlu cHV0cy5ub3J1biB9fQorLSAgICAgICAgICBWRVJJRlk6ICR7eyBpbnB1dHMudmVyaWZ5IH19Cist ICAgICAgICAgIEZFQVRVUkVTOiAke3sgaW5wdXRzLmZlYXR1cmVzIH19CistICAgICAgLSBuYW1l OiBSdW4gQ0kgU2NyaXB0CistICAgICAgICB0aW1lb3V0LW1pbnV0ZXM6IDMwCistICAgICAgICBy dW46ICR7eyBpbnB1dHMuc2NyaXB0IH19CistICAgICAgICBlbnY6CistICAgICAgICAgIFRBUkdF VDogJHt7IGlucHV0cy50YXJnZXQgfX0KKy0gICAgICAgICAgUlVTVEZMQUdTOiAke3sgaW5wdXRz LnJ1c3RmbGFncyB9fQorLSAgICAgICAgICBOT1JVTjogJHt7IGlucHV0cy5ub3J1biB9fQorLSAg ICAgICAgICBWRVJJRlk6ICR7eyBpbnB1dHMudmVyaWZ5IH19CistICAgICAgICAgIEZFQVRVUkVT OiAke3sgaW5wdXRzLmZlYXR1cmVzIH19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC8udHJhdmlzLnltbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLnRy YXZpcy55bWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC8udHJhdmlzLnltbAorKysrIC9kZXYvbnVsbAorQEAgLTEsMjEyICswLDAg QEAKKy1sYW5ndWFnZTogcnVzdAorLXJ1c3Q6IG5pZ2h0bHkKKy1vczogbGludXgKKy1kaXN0OiBm b2NhbAorLQorLXN0YWdlczoKKy0gIC0gdG9vbHMKKy0gIC0gYnVpbGQtdGVzdC12ZXJpZnkgIyBQ YXNzZXMgZnVsbCB0ZXN0IHN1aXRlLCBwZXJtaXQgbm8gcmVncmVzc2lvbnMgKHVubGVzcyBpdCdz IHJ1c3R1cCA6LykKKy0gIC0gMzJiaXQtdGllcjEKKy0gIC0gNjRiaXQtdGllcjIKKy0gIC0gMzJi aXQtdGllcjIKKy0KKy1qb2JzOgorLSAgZmFzdF9maW5pc2g6IHRydWUKKy0gIGluY2x1ZGU6Cist ICAgICMgQW5kcm9pZDoKKy0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtbGludXgtYW5kcm9pZAor LSAgICAgIG5hbWU6ICJ4ODZfNjQtdW5rbm93bi1saW51eC1hbmRyb2lkICsgU1NFMiIKKy0gICAg ICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBlbnY6IFRBUkdFVD1hcm0tbGludXgt YW5kcm9pZGVhYmkKKy0gICAgICBuYW1lOiAiYXJtLWxpbnV4LWFuZHJvaWRlYWJpIgorLSAgICAg IHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQorLSAgICAtIG5hbWU6ICJhYXJjaDY0LXVua25vd24t bGludXgtYW5kcm9pZCArIE5FT04iCistICAgICAgZW52OiBUQVJHRVQ9YWFyY2g2NC1saW51eC1h bmRyb2lkIFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K25lb24iCistICAgICAgc3RhZ2U6 IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9InRodW1idjduZW9uLWxpbnV4 LWFuZHJvaWRlYWJpIgorLSAgICAgIG5hbWU6ICJ0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFi aSIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKKy0gICAgIyBMaW51eDoKKy0gICAgLSBlbnY6 IFRBUkdFVD1pNTg2LXVua25vd24tbGludXgtZ251CistICAgICAgbmFtZTogImk1ODYtdW5rbm93 bi1saW51eC1nbnUiCistICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCistICAgIC0gZW52OiBUQVJH RVQ9aTU4Ni11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStz c2UiCistICAgICAgbmFtZTogImk1ODYtdW5rbm93bi1saW51eC1nbnUgKyBTU0UiCistICAgICAg c3RhZ2U6IDMyYml0LXRpZXIyCistICAgIC0gZW52OiBUQVJHRVQ9aTU4Ni11bmtub3duLWxpbnV4 LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2UyIgorLSAgICAgIG5hbWU6ICJp NTg2LXVua25vd24tbGludXgtZ251ICsgU1NFMiIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjIK Ky0gICAgLSBlbnY6IFRBUkdFVD1pNjg2LXVua25vd24tbGludXgtZ251CistICAgICAgbmFtZTog Imk2ODYtdW5rbm93bi1saW51eC1nbnUgKyBTU0UyIgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVy MQorLSAgICAtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSIt QyB0YXJnZXQtZmVhdHVyZT0rc3NlNC4yIgorLSAgICAgIG5hbWU6ICJpNjg2LXVua25vd24tbGlu dXgtZ251ICsgU1NFNC4yIgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMQorLSAgICAtIGVudjog VEFSR0VUPWk2ODYtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVy ZT0rYXZ4MiIKKy0gICAgICBuYW1lOiAiaTY4Ni11bmtub3duLWxpbnV4LWdudSArIEFWWDIiCist ICAgICAgc3RhZ2U6IDMyYml0LXRpZXIxCistICAgIC0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25v d24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMiIKKy0gICAg ICBuYW1lOiAieDg2XzY0LXVua25vd24tbGludXgtZ251ICsgU1NFNC4yIgorLSAgICAgIHN0YWdl OiBidWlsZC10ZXN0LXZlcmlmeQorLSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLWxp bnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSthdngyIgorLSAgICAgIG5hbWU6 ICJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUgKyBBVlgyIgorLSAgICAgIHN0YWdlOiBidWlsZC10 ZXN0LXZlcmlmeQorLSAgICAtIGVudjogVEFSR0VUPWFybS11bmtub3duLWxpbnV4LWdudWVhYmlo ZgorLSAgICAgIG5hbWU6ICJhcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYiCistICAgICAgc3Rh Z2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9YXJtdjctdW5rbm93bi1s aW51eC1nbnVlYWJpaGYKKy0gICAgICBuYW1lOiAiYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJp aGYiCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9 YXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVy ZT0rbmVvbiIKKy0gICAgICBuYW1lOiAiYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYgKyBO RU9OIgorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQorLSAgICAtIGVudjogVEFSR0VU PSJ0aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZiIKKy0gICAgICBuYW1lOiAidGh1 bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYiCistICAgICAgc3RhZ2U6IDMyYml0LXRp ZXIyCistICAgIC0gbmFtZTogImFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUgKyBORU9OIgorLSAg ICAgIGVudjogVEFSR0VUPWFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0 YXJnZXQtZmVhdHVyZT0rbmVvbiIKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0g ICAgLSBlbnY6IFRBUkdFVD1taXBzLXVua25vd24tbGludXgtZ251CistICAgICAgbmFtZTogIm1p cHMtdW5rbm93bi1saW51eC1nbnUiCistICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCistICAgIC0g ZW52OiBUQVJHRVQ9bWlwc2VsLXVua25vd24tbGludXgtbXVzbAorLSAgICAgIG5hbWU6ICJtaXBz ZWwtdW5rbm93bi1saW51eC1tdXNsIgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAgICAt IGVudjogVEFSR0VUPW1pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0CistICAgICAgbmFtZTog Im1pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0IgorLSAgICAgIHN0YWdlOiA2NGJpdC10aWVy MgorLSAgICAtIGVudjogVEFSR0VUPW1pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQKKy0g ICAgICBuYW1lOiAibWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NCIKKy0gICAgICBzdGFn ZTogNjRiaXQtdGllcjIKKy0gICAgICAjIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE4CistICAgICAgIyBlbnY6IFRBUkdFVD1t aXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1 cmU9K21zYSAtQyB0YXJnZXQtY3B1PW1pcHM2NHI2IgorLSAgICAtIGVudjogVEFSR0VUPXBvd2Vy cGMtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBuYW1lOiAicG93ZXJwYy11bmtub3duLWxpbnV4 LWdudSIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKKy0gICAgLSBlbnY6IFRBUkdFVD1wb3dl cnBjNjQtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBuYW1lOiAicG93ZXJwYzY0LXVua25vd24t bGludXgtZ251IgorLSAgICAgIHN0YWdlOiA2NGJpdC10aWVyMgorLSAgICAtIG5hbWU6ICJwb3dl cnBjNjRsZS11bmtub3duLWxpbnV4LWdudSIKKy0gICAgICBlbnY6IFRBUkdFVD1wb3dlcnBjNjRs ZS11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQorLSAg ICAtIG5hbWU6ICJwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSArIEFMVElWRUMiCistICAg ICAgZW52OiBUQVJHRVQ9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSIt QyB0YXJnZXQtZmVhdHVyZT0rYWx0aXZlYyIKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJp ZnkKKy0gICAgLSBuYW1lOiAicG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgKyBWU1giCist ICAgICAgZW52OiBUQVJHRVQ9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdT PSItQyB0YXJnZXQtZmVhdHVyZT0rdnN4IgorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlm eQorLSAgICAtIG5hbWU6ICJzMzkweC11bmtub3duLWxpbnV4LWdudSIKKy0gICAgICBlbnY6IFRB UkdFVD1zMzkweC11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHN0YWdlOiA2NGJpdC10aWVyMgor LSAgICAtIGVudjogVEFSR0VUPXNwYXJjNjQtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBuYW1l OiAic3BhcmM2NC11bmtub3duLWxpbnV4LWdudSIKKy0gICAgICBzdGFnZTogNjRiaXQtdGllcjIK Ky0gICAgIyBXZWJBc3NlbWJseToKKy0gICAgLSBlbnY6IFRBUkdFVD13YXNtMzItdW5rbm93bi11 bmtub3duCistICAgICAgbmFtZTogIndhc20zMi11bmtub3duLXVua25vd24iCistICAgICAgc3Rh Z2U6IDMyYml0LXRpZXIyCistICAgICMgTWFjT1NYOgorLSAgICAtIG9zOiBvc3gKKy0gICAgICBl bnY6IFRBUkdFVD14ODZfNjQtYXBwbGUtZGFyd2luIFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1 cmU9K3NzZTQuMiIKKy0gICAgICBuYW1lOiAieDg2XzY0LWFwcGxlLWRhcndpbiArIFNTRTQuMiIK Ky0gICAgICBpbnN0YWxsOiB0cnVlCistICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgICBv c3hfaW1hZ2U6IHhjb2RlMTAKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAg ICAjIFRyYXZpcy1DSSBPU1ggYnVpbGQgYm90cyBkbyBub3Qgc3VwcG9ydCBBVlgyOgorLSAgICAt IG9zOiBvc3gKKy0gICAgICBlbnY6IFRBUkdFVD14ODZfNjQtYXBwbGUtZGFyd2luIFJVU1RGTEFH Uz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eCIKKy0gICAgICBuYW1lOiAieDg2XzY0LWFwcGxlLWRh cndpbiArIEFWWCIKKy0gICAgICBpbnN0YWxsOiB0cnVlCistICAgICAgc2NyaXB0OiBjaS9ydW4u c2gKKy0gICAgICBvc3hfaW1hZ2U6IHhjb2RlMTAKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12 ZXJpZnkKKy0gICAgIyAqQlNEczoKKy0gICAgIy0gZW52OiBUQVJHRVQ9aTY4Ni11bmtub3duLWZy ZWVic2QgTk9SVU49MQorLSAgICAjICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAgICAjLSBlbnY6IFRB UkdFVD14ODZfNjQtdW5rbm93bi1mcmVlYnNkIE5PUlVOPTEKKy0gICAgIyAgc2NyaXB0OiBjaS9y dW4uc2gKKy0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24tbmV0YnNkIE5PUlVOPTEK Ky0gICAgIyAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgIyBTb2xhcmlzOgorLSAgICAjLSBlbnY6 IFRBUkdFVD14ODZfNjQtc3VuLXNvbGFyaXMgTk9SVU49MQorLSAgICAjICBzY3JpcHQ6IGNpL3J1 bi5zaAorLSAgICAjIGlPUzoKKy0gICAgLSBvczogb3N4CistICAgICAgZW52OiBUQVJHRVQ9eDg2 XzY0LWFwcGxlLWlvcworLSAgICAgIG5hbWU6ICJ4ODZfNjQtYXBwbGUtaW9zICsgU1NFMiIKKy0g ICAgICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAgICAgIG9zeF9pbWFnZTogeGNvZGU5LjQKKy0gICAg ICBzdGFnZTogNjRiaXQtdGllcjIKKy0gICAgLSBuYW1lOiAiYWFyY2g2NC1hcHBsZS1pb3MgKyBO RU9OIgorLSAgICAgIGVudjogVEFSR0VUPWFhcmNoNjQtYXBwbGUtaW9zIFJVU1RGTEFHUz0iLUMg dGFyZ2V0LWZlYXR1cmU9K25lb24iCistICAgICAgb3M6IG9zeAorLSAgICAgIG9zeF9pbWFnZTog eGNvZGU5LjQKKy0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAgICAgIHN0YWdlOiA2NGJpdC10 aWVyMgorLSAgICAjIEJFTkNITUFSS1M6CistICAgIC0gbmFtZTogIkJlbmNobWFya3MgLSB4ODZf NjQtdW5rbm93bi1saW51eC1nbnUiCistICAgICAgaW5zdGFsbDogVEFSR0VUPXg4Nl82NC11bmtu b3duLWxpbnV4LWdudSAuL2NpL3NldHVwX2JlbmNobWFya3Muc2gKKy0gICAgICAjIEZJWE1FOiBV c2UgYGNvcmVfYXJjaCxzbGVlZi1zeXNgIGZlYXR1cmVzIG9uY2UgdGhleSB3b3JrcyBhZ2Fpbgor LSAgICAgIHNjcmlwdDogUEFUSD0kKHB3ZCk6JFBBVEggTk9SVU49MSBWRVJJRlk9MSBGRUFUVVJF Uz1pc3BjIGNpL2JlbmNobWFyay5zaAorLSAgICAgIHN0YWdlOiB0b29scworLSAgICAtIG5hbWU6 ICJCZW5jaG1hcmtzIC0geDg2XzY0LWFwcGxlLWRhcndpbiIKKy0gICAgICBpbnN0YWxsOiBUQVJH RVQ9eDg2XzY0LWFwcGxlLWRhcndpbiAuL2NpL3NldHVwX2JlbmNobWFya3Muc2gKKy0gICAgICAj IEZJWE1FOiBVc2UgYGNvcmVfYXJjaCxzbGVlZi1zeXNgIGZlYXR1cmVzIG9uY2UgdGhleSB3b3Jr cyBhZ2FpbgorLSAgICAgIHNjcmlwdDogUEFUSD0kKHB3ZCk6JFBBVEggTk9SVU49MSBWRVJJRlk9 MSBGRUFUVVJFUz1pc3BjIGNpL2JlbmNobWFyay5zaAorLSAgICAgIG9zOiBvc3gKKy0gICAgICBv c3hfaW1hZ2U6IHhjb2RlOS40CistICAgICAgc3RhZ2U6IHRvb2xzCistICAgICMgVE9PTFM6Cist ICAgIC0gbmFtZTogIkRvY3VtZW50YXRpb24iCistICAgICAgYmVmb3JlX2luc3RhbGw6CistICAg ICAgICAtIHN1ZG8gYWRkLWFwdC1yZXBvc2l0b3J5IC15IHBwYTpkZWFkc25ha2VzL3BwYQorLSAg ICAgICAgLSBzdWRvIGFwdC1nZXQgdXBkYXRlIC15CistICAgICAgICAtIHN1ZG8gYXB0LWdldCBp bnN0YWxsIC15IHB5dGhvbjMuOQorLSAgICAgIGluc3RhbGw6CistICAgICAgICAtIGNhcmdvIGlu c3RhbGwgbWRib29rCistICAgICAgc2NyaXB0OiBjaS9kb3guc2gKKy0gICAgICBzdGFnZTogdG9v bHMKKy0gICAgLSBuYW1lOiAicnVzdGZtdCIKKy0gICAgICBpbnN0YWxsOiB0cnVlCistICAgICAg c2NyaXB0OiB8CistICAgICAgICBydXN0dXAgdG9vbGNoYWluIGluc3RhbGwgbmlnaHRseSAtYyBy dXN0Zm10IC0tYWxsb3ctZG93bmdyYWRlCistICAgICAgICBjaS9hbGwuc2ggY2hlY2tfZm10IHx8 IHRydWUKKy0gICAgICBzdGFnZTogdG9vbHMKKy0KKy0gIGFsbG93X2ZhaWx1cmVzOgorLSAgICAj IEZJWE1FOiBJU1BDIGNhbm5vdCBiZSBmb3VuZD8KKy0gICAgLSBuYW1lOiAiQmVuY2htYXJrcyAt IHg4Nl82NC1hcHBsZS1kYXJ3aW4iCistICAgICMgRklYTUU6IGk2ODYgZmFpbHMgaW4gaW5saW5p bmcsIGFwcGFyZW50bHkKKy0gICAgLSBzdGFnZTogMzJiaXQtdGllcjEKKy0gICAgIy0gZW52OiBU QVJHRVQ9aTY4Ni11bmtub3duLWZyZWVic2QgTk9SVU49MQorLSAgICAjLSBlbnY6IFRBUkdFVD14 ODZfNjQtdW5rbm93bi1mcmVlYnNkIE5PUlVOPTEKKy0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0 LXVua25vd24tbmV0YnNkIE5PUlVOPTEKKy0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXN1bi1z b2xhcmlzIE5PUlVOPTEKKy0KKy0gICAgIyBGSVhNRTogVEJECistICAgIC0gc3RhZ2U6IDY0Yml0 LXRpZXIyCistICAgIC0gc3RhZ2U6IDMyYml0LXRpZXIyCistCistICAgICMgRklYTUU6IGlPUwor LSAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9p c3N1ZXMvMjYKKy0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtYXBwbGUtaW9zCistICAgICMgSXMg dGhpcyByZWxhdGVkIHRvIHRoZSBhYm92ZT8gTXlzdGVyaW91cyB0ZXN0IGZhaWx1cmUKKy0gICAg LSBuYW1lOiAiYWFyY2g2NC1hcHBsZS1pb3MgKyBORU9OIgorLQorLWluc3RhbGw6IHRyYXZpc19y ZXRyeSBydXN0dXAgdGFyZ2V0IGFkZCAkVEFSR0VUCistYmVmb3JlX3NjcmlwdDogY2FyZ28gZ2Vu ZXJhdGUtbG9ja2ZpbGUKKy1zY3JpcHQ6IHRyYXZpc193YWl0IDUwIGNpL3J1bi1kb2NrZXIuc2gK Ky1hZnRlcl9zY3JpcHQ6IHNsZWVwIDUKKy0KKy1lbnY6CistICBnbG9iYWw6CistICAgIHNlY3Vy ZTogImxQSHY3czYrQXhRWU5hRm5jeWNWRlF0KytZMWFzUW1NaE9pa1FVMXp0bFA4Q0s3K2huMm05 OGNnL2V1T0p5eklPYjJpSjNaWDRjR1prenc0bGM1OU1RQkJ5YjFHdERiYXpRb1VPelZEYlZmZTlC REQyZjhKVm9JRmgxQ01malBLUTdHZy9ySnFXbHdyVWxTZDVHTnhQQ3V0S2pZN3FaaEp1UjZTUWJK amxXYUdOMlZkNGZWQ3pLWHo4ZkhSWGdNRVpTK2QrQ1I0TnNya2I4M0ozWjRzNWtTZEptaFl4SjYx QVdqdXpKVndVaDRsMy9IRVlsU0w1WFhwdWg1UjJpN1cxNmgxUGxOZGFUVWdrWmxpMWxIek84KzZR OEx6WDkrWGlMSUVWWDlsdzNBMk5kSUtHejhFLys3UXM1b1lPa3dZaGpST3NEUXhJSzd4a1NNMzBi UXVON2N3TUJ5YkFWSXlPUEprcVhRMWRReXA4M0tTZHNPajdKTXlERFJ2Y0VETEk2ZWhSbG01RWNk SDdZclJldWJvTjgxaVVvMFNhN1ZzdVVtZ2o1aGpFUkN0OXIzMGY5YVd1aXRBQmFpN3ZLUnRqZ2xn N1NwNUNyRVZQQTRQUXM2UHFLQ0NSb2dvZ2diWEovWjVEeXcvUlphWFBlTlI5K3FJS04xVmptOUdl dzFzUk4ySksvMyt2WFRLdHlKWEgvdUJ4Z0p0NGpRbGJ1U2hPSnVGK0JTZlRGODhzTWU2N2EvMzU3 U1NPSWI0SmthQ3lkMGZsRENXWUU4NTc2a2FIUGxWVk1UMnBlWGVlMExlUlhtMWUxM25HM05hMHQz TFMvb3JKTFBIT1NoTlFHb0RqN3FBUDVhRUtnZ1J5YTg5NkpHd3R2bGFCSEhUbVNRaDY1RzdjeU5F clpvPSIKKy1icmFuY2hlczoKKy0gIG9ubHk6CistICAgIC0gc3RhZ2luZyAjIGJvcnMgcisKKy0g ICAgLSB0cnlpbmcgICMgYm9ycyB0cnkKKy0gICAgLSBtYXN0ZXIKKy1ub3RpZmljYXRpb25zOgor LSAgZW1haWw6CistICAgIG9uX3N1Y2Nlc3M6IG5ldmVyCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9DYXJnby50b21sCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvQ2FyZ28udG9tbAorKysrIC9kZXYvbnVsbAorQEAgLTEsODAg KzAsMCBAQAorLSMgVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdP CistIworLSMgV2hlbiB1cGxvYWRpbmcgY3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxs IGF1dG9tYXRpY2FsbHkKKy0jICJub3JtYWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGlt YWwgY29tcGF0aWJpbGl0eQorLSMgd2l0aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28g cmV3cml0ZSBgcGF0aGAgZGVwZW5kZW5jaWVzCistIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVz LmlvKSBkZXBlbmRlbmNpZXMuCistIworLSMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBi ZSBhd2FyZSB0aGF0IHRoZSBvcmlnaW5hbCBDYXJnby50b21sCistIyB3aWxsIGxpa2VseSBsb29r IHZlcnkgZGlmZmVyZW50IChhbmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgorLSMgU2VlIENhcmdv LnRvbWwub3JpZyBmb3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgorLQorLVtwYWNrYWdlXQorLWVk aXRpb24gPSAiMjAxOCIKKy1uYW1lID0gInBhY2tlZF9zaW1kIgorLXZlcnNpb24gPSAiMC4zLjki CistYnVpbGQgPSAiYnVpbGQucnMiCistZGVzY3JpcHRpb24gPSAiUG9ydGFibGUgUGFja2VkIFNJ TUQgdmVjdG9ycyIKKy1ob21lcGFnZSA9ICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3Bh Y2tlZF9zaW1kIgorLWRvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2NzLnJzL2NyYXRlL3BhY2tl ZF9zaW1kLyIKKy1yZWFkbWUgPSAiUkVBRE1FLm1kIgorLWtleXdvcmRzID0gWworLSAgICAic2lt ZCIsCistICAgICJ2ZWN0b3IiLAorLSAgICAicG9ydGFiaWxpdHkiLAorLV0KKy1jYXRlZ29yaWVz ID0gWworLSAgICAiaGFyZHdhcmUtc3VwcG9ydCIsCistICAgICJjb25jdXJyZW5jeSIsCistICAg ICJuby1zdGQiLAorLSAgICAiZGF0YS1zdHJ1Y3R1cmVzIiwKKy1dCistbGljZW5zZSA9ICJNSVQg T1IgQXBhY2hlLTIuMCIKKy1yZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvcGFja2VkX3NpbWQiCistCistW3BhY2thZ2UubWV0YWRhdGEuZG9jcy5yc10KKy1mZWF0dXJl cyA9IFsiaW50b19iaXRzIl0KKy1ydXN0ZG9jLWFyZ3MgPSBbCistICAgICItLWNmZyIsCistICAg ICJkb2NfY2ZnIiwKKy1dCistCistW2RlcGVuZGVuY2llc10KKy1jZmctaWYgPSAiMS4wLjAiCist CistW2RlcGVuZGVuY2llcy5jb3JlX2FyY2hdCistdmVyc2lvbiA9ICIwLjEuNSIKKy1vcHRpb25h bCA9IHRydWUKKy0KKy1bZGVwZW5kZW5jaWVzLm51bS10cmFpdHNdCistdmVyc2lvbiA9ICIwLjIu MTQiCistZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlCistCistW2Rldi1kZXBlbmRlbmNpZXNdCist cGFzdGUgPSAiXjEiCistCistW2Rldi1kZXBlbmRlbmNpZXMuYXJyYXl2ZWNdCistdmVyc2lvbiA9 ICJeMC41IgorLWRlZmF1bHQtZmVhdHVyZXMgPSBmYWxzZQorLQorLVtmZWF0dXJlc10KKy1kZWZh dWx0ID0gW10KKy1pbnRvX2JpdHMgPSBbXQorLWxpYmNvcmVfbmVvbiA9IFtdCistCistW3Rhcmdl dC4iY2ZnKHRhcmdldF9hcmNoID0gXCJ4ODZfNjRcIikiLmRlcGVuZGVuY2llcy5zbGVlZi1zeXNd CistdmVyc2lvbiA9ICIwLjEuMiIKKy1vcHRpb25hbCA9IHRydWUKKy0KKy1bdGFyZ2V0Lndhc20z Mi11bmtub3duLXVua25vd24uZGV2LWRlcGVuZGVuY2llc10KKy13YXNtLWJpbmRnZW4gPSAiPTAu Mi44NyIKKy13YXNtLWJpbmRnZW4tdGVzdCA9ICI9MC4zLjM3IgorLQorLVtiYWRnZXMuaXMtaXQt bWFpbnRhaW5lZC1pc3N1ZS1yZXNvbHV0aW9uXQorLXJlcG9zaXRvcnkgPSAicnVzdC1sYW5nL3Bh Y2tlZF9zaW1kIgorLQorLVtiYWRnZXMuaXMtaXQtbWFpbnRhaW5lZC1vcGVuLWlzc3Vlc10KKy1y ZXBvc2l0b3J5ID0gInJ1c3QtbGFuZy9wYWNrZWRfc2ltZCIKKy0KKy1bYmFkZ2VzLm1haW50ZW5h bmNlXQorLXN0YXR1cyA9ICJleHBlcmltZW50YWwiCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLUFQQUNIRSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvTElDRU5TRS1BUEFDSEUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLUFQQUNIRQorKysrIC9kZXYvbnVsbAor QEAgLTEsMjAxICswLDAgQEAKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUg TGljZW5zZQorLSAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIw MDQKKy0gICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv CistCistVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElT VFJJQlVUSU9OCistCistMS4gRGVmaW5pdGlvbnMuCistCistICAgIkxpY2Vuc2UiIHNoYWxsIG1l YW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKy0gICBh bmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhp cyBkb2N1bWVudC4KKy0KKy0gICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBv d25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorLSAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhh dCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKy0KKy0gICAiTGVnYWwgRW50aXR5IiBzaGFsbCBt ZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCistICAgb3RoZXIgZW50 aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1v bgorLSAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlz IGRlZmluaXRpb24sCistICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBv ciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCistICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Yg c3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKKy0gICBvdGhlcndpc2UsIG9yIChp aSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKy0gICBv dXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2gg ZW50aXR5LgorLQorLSAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVh bCBvciBMZWdhbCBFbnRpdHkKKy0gICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkg dGhpcyBMaWNlbnNlLgorLQorLSAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVy cmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorLSAgIGluY2x1ZGluZyBidXQgbm90 IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKy0gICBzb3Vy Y2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorLQorLSAgICJPYmplY3QiIGZvcm0gc2hhbGwg bWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCistICAgdHJhbnNmb3JtYXRp b24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorLSAgIG5v dCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlv biwKKy0gICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCistCistICAgIldv cmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ug b3IKKy0gICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFz IGluZGljYXRlZCBieSBhCistICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGlu IG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCistICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4g dGhlIEFwcGVuZGl4IGJlbG93KS4KKy0KKy0gICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVh biBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CistICAgZm9ybSwgdGhhdCBp cyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQor LSAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90 aGVyIG1vZGlmaWNhdGlvbnMKKy0gICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFs IHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcworLSAgIG9mIHRoaXMgTGljZW5z ZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgor LSAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0 aGUgaW50ZXJmYWNlcyBvZiwKKy0gICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVy ZW9mLgorLQorLSAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9y c2hpcCwgaW5jbHVkaW5nCistICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5k IGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucworLSAgIHRvIHRoYXQgV29yayBvciBEZXJp dmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorLSAgIHN1Ym1pdHRl ZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQg b3duZXIKKy0gICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVk IHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKy0gICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhl IHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKy0gICBtZWFucyBhbnkg Zm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50 CistICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBi dXQgbm90IGxpbWl0ZWQgdG8KKy0gICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGlu ZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorLSAgIGFuZCBpc3N1ZSB0cmFj a2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCist ICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0 aGUgV29yaywgYnV0CistICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGlj dW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKy0gICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkg dGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKy0KKy0gICAiQ29u dHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2Fs IEVudGl0eQorLSAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJl Y2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorLSAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0 aGluIHRoZSBXb3JrLgorLQorLTIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0 IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorLSAgIHRoaXMgTGljZW5zZSwgZWFjaCBD b250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKy0gICB3b3JsZHdp ZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQor LSAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdv cmtzIG9mLAorLSAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vu c2UsIGFuZCBkaXN0cmlidXRlIHRoZQorLSAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jr cyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCistCistMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vu c2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCistICAgdGhpcyBMaWNl bnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAor LSAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGly cmV2b2NhYmxlCistICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQg bGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCistICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxs LCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCistICAgd2hlcmUgc3Vj aCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUK Ky0gICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBi eSB0aGVpcgorLSAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0 aGVpciBDb250cmlidXRpb24ocykKKy0gICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29u dHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorLSAgIGluc3RpdHV0ZSBwYXRlbnQg bGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCistICAgY3Jvc3MtY2xh aW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawor LSAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3Rp dHV0ZXMgZGlyZWN0CistICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRo ZW4gYW55IHBhdGVudCBsaWNlbnNlcworLSAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGlj ZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorLSAgIGFzIG9mIHRoZSBkYXRlIHN1 Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKy0KKy00LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSBy ZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorLSAgIFdvcmsgb3IgRGVyaXZh dGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorLSAgIG1v ZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQg WW91CistICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CistCistICAgKGEpIFlvdSBt dXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKy0gICAgICAgRGVy aXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKy0KKy0gICAoYikgWW91 IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2Vz CistICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorLQorLSAg IChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2 ZSBXb3JrcworLSAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRl bnQsIHRyYWRlbWFyaywgYW5kCistICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUg U291cmNlIGZvcm0gb2YgdGhlIFdvcmssCistICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2Vz IHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKKy0gICAgICAgdGhlIERlcml2YXRp dmUgV29ya3M7IGFuZAorLQorLSAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0Ui IHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworLSAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55 IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CistICAgICAgIGluY2x1 ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAor LSAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMg dGhhdCBkbyBub3QKKy0gICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2 ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCistICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2Vz OiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCistICAgICAgIGFzIHBhcnQg b2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKy0gICAg ICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBX b3Jrczsgb3IsCistICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJp dmF0aXZlIFdvcmtzLCBpZiBhbmQKKy0gICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBu b3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCistICAgICAgIG9mIHRoZSBOT1RJ Q0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKy0gICAgICAg ZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRp b24KKy0gICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0 cmlidXRlLCBhbG9uZ3NpZGUKKy0gICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElD RSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCistICAgICAgIHRoYXQgc3VjaCBhZGRpdGlv bmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorLSAgICAgICBhcyBt b2RpZnlpbmcgdGhlIExpY2Vuc2UuCistCistICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJp Z2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCistICAgbWF5IHByb3ZpZGUg YWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworLSAg IGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0 aW9ucywgb3IKKy0gICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBw cm92aWRlZCBZb3VyIHVzZSwKKy0gICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2Yg dGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKy0gICB0aGUgY29uZGl0aW9ucyBzdGF0 ZWQgaW4gdGhpcyBMaWNlbnNlLgorLQorLTUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4g VW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKKy0gICBhbnkgQ29udHJpYnV0 aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKy0g ICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZgorLSAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJt cyBvciBjb25kaXRpb25zLgorLSAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcg aGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKy0gICB0aGUgdGVybXMgb2YgYW55IHNl cGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorLSAgIHdpdGgg TGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KKy0KKy02LiBUcmFkZW1hcmtz LiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRl CistICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMg b2YgdGhlIExpY2Vuc29yLAorLSAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBh bmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorLSAgIG9yaWdpbiBvZiB0aGUgV29y ayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorLQorLTcu IERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh dyBvcgorLSAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29y ayAoYW5kIGVhY2gKKy0gICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykg b24gYW4gIkFTIElTIiBCQVNJUywKKy0gICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O UyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKy0gICBpbXBsaWVkLCBpbmNsdWRpbmcs IHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworLSAgIG9m IFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9S IEEKKy0gICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZv ciBkZXRlcm1pbmluZyB0aGUKKy0gICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0 cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKy0gICByaXNrcyBhc3NvY2lhdGVkIHdp dGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCistCist OC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdh bCB0aGVvcnksCistICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNv bnRyYWN0LCBvciBvdGhlcndpc2UsCistICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUg bGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKy0gICBuZWdsaWdlbnQgYWN0cykg b3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorLSAgIGxp YWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwg c3BlY2lhbCwKKy0gICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55 IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKy0gICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91 dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCistICAgV29yayAoaW5jbHVkaW5n IGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorLSAgIHdv cmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQg YWxsCistICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3Vj aCBDb250cmlidXRvcgorLSAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9m IHN1Y2ggZGFtYWdlcy4KKy0KKy05LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBM aWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCistICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2 ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKy0gICBhbmQgY2hhcmdl IGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAor LSAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3Rl bnQgd2l0aCB0aGlzCistICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2Js aWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKy0gICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9u IFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorLSAgIG9mIGFueSBvdGhl ciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKy0gICBk ZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxp dHkKKy0gICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29u dHJpYnV0b3IgYnkgcmVhc29uCistICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFu dHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCistCistRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJ T05TCistCistQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91 ciB3b3JrLgorLQorLSAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmss IGF0dGFjaCB0aGUgZm9sbG93aW5nCistICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBm aWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgorLSAgIHJlcGxhY2VkIHdpdGggeW91ciBv d24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCistICAgdGhlIGJyYWNr ZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKy0g ICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0 aGF0IGEKKy0gICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2Ug YmUgaW5jbHVkZWQgb24gdGhlCistICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJp Z2h0IG5vdGljZSBmb3IgZWFzaWVyCistICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBh cnR5IGFyY2hpdmVzLgorLQorLUNvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93 bmVyXQorLQorLUxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAg KHRoZSAiTGljZW5zZSIpOworLXlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv bXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy1Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl IExpY2Vuc2UgYXQKKy0KKy0JaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut Mi4wCistCistVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp biB3cml0aW5nLCBzb2Z0d2FyZQorLWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp c3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCistV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP TkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCistU2VlIHRo ZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z IGFuZAorLWxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1NSVQgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL0xJQ0VOU0UtTUlUCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1NSVQKKysrKyAvZGV2L251bGwKK0BA IC0xLDI1ICswLDAgQEAKKy1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIFJ1c3QgUHJvamVjdCBEZXZl bG9wZXJzCistCistUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueQorLXBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQKKy1kb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwg aW4gdGhlCistU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQK Ky1saW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLAorLXB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZgorLXRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlCist aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKKy1jb25kaXRp b25zOgorLQorLVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlCistc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucworLW9mIHRoZSBTb2Z0d2FyZS4KKy0KKy1USEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRgorLUFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJ RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKKy1UTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEKKy1QQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQKKy1TSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorLUNMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKy1PRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SCistSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCistREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvUkVBRE1FLm1kIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9SRUFETUUubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9SRUFETUUubWQKKysrKyAvZGV2 L251bGwKK0BAIC0xLDE0NCArMCwwIEBACistIyBgU2ltZDxbVDsgTl0+YAorLQorLSMjIEltcGxl bWVudGF0aW9uIG9mIFtSdXN0IFJGQyAjMjM2NjogYHN0ZDo6c2ltZGBdW3JmYzIzNjZdCistCist WyFbTGF0ZXN0IFZlcnNpb25dXVtjcmF0ZXMuaW9dIFshW2RvY3NdXVttYXN0ZXJfZG9jc10KKy0K Ky0qKldBUk5JTkcqKjogdGhpcyBjcmF0ZSBvbmx5IHN1cHBvcnRzIHRoZSBtb3N0IHJlY2VudCBu aWdodGx5IFJ1c3QgdG9vbGNoYWluCistYW5kIHdpbGwgYmUgc3VwZXJzZWRlZCBieSBbYCMhW2Zl YXR1cmUocG9ydGFibGVfc2ltZCldYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wb3J0 YWJsZS1zaW1kKS4KKy0KKy0jIyBEb2N1bWVudGF0aW9uCistCistKiBbQVBJIGRvY3MgKGBtYXN0 ZXJgIGJyYW5jaCldW21hc3Rlcl9kb2NzXQorLSogW1BlcmZvcm1hbmNlIGd1aWRlXVtwZXJmX2d1 aWRlXQorLSogW0FQSSBkb2NzIChgZG9jcy5yc2ApXVtkb2NzLnJzXQorLSogW1JGQzIzNjYgYHN0 ZDo6c2ltZGBdW3JmYzIzNjZdOiAtIGNvbnRhaW5zIG1vdGl2YXRpb24sIGRlc2lnbiByYXRpb25h bGUsCistICBkaXNjdXNzaW9uLCBldGMuCistCistIyMgRXhhbXBsZXMKKy0KKy1Nb3N0IG9mIHRo ZSBleGFtcGxlcyBjb21lIHdpdGggYm90aCBhIHNjYWxhciBhbmQgYSB2ZWN0b3JpemVkIGltcGxl bWVudGF0aW9uLgorLQorLSogW2Bhb2JlbmNoYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL2FvYmVuY2gpCistKiBb YGZhbm5rdWNoX3JlZHV4YF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL2Zhbm5rdWNoX3JlZHV4KQorLSogW2BtYXRy aXggaW52ZXJzZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRf c2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9tYXRyaXhfaW52ZXJzZSkKKy0qIFtgbWFuZGVsYnJv dGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVl L21hc3Rlci9leGFtcGxlcy9tYW5kZWxicm90KQorLSogW2BuLWJvZHlgXShodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMv bmJvZHkpCistKiBbYG9wdGlvbnNfcHJpY2luZ2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9vcHRpb25zX3ByaWNp bmcpCistKiBbYHNwZWN0cmFsX25vcm1gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvc3BlY3RyYWxfbm9ybSkKKy0q IFtgdHJpYW5nbGUgdHJhbnNmb3JtYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL3RyaWFuZ2xlX3hmb3JtKQorLSog W2BzdGVuY2lsYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL3N0ZW5jaWwpCistKiBbYHZlY3RvciBkb3QgcHJvZHVj dGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVl L21hc3Rlci9leGFtcGxlcy9kb3RfcHJvZHVjdCkKKy0KKy0jIyBDYXJnbyBmZWF0dXJlcworLQor LSogYGludG9fYml0c2AgKGRlZmF1bHQ6IGRpc2FibGVkKTogZW5hYmxlcyBgRnJvbUJpdHNgL2BJ bnRvQml0c2AgdHJhaXQKKy0gIGltcGxlbWVudGF0aW9ucyBmb3IgdGhlIHZlY3RvciB0eXBlcy4g VGhlc2UgYWxsb3cgcmVpbnRlcnByZXRpbmcgdGhlIGJpdHMgb2YgYQorLSAgdmVjdG9yIHR5cGUg YXMgdGhvc2Ugb2YgYW5vdGhlciB2ZWN0b3IgdHlwZSBzYWZlbHkgYnkganVzdCB1c2luZyB0aGUK Ky0gIGAuaW50b19iaXRzKClgIG1ldGhvZC4KKy0KKy0jIyBQZXJmb3JtYW5jZQorLQorLVRoZSBm b2xsb3dpbmcgW0lTUENdIGV4YW1wbGVzIGFyZSBhbHNvIHBhcnQgb2YgYHBhY2tlZF9zaW1kYCdz CistW2BleGFtcGxlcy9gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFj a2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvKQorLWRpcmVjdG9yeSwgd2hlcmUgYHBhY2tl ZF9zaW1kYCtbYHJheW9uYF1bcmF5b25dIGFyZSB1c2VkIHRvIGVtdWxhdGUgW0lTUENdJ3MKKy1T aW5nbGUtUHJvZ3JhbS1NdWx0aXBsZS1EYXRhIChTUE1EKSBwcm9ncmFtbWluZyBtb2RlbC4gVGhl IHBlcmZvcm1hbmNlIHJlc3VsdHMKKy1vbiBkaWZmZXJlbnQgaGFyZHdhcmUgaXMgc2hvd24gaW4g dGhlIGByZWFkbWUubWRgIG9mIGVhY2ggZXhhbXBsZS4gVGhlIGZvbGxvd2luZworLXRhYmxlIHN1 bW1hcml6ZXMgdGhlIHBlcmZvcm1hbmNlIHJhbmdlcywgd2hlcmUgYCtgIG1lYW5zIHNwZWVkLXVw IGFuZCBgLWAKKy1zbG93ZG93bjoKKy0KKy0qIGBhb2JlbmNoYDogYFstMS4wMngsICsxLjUzeF1g LAorLSogYHN0ZW5jaWxgOiBgWysxLjA2eCwgKzEuNzJ4XWAsCistKiBgbWFuZGVsYnJvdGA6IGBb LTEuNzR4LCArMS4yeF1gLAorLSogYG9wdGlvbnNfcHJpY2luZ2A6CistICAgKiBgYmxhY2tfc2No b2xlc2A6IGArMS4weGAKKy0gICAqIGBiaW5vbWlhbF9wdXRgOiBgKzEuNHhgCistCistIFdoaWxl IFNQTUQgaXMgbm90IHRoZSBpbnRlbmRlZCB1c2UgY2FzZSBmb3IgYHBhY2tlZF9zaW1kYCwgaXQg aXMgcG9zc2libGUgdG8KKy0gY29tYmluZSB0aGUgbGlicmFyeSB3aXRoIFtgcmF5b25gXVtyYXlv bl0gdG8gcG9vcmx5IGVtdWxhdGUgW0lTUENdJ3MgU1BNRCBwcm9ncmFtbWluZworLSBtb2RlbCBp biBSdXN0LiBXcml0aW5nIHBlcmZvcm1hbnQgY29kZSBpcyBub3QgYXMgc3RyYWlnaHRmb3J3YXJk IGFzIHdpdGgKKy0gW0lTUENdLCBidXQgd2l0aCBzb21lIGNhcmUgKGUuZy4gc2VlIHRoZSBbUGVy Zm9ybWFuY2UgR3VpZGVdW3BlcmZfZ3VpZGVdKSBvbmUKKy0gY2FuIGVhc2lseSBtYXRjaCBhbmQg b2Z0ZW4gb3V0LXBlcmZvcm0gW0lTUENdJ3MgImRlZmF1bHQgcGVyZm9ybWFuY2UiLgorLQorLSMj IFBsYXRmb3JtIHN1cHBvcnQKKy0KKy1UaGUgZm9sbG93aW5nIHRhYmxlIGRlc2NyaWJlcyB0aGUg c3VwcG9ydGVkIHBsYXRmb3JtczogYGJ1aWxkYCBzaG93cyB3aGV0aGVyCistdGhlIGxpYnJhcnkg Y29tcGlsZXMgd2l0aG91dCBpc3N1ZXMgZm9yIGEgZ2l2ZW4gdGFyZ2V0LCB3aGlsZSBgcnVuYCBz aG93cworLXdoZXRoZXIgdGhlIHRlc3Qgc3VpdGUgcGFzc2VzIGZvciBhIGdpdmVuIHRhcmdldC4K Ky0KKy18ICoqTGludXgqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAqKmJ1aWxkKiog fCAqKnJ1bioqIHwKKy18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0t LS0tLS0tLS0tfC0tLS0tLS0tLXwKKy18IGBpNTg2LXVua25vd24tbGludXgtZ251YCAgICAgICAg ICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8CistfCBgaTY4Ni11bmtub3duLWxpbnV4 LWdudWAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAorLXwgYHg4Nl82 NC11bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyTICAgICAg IHwKKy18IGBhcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGZgICAgICAgICAgfCDinJMgICAgICAg ICB8IOKckyAgICAgICB8CistfCBgYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpYCAgICAgICAg IHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAorLXwgYGFhcmNoNjQtdW5rbm93bi1saW51eC1n bnVgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKKy18IGBwb3dlcnBjLXVu a25vd24tbGludXgtZ251YCAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Cist fCBgcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251YCAgICAgICAgIHwg4pyTICAgICAgICAgfCDi nJcgICAgICAgfAorLXwgYHBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251YCAgICAgICB8IOKc kyAgICAgICAgIHwg4pyTICAgICAgIHwKKy18IGBzMzkweC11bmtub3duLWxpbnV4LWdudWAgICAg ICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8CistfCBgc3BhcmM2NC11bmtub3du LWxpbnV4LWdudWAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAorLXwgYHRo dW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmYCB8IOKckyAgICAgICAgIHwg4pyTICAg ICAgIHwKKy18ICoqTWFjT1NYKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAqKmJ1aWxk KiogfCAqKnJ1bioqIHwKKy18IGB4ODZfNjQtYXBwbGUtZGFyd2luYCAgICAgICAgICAgICAgICAg fCDinJMgICAgICAgICB8IOKckyAgICAgICB8CistfCAqKkFuZHJvaWQqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8CistfCBgeDg2XzY0LWxpbnV4LWFu ZHJvaWRgICAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAorLXwgYGFy bXY3LWxpbnV4LWFuZHJvaWRlYWJpYCAgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAg ICAgIHwKKy18IGBhYXJjaDY0LWxpbnV4LWFuZHJvaWRgICAgICAgICAgICAgICAgfCDinJMgICAg ICAgICB8IOKclyAgICAgICB8CistfCBgdGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmlgICAg ICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAorLXwgKippT1MqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICoqYnVpbGQqKiB8ICoqcnVuKiogfAorLXwgYHg4Nl82NC1hcHBs ZS1pb3NgICAgICAgICAgICAgICAgICAgICB8IOKclyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18 IGBhYXJjaDY0LWFwcGxlLWlvc2AgICAgICAgICAgICAgICAgICAgfCDinJcgICAgICAgICB8IOKc lyAgICAgICB8CistCistCistIyMgTWFjaGluZSBjb2RlIHZlcmlmaWNhdGlvbgorLQorLVRoZQor LVtgdmVyaWZ5L2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRf c2ltZC90cmVlL21hc3Rlci92ZXJpZnkpCistY3JhdGUgdGVzdHMgZGlzYXNzZW1ibGVzIHRoZSBw b3J0YWJsZSBwYWNrZWQgdmVjdG9yIEFQSXMgYXQgcnVuLXRpbWUgYW5kCistY29tcGFyZXMgdGhl IGdlbmVyYXRlZCBtYWNoaW5lIGNvZGUgYWdhaW5zdCB0aGUgZGVzaXJlZCBvbmUgdG8gbWFrZSBz dXJlIHRoYXQKKy10aGlzIGNyYXRlIHJlbWFpbnMgZWZmaWNpZW50LgorLQorLSMjIExpY2Vuc2UK Ky0KKy1UaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgZWl0aGVyIG9mCistCistKiBbQXBh Y2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wXShodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv TElDRU5TRS0yLjApCistICAoW0xJQ0VOU0UtQVBBQ0hFXShMSUNFTlNFLUFQQUNIRSkpCistCist KiBbTUlUIExpY2Vuc2VdKGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpCistICAo W0xJQ0VOU0UtTUlUXShMSUNFTlNFLU1JVCkpCistCistYXQgeW91ciBvcHRpb24uCistCistIyMg Q29udHJpYnV0aW5nCistCistV2Ugd2VsY29tZSBhbGwgcGVvcGxlIHdobyB3YW50IHRvIGNvbnRy aWJ1dGUuCistUGxlYXNlIHNlZSB0aGUgW2NvbnRyaWJ1dGluZyBpbnN0cnVjdGlvbnNdIGZvciBt b3JlIGluZm9ybWF0aW9uLgorLQorLUNvbnRyaWJ1dGlvbnMgaW4gYW55IGZvcm0gKGlzc3Vlcywg cHVsbCByZXF1ZXN0cywgZXRjLikgdG8gdGhpcyBwcm9qZWN0CistbXVzdCBhZGhlcmUgdG8gUnVz dCdzIFtDb2RlIG9mIENvbmR1Y3RdLgorLQorLVVubGVzcyB5b3UgZXhwbGljaXRseSBzdGF0ZSBv dGhlcndpc2UsIGFueSBjb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQKKy1mb3Ig aW5jbHVzaW9uIGluIGBwYWNrZWRfc2ltZGAgYnkgeW91LCBhcyBkZWZpbmVkIGluIHRoZSBBcGFj aGUtMi4wIGxpY2Vuc2UsIHNoYWxsIGJlCistZHVhbCBsaWNlbnNlZCBhcyBhYm92ZSwgd2l0aG91 dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorLQorLVt0cmF2aXNdOiBodHRw czovL3RyYXZpcy1jaS5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kCistW1RyYXZpcy1DSSBTdGF0 dXNdOiBodHRwczovL3RyYXZpcy1jaS5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kLnN2Zz9icmFu Y2g9bWFzdGVyCistW2FwcHZleW9yXTogaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9n bnpsYmcvcGFja2VkLXNpbWQKKy1bQXBwdmV5b3IgU3RhdHVzXTogaHR0cHM6Ly9jaS5hcHB2ZXlv ci5jb20vYXBpL3Byb2plY3RzL3N0YXR1cy9oZDd2OWR2cjQ0MmhnZGl4P3N2Zz10cnVlCistW0xh dGVzdCBWZXJzaW9uXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jcmF0ZXMvdi9wYWNrZWRfc2lt ZC5zdmcKKy1bY3JhdGVzLmlvXTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3BhY2tlZF9zaW1k CistW2RvY3NdOiBodHRwczovL2RvY3MucnMvcGFja2VkX3NpbWQvYmFkZ2Uuc3ZnCistW2RvY3Mu cnNdOiBodHRwczovL2RvY3MucnMvcGFja2VkX3NpbWQKKy1bbWFzdGVyX2RvY3NdOiBodHRwczov L3J1c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9wYWNrZWRfc2ltZC8KKy1b cGVyZl9ndWlkZV06IGh0dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvCistW3JmYzIzNjZdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L3JmY3MvcHVsbC8yMzY2CistW0lTUENdOiBodHRwczovL2lzcGMuZ2l0aHViLmlvLworLVtyYXlv bl06IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9yYXlvbgorLVtib29zdF9saWNlbnNlXTogaHR0 cHM6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorLVtTTEVFRl06IGh0dHBzOi8vc2xl ZWYub3JnLworLVtzbGVlZl9zeXNdOiBodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvc2xlZWYtc3lz CistW2NvbnRyaWJ1dGluZyBpbnN0cnVjdGlvbnNdOiBjb250cmlidXRpbmcubWQKKy1bQ29kZSBv ZiBDb25kdWN0XTogaHR0cHM6Ly93d3cucnVzdC1sYW5nLm9yZy9lbi1VUy9jb25kdWN0Lmh0bWwK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2JvcnMudG9tbCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYm9ycy50b21sCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYm9ycy50b21sCisrKysg L2Rldi9udWxsCitAQCAtMSwzICswLDAgQEAKKy1zdGF0dXMgPSBbCistICAgICJjb250aW51b3Vz LWludGVncmF0aW9uL3RyYXZpcy1jaS9wdXNoIgorLV0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYnVpbGQucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYnVpbGQucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDYgKzAsMCBAQAorLWZuIG1haW4oKSB7CistICAgIGxldCB0YXJn ZXQgPSBzdGQ6OmVudjo6dmFyKCJUQVJHRVQiKS5leHBlY3QoIlRBUkdFVCBlbnZpcm9ubWVudCB2 YXJpYWJsZSBub3QgZGVmaW5lZCIpOworLSAgICBpZiB0YXJnZXQuY29udGFpbnMoIm5lb24iKSB7 CistICAgICAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPWxpYmNvcmVfbmVvbiIpOworLSAg ICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYWxs LnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbGwuc2gKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbGwu c2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDcxICswLDAgQEAKKy0jIS91c3IvYmluL2VudiBiYXNo CistIworLSMgUGVyZm9ybXMgYW4gb3BlcmF0aW9uIG9uIGFsbCB0YXJnZXRzCistCistc2V0IC1l eAorLQorLTogIiR7MT9UaGUgYWxsLnNoIHNjcmlwdCByZXF1aXJlcyBvbmUgYXJndW1lbnQufSIK Ky0KKy1vcD0kMQorLQorLWNhcmdvX2NsZWFuKCkgeworLSAgICBjYXJnbyBjbGVhbgorLX0KKy0K Ky1jYXJnb19jaGVja19mbXQoKSB7CistICAgIGNhcmdvIGZtdCAtLWFsbCAtLSAtLWNoZWNrCist fQorLQorLWNhcmdvX2ZtdCgpIHsKKy0gICAgY2FyZ28gZm10IC0tYWxsCistfQorLQorLWNhcmdv X2NsaXBweSgpIHsKKy0gICAgY2FyZ28gY2xpcHB5IC0tYWxsIC0tIC1EIGNsaXBweTo6cGVyZgor LX0KKy0KKy1DTUQ9Ii0xIgorLQorLWNhc2UgJG9wIGluCistICAgIGNsZWFuKikKKy0gICAgICAg IENNRD1jYXJnb19jbGVhbgorLSAgICAgICAgOzsKKy0gICAgY2hlY2tfZm10KikKKy0gICAgICAg IENNRD1jYXJnb19jaGVja19mbXQKKy0gICAgICAgIDs7CistICAgIGZtdCopCistICAgICAgICBD TUQ9Y2FyZ29fZm10CistICAgICAgICA7OworLSAgICBjbGlwcHkpCistICAgICAgICBDTUQ9Y2Fy Z29fY2xpcHB5CistICAgICAgICA7OworLSAgICAqKQorLSAgICAgICAgZWNobyAiVW5rbm93biBv cGVyYXRpb246IFwiJHtvcH1cIiIKKy0gICAgICAgIGV4aXQgMQorLSAgICAgICAgOzsKKy1lc2Fj CistCistZWNobyAiT3BlcmF0aW9uIGlzOiAke0NNRH0iCistCistIyBPbiBzcmMvCistJENNRAor LQorLSMgQ2hlY2sgZXhhbXBsZXMvCistZm9yIGRpciBpbiBleGFtcGxlcy8qLworLWRvCistICAg IGRpcj0ke2RpciUqL30KKy0gICAgKAorLSAgICAgICAgY2QgIiR7ZGlyJSovfSIKKy0gICAgICAg ICRDTUQKKy0gICAgKQorLWRvbmUKKy0KKy0oCistICAgIGNkIHZlcmlmeS92ZXJpZnkKKy0gICAg JENNRAorLSkKKy0KKy0oCistICAgIGNkIG1pY3JvX2JlbmNobWFya3MKKy0gICAgJENNRAorLSkK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5z dGFsbC1uZGsuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5z dGFsbC1uZGsuc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRrLnNoCisrKysgL2Rldi9udWxs CitAQCAtMSwyMSArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgc2gKKy0jIENvcHlyaWdodCAyMDE2 IFRoZSBSdXN0IFByb2plY3QgRGV2ZWxvcGVycy4gU2VlIHRoZSBDT1BZUklHSFQKKy0jIGZpbGUg YXQgdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRpb24gYW5kIGF0Cist IyBodHRwOi8vcnVzdC1sYW5nLm9yZy9DT1BZUklHSFQuCistIworLSMgTGljZW5zZWQgdW5kZXIg dGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCA8TElDRU5TRS1BUEFDSEUgb3IKKy0jIGh0 dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNl bnNlCistIyA8TElDRU5TRS1NSVQgb3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01J VD4sIGF0IHlvdXIKKy0jIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2Rp ZmllZCwgb3IgZGlzdHJpYnV0ZWQKKy0jIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMu CistCistc2V0IC1leAorLQorLUFORFJPSURfTkRLX1VSTD1odHRwczovL2RsLmdvb2dsZS5jb20v YW5kcm9pZC9yZXBvc2l0b3J5CistQU5EUk9JRF9OREtfQVJDSElWRT1hbmRyb2lkLW5kay1yMjVi LWxpbnV4LnppcAorLQorLWN1cmwgLWZPICIkQU5EUk9JRF9OREtfVVJMLyRBTkRST0lEX05ES19B UkNISVZFIgorLXVuemlwIC1xICRBTkRST0lEX05ES19BUkNISVZFCistcm0gJEFORFJPSURfTkRL X0FSQ0hJVkUKKy1tdiBhbmRyb2lkLW5kay0qIG5kaworLXJtIC1yZiBhbmRyb2lkLW5kay0qCitk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3Rh bGwtc2RrLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3Rh bGwtc2RrLnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5zaAorKysrIC9kZXYvbnVsbAor QEAgLTEsNjAgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IHNoCistIyBDb3B5cmlnaHQgMjAxNiBU aGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hUCistIyBmaWxlIGF0 IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAorLSMg aHR0cDovL3J1c3QtbGFuZy5vcmcvQ09QWVJJR0hULgorLSMKKy0jIExpY2Vuc2VkIHVuZGVyIHRo ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCistIyBodHRw Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5z ZQorLSMgPExJQ0VOU0UtTUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+ LCBhdCB5b3VyCistIyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZp ZWQsIG9yIGRpc3RyaWJ1dGVkCistIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgor LQorLXNldCAtZXgKKy0KKy0jIFByZXAgdGhlIFNESyBhbmQgZW11bGF0b3IKKy0jCistIyBOb3Rl IHRoYXQgdGhlIHVwZGF0ZSBwcm9jZXNzIHJlcXVpcmVzIHRoYXQgd2UgYWNjZXB0IGEgYnVuY2gg b2YgbGljZW5zZXMsIGFuZAorLSMgd2UgY2FuJ3QganVzdCBwaXBlIGB5ZXNgIGludG8gaXQgZm9y IHNvbWUgcmVhc29uLCBzbyB3ZSB0YWtlIHRoZSBzYW1lIHN0cmF0ZWd5CistIyBsb2NhdGVkIGlu IGh0dHBzOi8vZ2l0aHViLmNvbS9hcHB1bml0ZS9kb2NrZXIgYnkganVzdCB3cmFwcGluZyBpdCBp biBhIHNjcmlwdAorLSMgd2hpY2ggYXBwYXJlbnRseSBtYWdpY2FsbHkgYWNjZXB0cyB0aGUgbGlj ZW5zZXMuCistCistbWtkaXIgc2RrCistY3VybCAtLXJldHJ5IDUgaHR0cHM6Ly9kbC5nb29nbGUu Y29tL2FuZHJvaWQvcmVwb3NpdG9yeS9zZGstdG9vbHMtbGludXgtMzg1OTM5Ny56aXAgLU8KKy11 bnppcCAtZCBzZGsgc2RrLXRvb2xzLWxpbnV4LTM4NTkzOTcuemlwCistCistY2FzZSAiJDEiIGlu CistICBhcm0gfCBhcm12NykKKy0gICAgYWJpPWFybWVhYmktdjdhCistICAgIDs7CistCistICBh YXJjaDY0KQorLSAgICBhYmk9YXJtNjQtdjhhCistICAgIDs7CistCistICBpNjg2KQorLSAgICBh Ymk9eDg2CistICAgIDs7CistCistICB4ODZfNjQpCistICAgIGFiaT14ODZfNjQKKy0gICAgOzsK Ky0KKy0gICopCistICAgIGVjaG8gImludmFsaWQgYXJjaDogJDEiCistICAgIGV4aXQgMQorLSAg ICA7OworLWVzYWM7CistCistIyAtLW5vX2h0dHBzIGF2b2lkcworLSAgICAgIyBqYXZheC5uZXQu c3NsLlNTTEhhbmRzaGFrZUV4Y2VwdGlvbjogc3VuLnNlY3VyaXR5LnZhbGlkYXRvci5WYWxpZGF0 b3JFeGNlcHRpb246IE5vIHRydXN0ZWQgY2VydGlmaWNhdGUgZm91bmQKKy15ZXMgfCAuL3Nkay90 b29scy9iaW4vc2RrbWFuYWdlciAtLWxpY2Vuc2VzIC0tbm9faHR0cHMKKy15ZXMgfCAuL3Nkay90 b29scy9iaW4vc2RrbWFuYWdlciAtLW5vX2h0dHBzIFwKKy0gICAgICAgICJlbXVsYXRvciIgXAor LSAgICAgICAgInBsYXRmb3JtLXRvb2xzIiBcCistICAgICAgICAicGxhdGZvcm1zO2FuZHJvaWQt MjQiIFwKKy0gICAgICAgICJzeXN0ZW0taW1hZ2VzO2FuZHJvaWQtMjQ7ZGVmYXVsdDskYWJpIgor LQorLWVjaG8gIm5vIiB8CistICAgIC4vc2RrL3Rvb2xzL2Jpbi9hdmRtYW5hZ2VyIGNyZWF0ZSBh dmQgXAorLSAgICAgICAgLS1uYW1lICIkezF9IiBcCistICAgICAgICAtLXBhY2thZ2UgInN5c3Rl bS1pbWFnZXM7YW5kcm9pZC0yNDtkZWZhdWx0OyRhYmkiCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLXN5c2ltYWdlLnNoIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLXN5c2ltYWdlLnNoCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1z eXNpbWFnZS5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsNTYgKzAsMCBAQAorLSMhL3Vzci9iaW4v ZW52IGJhc2gKKy0KKy0jIENvcHlyaWdodCAyMDE3IFRoZSBSdXN0IFByb2plY3QgRGV2ZWxvcGVy cy4gU2VlIHRoZSBDT1BZUklHSFQKKy0jIGZpbGUgYXQgdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkg b2YgdGhpcyBkaXN0cmlidXRpb24gYW5kIGF0CistIyBodHRwOi8vcnVzdC1sYW5nLm9yZy9DT1BZ UklHSFQuCistIworLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u IDIuMCA8TElDRU5TRS1BUEFDSEUgb3IKKy0jIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNl cy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCistIyA8TElDRU5TRS1NSVQgb3IgaHR0 cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGF0IHlvdXIKKy0jIG9wdGlvbi4gVGhp cyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKKy0jIGV4 Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCistCistc2V0IC1leAorLQorLVVSTD1odHRw czovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9yZXBvc2l0b3J5L3N5cy1pbWcvYW5kcm9pZAorLQor LW1haW4oKSB7CistICAgIGxvY2FsIGFyY2g9IiR7MX0iCistICAgIGxvY2FsIG5hbWU9IiR7Mn0i CistICAgIGxvY2FsIGRlc3Q9L3N5c3RlbQorLSAgICBsb2NhbCB0ZAorLSAgICB0ZD0iJChta3Rl bXAgLWQpIgorLQorLSAgICBhcHQtZ2V0IGluc3RhbGwgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMg ZTJ0b29scworLQorLSAgICBwdXNoZCAiJHt0ZH0iCistICAgIGN1cmwgLS1yZXRyeSA1IC1PICIk e1VSTH0vJHtuYW1lfSIKKy0gICAgdW56aXAgLXEgIiR7bmFtZX0iCistCistICAgIGxvY2FsIHN5 c3RlbQorLSAgICBzeXN0ZW09IiQoZmluZCAuIC1uYW1lIHN5c3RlbS5pbWcpIgorLSAgICBta2Rp ciAtcCAke2Rlc3R9L3tiaW4sbGliLGxpYjY0fQorLQorLSAgICAjIEV4dHJhY3QgYW5kcm9pZCBs aW5rZXIgYW5kIGxpYnJhcmllcyB0byAvc3lzdGVtCistICAgICMgVGhpcyBhbGxvd3MgYW5kcm9p ZCBleGVjdXRhYmxlcyB0byBiZSBydW4gZGlyZWN0bHkgKG9yIHdpdGggcWVtdSkKKy0gICAgaWYg WyAiJHthcmNofSIgPSAieDg2XzY0IiBdIHx8IFsgIiR7YXJjaH0iID0gImFybTY0IiBdOyB0aGVu CistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2Jpbi9saW5rZXI2NCIgIiR7ZGVzdH0vYmlu LyIKKy0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGliNjQvbGliZGwuc28iICIke2Rlc3R9 L2xpYjY0LyIKKy0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGliNjQvbGliYy5zbyIgIiR7 ZGVzdH0vbGliNjQvIgorLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9saWI2NC9saWJtLnNv IiAiJHtkZXN0fS9saWI2NC8iCistICAgIGVsc2UKKy0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVt fTovYmluL2xpbmtlciIgIiR7ZGVzdH0vYmluLyIKKy0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVt fTovbGliL2xpYmRsLnNvIiAiJHtkZXN0fS9saWIvIgorLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0 ZW19Oi9saWIvbGliYy5zbyIgIiR7ZGVzdH0vbGliLyIKKy0gICAgICAgIGUyY3AgLXAgIiR7c3lz dGVtfTovbGliL2xpYm0uc28iICIke2Rlc3R9L2xpYi8iCistICAgIGZpCistCistICAgICMgY2xl YW4gdXAKKy0gICAgYXB0LWdldCBwdXJnZSAtLWF1dG8tcmVtb3ZlIC15IGUydG9vbHMKKy0KKy0g ICAgcG9wZAorLQorLSAgICBybSAtcmYgIiR7dGR9IgorLX0KKy0KKy1tYWluICIke0B9IgorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYmVuY2htYXJrLnNoIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9iZW5jaG1hcmsuc2gKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9iZW5j aG1hcmsuc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDMyICswLDAgQEAKKy0jIS91c3IvYmluL2Vu diBiYXNoCistIworLSMgUnVucyBhbGwgYmVuY2htYXJrcy4gQ29udHJvbGxlZCBieSB0aGUgZm9s bG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlczoKKy0jCistIyBGRUFUVVJFUz17fSAtIGNhcmdv IGZlYXR1cmVzIHRvIHBhc3MgdG8gYWxsIGJlbmNobWFya3MgKGUuZy4gY29yZV9hcmNoLHNsZWVm LXN5cyxpc3BjKQorLSMgTk9SVU49ezF9ICAgLSBvbmx5IGJ1aWxkcyB0aGUgYmVuY2htYXJrcwor LQorLXNldCAtZXgKKy0KKy1pZiBbWyAke05PUlVOfSAhPSAxIF1dOyB0aGVuCistICAgICMgTW9z dCBiZW5jaG1hcmtzIHJlcXVpcmUgaHlwZXJmaW5lOyByZXF1aXJlIGl0IHVwZnJvbnQuCistICAg IGhhc2ggaHlwZXJmaW5lIDI+L2Rldi9udWxsIHx8IHsgZWNobyA+JjIgImh5cGVyZmluZSBpcyBu b3QgaW4gUEFUSC4iOyBleGl0IDE7IH0KKy1maQorLQorLQorLSMgSWYgdGhlIGlzcGMgYmVuY2ht YXJrIGZlYXR1cmUgaXMgZW5hYmxlZCwgaXNwYyBtdXN0IGJlIGluIHRoZSBwYXRoIG9mIHRoZQor LSMgYmVuY2htYXJrcy4gCistaWYgZWNobyAiJEZFQVRVUkVTIiB8IGdyZXAgLXEgImlzcGMiOyB0 aGVuCistICAgIGhhc2ggaXNwYyAyPi9kZXYvbnVsbCB8fCB7IGVjaG8gPiYyICJpc3BjIGlzIG5v dCBpbiBQQVRILiI7IGV4aXQgMTsgfQorLWZpCistCistIyBBbiBleGFtcGxlIHdpdGggYSBiZW5j aG1hcmsuc2ggaXMgYSBiZW5jaG1hcms6CistZm9yIGRpciBpbiBleGFtcGxlcy8qLworLWRvCist ICAgIGRpcj0ke2RpciUqL30KKy0gICAgY2QgJHtkaXIlKi99CistICAgIGlmIFsgLWYgImJlbmNo bWFyay5zaCIgXTsgdGhlbgorLSAgICAgICAgLi9iZW5jaG1hcmsuc2gKKy0gICAgZmkKKy0gICAg Y2QgLQorLWRvbmUKKy0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RlcGxveV9hbmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RlcGxveV9hbmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzCisrKysgL2Rldi9udWxsCitAQCAt MSwxNzYgKzAsMCBAQAorLS8vIENvcHlyaWdodCAyMDE3IFRoZSBSdXN0IFByb2plY3QgRGV2ZWxv cGVycy4gU2VlIHRoZSBDT1BZUklHSFQKKy0vLyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGlyZWN0 b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAorLS8vIGh0dHA6Ly9ydXN0LWxhbmcub3Jn L0NPUFlSSUdIVC4KKy0vLworLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg VmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCistLy8gaHR0cDovL3d3dy5hcGFjaGUub3Jn L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKKy0vLyA8TElDRU5TRS1N SVQgb3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGF0IHlvdXIKKy0vLyBv cHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1 dGVkCistLy8gZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KKy0KKy0vLyBUaGlzIGlz IGEgc2NyaXB0IHRvIGRlcGxveSBhbmQgZXhlY3V0ZSBhIGJpbmFyeSBvbiBhbiBpT1Mgc2ltdWxh dG9yLgorLS8vIFRoZSBwcmltYXJ5IHVzZSBvZiB0aGlzIGlzIHRvIGJlIGFibGUgdG8gcnVuIHVu aXQgdGVzdHMgb24gdGhlIHNpbXVsYXRvciBhbmQKKy0vLyByZXRyaWV2ZSB0aGUgcmVzdWx0cy4K Ky0vLworLS8vIFRvIGRvIHRoaXMgdGhyb3VnaCBDYXJnbyBpbnN0ZWFkLCB1c2UgRGluZ2h5Cist Ly8gKGh0dHBzOi8vZ2l0aHViLmNvbS9zbmlwc2NvL2RpbmdoeSk6IGNhcmdvIGRpbmdoeSBpbnN0 YWxsLCB0aGVuIGNhcmdvIGRpbmdoeQorLS8vIHRlc3QuCistCistdXNlIHN0ZDo6ZW52OworLXVz ZSBzdGQ6OmZzOjp7c2VsZiwgRmlsZX07CistdXNlIHN0ZDo6aW86OldyaXRlOworLXVzZSBzdGQ6 OnBhdGg6OlBhdGg7CistdXNlIHN0ZDo6cHJvY2VzczsKKy11c2Ugc3RkOjpwcm9jZXNzOjpDb21t YW5kOworLQorLW1hY3JvX3J1bGVzISB0IHsKKy0gICAgKCRlOmV4cHIpID0+IChtYXRjaCAkZSB7 CistICAgICAgICBPayhlKSA9PiBlLAorLSAgICAgICAgRXJyKGUpID0+IHBhbmljISgie30gZmFp bGVkIHdpdGg6IHt9Iiwgc3RyaW5naWZ5ISgkZSksIGUpLAorLSAgICB9KQorLX0KKy0KKy0vLyBT dGVwIG9uZTogV3JhcCBhcyBhbiBhcHAKKy1mbiBwYWNrYWdlX2FzX3NpbXVsYXRvcl9hcHAoY3Jh dGVfbmFtZTogJnN0ciwgdGVzdF9iaW5hcnlfcGF0aDogJlBhdGgpIHsKKy0gICAgcHJpbnRsbiEo IlBhY2thZ2luZyBzaW11bGF0b3IgYXBwIik7CistICAgIGRyb3AoZnM6OnJlbW92ZV9kaXJfYWxs KCJpb3Nfc2ltdWxhdG9yX2FwcCIpKTsKKy0gICAgdCEoZnM6OmNyZWF0ZV9kaXIoImlvc19zaW11 bGF0b3JfYXBwIikpOworLSAgICB0IShmczo6Y29weSh0ZXN0X2JpbmFyeV9wYXRoLAorLSAgICAg ICAgICAgICAgICBQYXRoOjpuZXcoImlvc19zaW11bGF0b3JfYXBwIikuam9pbihjcmF0ZV9uYW1l KSkpOworLQorLSAgICBsZXQgbXV0IGYgPSB0IShGaWxlOjpjcmVhdGUoImlvc19zaW11bGF0b3Jf YXBwL0luZm8ucGxpc3QiKSk7CistICAgIHQhKGYud3JpdGVfYWxsKGZvcm1hdCEociMiCistICAg ICAgICA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorLSAgICAgICAgPCFE T0NUWVBFIHBsaXN0IFBVQkxJQworLSAgICAgICAgICAgICAgICAiLS8vQXBwbGUvL0RURCBQTElT VCAxLjAvL0VOIgorLSAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Q cm9wZXJ0eUxpc3QtMS4wLmR0ZCI+CistICAgICAgICA8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKy0g ICAgICAgICAgICA8ZGljdD4KKy0gICAgICAgICAgICAgICAgPGtleT5DRkJ1bmRsZUV4ZWN1dGFi bGU8L2tleT4KKy0gICAgICAgICAgICAgICAgPHN0cmluZz57fTwvc3RyaW5nPgorLSAgICAgICAg ICAgICAgICA8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorLSAgICAgICAgICAgICAgICA8 c3RyaW5nPmNvbS5ydXN0LnVuaXR0ZXN0czwvc3RyaW5nPgorLSAgICAgICAgICAgIDwvZGljdD4K Ky0gICAgICAgIDwvcGxpc3Q+CistICAgICIjLCBjcmF0ZV9uYW1lKS5hc19ieXRlcygpKSk7Cist fQorLQorLS8vIFN0ZXAgdHdvOiBTdGFydCB0aGUgaU9TIHNpbXVsYXRvcgorLWZuIHN0YXJ0X3Np bXVsYXRvcigpIHsKKy0gICAgcHJpbnRsbiEoIkxvb2tpbmcgZm9yIGlPUyBzaW11bGF0b3IiKTsK Ky0gICAgbGV0IG91dHB1dCA9IHQhKENvbW1hbmQ6Om5ldygieGNydW4iKS5hcmcoInNpbWN0bCIp LmFyZygibGlzdCIpLm91dHB1dCgpKTsKKy0gICAgYXNzZXJ0IShvdXRwdXQuc3RhdHVzLnN1Y2Nl c3MoKSk7CistICAgIGxldCBtdXQgc2ltdWxhdG9yX2V4aXN0cyA9IGZhbHNlOworLSAgICBsZXQg bXV0IHNpbXVsYXRvcl9ib290ZWQgPSBmYWxzZTsKKy0gICAgbGV0IG11dCBmb3VuZF9ydXN0X3Np bSA9IGZhbHNlOworLSAgICBsZXQgc3Rkb3V0ID0gdCEoU3RyaW5nOjpmcm9tX3V0Zjgob3V0cHV0 LnN0ZG91dCkpOworLSAgICBmb3IgbGluZSBpbiBzdGRvdXQubGluZXMoKSB7CistICAgICAgICBp ZiBsaW5lLmNvbnRhaW5zKCJydXN0X2lvcyIpIHsKKy0gICAgICAgICAgICBpZiBmb3VuZF9ydXN0 X3NpbSB7CistICAgICAgICAgICAgICAgIHBhbmljISgiRHVwbGljYXRlIHJ1c3RfaW9zIHNpbXVs YXRvcnMgZm91bmQuIFBsZWFzZSBcCistICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlLWNo ZWNrIHhjcnVuIHNpbWN0bCBsaXN0LiIpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBz aW11bGF0b3JfZXhpc3RzID0gdHJ1ZTsKKy0gICAgICAgICAgICBzaW11bGF0b3JfYm9vdGVkID0g bGluZS5jb250YWlucygiKEJvb3RlZCkiKTsKKy0gICAgICAgICAgICBmb3VuZF9ydXN0X3NpbSA9 IHRydWU7CistICAgICAgICB9CistICAgIH0KKy0KKy0gICAgaWYgc2ltdWxhdG9yX2V4aXN0cyA9 PSBmYWxzZSB7CistICAgICAgICBwcmludGxuISgiQ3JlYXRpbmcgaU9TIHNpbXVsYXRvciIpOwor LSAgICAgICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIpCistICAgICAgICAgICAgICAgIC5hcmcoInNp bWN0bCIpCistICAgICAgICAgICAgICAgIC5hcmcoImNyZWF0ZSIpCistICAgICAgICAgICAgICAg IC5hcmcoInJ1c3RfaW9zIikKKy0gICAgICAgICAgICAgICAgLmFyZygiY29tLmFwcGxlLkNvcmVT aW11bGF0b3IuU2ltRGV2aWNlVHlwZS5pUGhvbmUtU0UiKQorLSAgICAgICAgICAgICAgICAuYXJn KCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy0xMC0yIikKKy0gICAgICAg ICAgICAgICAgLmNoZWNrX3N0YXR1cygpOworLSAgICB9IGVsc2UgaWYgc2ltdWxhdG9yX2Jvb3Rl ZCA9PSB0cnVlIHsKKy0gICAgICAgIHByaW50bG4hKCJTaHV0dGluZyBkb3duIGFscmVhZHktYm9v dGVkIHNpbXVsYXRvciIpOworLSAgICAgICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIpCistICAgICAg ICAgICAgICAgIC5hcmcoInNpbWN0bCIpCistICAgICAgICAgICAgICAgIC5hcmcoInNodXRkb3du IikKKy0gICAgICAgICAgICAgICAgLmFyZygicnVzdF9pb3MiKQorLSAgICAgICAgICAgICAgICAu Y2hlY2tfc3RhdHVzKCk7CistICAgIH0KKy0KKy0gICAgcHJpbnRsbiEoIlN0YXJ0aW5nIGlPUyBz aW11bGF0b3IiKTsKKy0gICAgLy8gV2UgY2FuJ3QgdW5pbnN0YWxsIHRoZSBhcHAgKGlmIHByZXNl bnQpIGFzIHRoYXQgd2lsbCBoYW5nIGlmIHRoZQorLSAgICAvLyBzaW11bGF0b3IgaXNuJ3QgY29t cGxldGVseSBib290ZWQ7IGp1c3QgZXJhc2UgdGhlIHNpbXVsYXRvciBpbnN0ZWFkLgorLSAgICBD b21tYW5kOjpuZXcoInhjcnVuIikuYXJnKCJzaW1jdGwiKS5hcmcoImVyYXNlIikuYXJnKCJydXN0 X2lvcyIpLmNoZWNrX3N0YXR1cygpOworLSAgICBDb21tYW5kOjpuZXcoInhjcnVuIikuYXJnKCJz aW1jdGwiKS5hcmcoImJvb3QiKS5hcmcoInJ1c3RfaW9zIikuY2hlY2tfc3RhdHVzKCk7CistfQor LQorLS8vIFN0ZXAgdGhyZWU6IEluc3RhbGwgdGhlIGFwcAorLWZuIGluc3RhbGxfYXBwX3RvX3Np bXVsYXRvcigpIHsKKy0gICAgcHJpbnRsbiEoIkluc3RhbGxpbmcgYXBwIHRvIHNpbXVsYXRvciIp OworLSAgICBDb21tYW5kOjpuZXcoInhjcnVuIikKKy0gICAgICAgICAgICAuYXJnKCJzaW1jdGwi KQorLSAgICAgICAgICAgIC5hcmcoImluc3RhbGwiKQorLSAgICAgICAgICAgIC5hcmcoImJvb3Rl ZCIpCistICAgICAgICAgICAgLmFyZygiaW9zX3NpbXVsYXRvcl9hcHAvIikKKy0gICAgICAgICAg ICAuY2hlY2tfc3RhdHVzKCk7CistfQorLQorLS8vIFN0ZXAgZm91cjogUnVuIHRoZSBhcHAKKy1m biBydW5fYXBwX29uX3NpbXVsYXRvcigpIHsKKy0gICAgcHJpbnRsbiEoIlJ1bm5pbmcgYXBwIik7 CistICAgIGxldCBvdXRwdXQgPSB0IShDb21tYW5kOjpuZXcoInhjcnVuIikKKy0gICAgICAgICAg ICAgICAgICAgIC5hcmcoInNpbWN0bCIpCistICAgICAgICAgICAgICAgICAgICAuYXJnKCJsYXVu Y2giKQorLSAgICAgICAgICAgICAgICAgICAgLmFyZygiLS1jb25zb2xlIikKKy0gICAgICAgICAg ICAgICAgICAgIC5hcmcoImJvb3RlZCIpCistICAgICAgICAgICAgICAgICAgICAuYXJnKCJjb20u cnVzdC51bml0dGVzdHMiKQorLSAgICAgICAgICAgICAgICAgICAgLm91dHB1dCgpKTsKKy0KKy0g ICAgcHJpbnRsbiEoInN0ZG91dCAtLVxue31cbiIsIFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZv dXRwdXQuc3Rkb3V0KSk7CistICAgIHByaW50bG4hKCJzdGRlcnIgLS1cbnt9XG4iLCBTdHJpbmc6 OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZGVycikpOworLQorLSAgICBsZXQgc3Rkb3V0ID0g U3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRvdXQpOworLSAgICBsZXQgZmFpbGVk ID0gc3Rkb3V0LmxpbmVzKCkKKy0gICAgICAgIC5maW5kKHxsfCBsLmNvbnRhaW5zKCJGQUlMRUQi KSkKKy0gICAgICAgIC5tYXAofGx8IGwuY29udGFpbnMoIkZBSUxFRCIpKQorLSAgICAgICAgLnVu d3JhcF9vcihmYWxzZSk7CistCistICAgIGxldCBwYXNzZWQgPSBzdGRvdXQubGluZXMoKQorLSAg ICAgICAgLmZpbmQofGx8IGwuY29udGFpbnMoInRlc3QgcmVzdWx0OiBvayIpKQorLSAgICAgICAg Lm1hcCh8bHwgbC5jb250YWlucygidGVzdCByZXN1bHQ6IG9rIikpCistICAgICAgICAudW53cmFw X29yKGZhbHNlKTsKKy0KKy0gICAgcHJpbnRsbiEoIlNodXR0aW5nIGRvd24gc2ltdWxhdG9yIik7 CistICAgIENvbW1hbmQ6Om5ldygieGNydW4iKQorLSAgICAgICAgLmFyZygic2ltY3RsIikKKy0g ICAgICAgIC5hcmcoInNodXRkb3duIikKKy0gICAgICAgIC5hcmcoInJ1c3RfaW9zIikKKy0gICAg ICAgIC5jaGVja19zdGF0dXMoKTsKKy0gICAgaWYgIShwYXNzZWQgJiYgIWZhaWxlZCkgeworLSAg ICAgICAgcGFuaWMhKCJ0ZXN0cyBkaWRuJ3QgcGFzcyIpOworLSAgICB9CistfQorLQorLXRyYWl0 IENoZWNrU3RhdHVzIHsKKy0gICAgZm4gY2hlY2tfc3RhdHVzKCZtdXQgc2VsZik7CistfQorLQor LWltcGwgQ2hlY2tTdGF0dXMgZm9yIENvbW1hbmQgeworLSAgICBmbiBjaGVja19zdGF0dXMoJm11 dCBzZWxmKSB7CistICAgICAgICBwcmludGxuISgiXHRydW5uaW5nOiB7Oj99Iiwgc2VsZik7Cist ICAgICAgICBhc3NlcnQhKHQhKHNlbGYuc3RhdHVzKCkpLnN1Y2Nlc3MoKSk7CistICAgIH0KKy19 CistCistZm4gbWFpbigpIHsKKy0gICAgbGV0IGFyZ3M6IFZlYzxTdHJpbmc+ID0gZW52Ojphcmdz KCkuY29sbGVjdCgpOworLSAgICBpZiBhcmdzLmxlbigpICE9IDIgeworLSAgICAgICAgcHJpbnRs biEoIlVzYWdlOiB7fSA8ZXhlY3V0YWJsZT4iLCBhcmdzWzBdKTsKKy0gICAgICAgIHByb2Nlc3M6 OmV4aXQoLTEpOworLSAgICB9CistCistICAgIGxldCB0ZXN0X2JpbmFyeV9wYXRoID0gUGF0aDo6 bmV3KCZhcmdzWzFdKTsKKy0gICAgbGV0IGNyYXRlX25hbWUgPSB0ZXN0X2JpbmFyeV9wYXRoLmZp bGVfbmFtZSgpLnVud3JhcCgpOworLQorLSAgICBwYWNrYWdlX2FzX3NpbXVsYXRvcl9hcHAoY3Jh dGVfbmFtZS50b19zdHIoKS51bndyYXAoKSwgdGVzdF9iaW5hcnlfcGF0aCk7CistICAgIHN0YXJ0 X3NpbXVsYXRvcigpOworLSAgICBpbnN0YWxsX2FwcF90b19zaW11bGF0b3IoKTsKKy0gICAgcnVu X2FwcF9vbl9zaW11bGF0b3IoKTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJv aWQvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJvaWQvRG9ja2Vy ZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsNDcgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE2LjA0 CistCistUlVOIGRwa2cgLS1hZGQtYXJjaGl0ZWN0dXJlIGkzODYgJiYgXAorLSAgICBhcHQtZ2V0 IHVwZGF0ZSAmJiBcCistICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21t ZW5kcyBcCistICBmaWxlIFwKKy0gIG1ha2UgXAorLSAgY3VybCBcCistICBjYS1jZXJ0aWZpY2F0 ZXMgXAorLSAgcHl0aG9uIFwKKy0gIHVuemlwIFwKKy0gIGV4cGVjdCBcCistICBvcGVuamRrLTkt anJlIFwKKy0gIGxpYnN0ZGMrKzY6aTM4NiBcCistICBsaWJwdWxzZTAgXAorLSAgZ2NjIFwKKy0g IGxpYmM2LWRldgorLQorLVdPUktESVIgL2FuZHJvaWQvCistQ09QWSBhbmRyb2lkKiAvYW5kcm9p ZC8KKy0KKy1FTlYgQU5EUk9JRF9BUkNIPWFhcmNoNjQKKy1FTlYgUEFUSD0kUEFUSDovYW5kcm9p ZC9uZGstJEFORFJPSURfQVJDSC9iaW46L2FuZHJvaWQvc2RrL3Rvb2xzOi9hbmRyb2lkL3Nkay9w bGF0Zm9ybS10b29scworLQorLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtbmRrLnNo ICRBTkRST0lEX0FSQ0gKKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCAk QU5EUk9JRF9BUkNICistUlVOIG12IC9yb290Ly5hbmRyb2lkIC90bXAKKy1SVU4gY2htb2QgNzc3 IC1SIC90bXAvLmFuZHJvaWQKKy1SVU4gY2htb2QgNzU1IC9hbmRyb2lkL3Nkay90b29scy8qIC9h bmRyb2lkL3Nkay9lbXVsYXRvci9xZW11L2xpbnV4LXg4Nl82NC8qCistCistRU5WIFBBVEg9JFBB VEg6L3J1c3QvYmluIFwKKy0gICAgQ0FSR09fVEFSR0VUX0FBUkNINjRfTElOVVhfQU5EUk9JRF9M SU5LRVI9YWFyY2g2NC1saW51eC1hbmRyb2lkLWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9BQVJD SDY0X0xJTlVYX0FORFJPSURfUlVOTkVSPS90bXAvcnVudGVzdCBcCistICAgIE9CSkRVTVA9YWFy Y2g2NC1saW51eC1hbmRyb2lkLW9iamR1bXAgXAorLSAgICBIT01FPS90bXAKKy0KKy1BREQgcnVu dGVzdC1hbmRyb2lkLnJzIC90bXAvcnVudGVzdC5ycworLUVOVFJZUE9JTlQgWyBcCistICAiYmFz aCIsIFwKKy0gICItYyIsIFwKKy0gICMgc2V0IFNIRUxMIHNvIGFuZHJvaWQgY2FuIGRldGVjdCBh IDY0Yml0cyBzeXN0ZW0sIHNlZQorLSAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MTc4 OTE0NAorLSAgIlNIRUxMPS9iaW4vZGFzaCAvYW5kcm9pZC9zZGsvZW11bGF0b3IvZW11bGF0b3Ig QGFhcmNoNjQgLW5vLXdpbmRvdyAmIFwKKy0gICBydXN0YyAvdG1wL3J1bnRlc3QucnMgLW8gL3Rt cC9ydW50ZXN0ICYmIFwKKy0gICBleGVjIFwiJEBcIiIsIFwKKy0gICItLSIgXAorLV0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hYXJjaDY0LXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci9hYXJjaDY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9k b2NrZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxs CitAQCAtMSwxNCArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQKKy1SVU4gYXB0LWdldCB1cGRh dGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gIGdj YyBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgbGliYzYtZGV2IFwKKy0gIGdjYy1hYXJjaDY0 LWxpbnV4LWdudSBcCistICBsaWJjNi1kZXYtYXJtNjQtY3Jvc3MgXAorLSAgcWVtdS11c2VyIFwK Ky0gIG1ha2UgXAorLSAgZmlsZQorLQorLUVOViBDQVJHT19UQVJHRVRfQUFSQ0g2NF9VTktOT1dO X0xJTlVYX0dOVV9MSU5LRVI9YWFyY2g2NC1saW51eC1nbnUtZ2NjIFwKKy0gICAgQ0FSR09fVEFS R0VUX0FBUkNINjRfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11LWFhcmNoNjQgLUwgL3Vz ci9hYXJjaDY0LWxpbnV4LWdudSIgXAorLSAgICBPQkpEVU1QPWFhcmNoNjQtbGludXgtZ251LW9i amR1bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tl ci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZp bGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJmaWxlCisr KysgL2Rldi9udWxsCitAQCAtMSwxNSArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQKKy1SVU4g YXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1l bmRzIFwKKy0gIGdjYyBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgbGliYzYtZGV2IFwKKy0g IGxpYmM2LWFybWVsLWNyb3NzIFwKKy0gIGxpYmM2LWRldi1hcm1lbC1jcm9zcyBcCistICBiaW51 dGlscy1hcm0tbGludXgtZ251ZWFiaSBcCistICBnY2MtYXJtLWxpbnV4LWdudWVhYmkgXAorLSAg cWVtdS11c2VyIFwKKy0gIG1ha2UgXAorLSAgZmlsZQorLUVOViBDQVJHT19UQVJHRVRfQVJNX1VO S05PV05fTElOVVhfR05VRUFCSV9MSU5LRVI9YXJtLWxpbnV4LWdudWVhYmktZ2NjIFwKKy0gICAg Q0FSR09fVEFSR0VUX0FSTV9VTktOT1dOX0xJTlVYX0dOVUVBQklfUlVOTkVSPSJxZW11LWFybSAt TCAvdXNyL2FybS1saW51eC1nbnVlYWJpIiBcCistICAgIE9CSkRVTVA9YXJtLWxpbnV4LWdudWVh Ymktb2JqZHVtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhm L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmL0Rv Y2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzICswLDAgQEAKKy1GUk9NIHVidW50dTox OC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0 YWxsLXJlY29tbWVuZHMgXAorLSAgZ2NjIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICBsaWJj Ni1kZXYgXAorLSAgZ2NjLWFybS1saW51eC1nbnVlYWJpaGYgXAorLSAgbGliYzYtZGV2LWFybWhm LWNyb3NzIFwKKy0gIHFlbXUtdXNlciBcCistICBtYWtlIFwKKy0gIGZpbGUKKy1FTlYgQ0FSR09f VEFSR0VUX0FSTV9VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9MSU5LRVI9YXJtLWxpbnV4LWdudWVh YmloZi1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfQVJNX1VOS05PV05fTElOVVhfR05VRUFCSUhG X1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9hcm0tbGludXgtZ251ZWFiaWhmIiBcCistICAgIE9C SkRVTVA9YXJtLWxpbnV4LWdudWVhYmloZi1vYmpkdW1wCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctbGludXgtYW5kcm9pZGVhYmkvRG9j a2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LWxp bnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctbGludXgtYW5k cm9pZGVhYmkvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsNDcgKzAsMCBAQAorLUZS T00gdWJ1bnR1OjE2LjA0CistCistUlVOIGRwa2cgLS1hZGQtYXJjaGl0ZWN0dXJlIGkzODYgJiYg XAorLSAgICBhcHQtZ2V0IHVwZGF0ZSAmJiBcCistICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5v LWluc3RhbGwtcmVjb21tZW5kcyBcCistICBmaWxlIFwKKy0gIG1ha2UgXAorLSAgY3VybCBcCist ICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgcHl0aG9uIFwKKy0gIHVuemlwIFwKKy0gIGV4cGVjdCBc CistICBvcGVuamRrLTktanJlIFwKKy0gIGxpYnN0ZGMrKzY6aTM4NiBcCistICBsaWJwdWxzZTAg XAorLSAgZ2NjIFwKKy0gIGxpYmM2LWRldgorLQorLVdPUktESVIgL2FuZHJvaWQvCistQ09QWSBh bmRyb2lkKiAvYW5kcm9pZC8KKy0KKy1FTlYgQU5EUk9JRF9BUkNIPWFybQorLUVOViBQQVRIPSRQ QVRIOi9hbmRyb2lkL25kay0kQU5EUk9JRF9BUkNIL2JpbjovYW5kcm9pZC9zZGsvdG9vbHM6L2Fu ZHJvaWQvc2RrL3BsYXRmb3JtLXRvb2xzCistCistUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5z dGFsbC1uZGsuc2ggJEFORFJPSURfQVJDSAorLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3Rh bGwtc2RrLnNoICRBTkRST0lEX0FSQ0gKKy1SVU4gbXYgL3Jvb3QvLmFuZHJvaWQgL3RtcAorLVJV TiBjaG1vZCA3NzcgLVIgL3RtcC8uYW5kcm9pZAorLVJVTiBjaG1vZCA3NTUgL2FuZHJvaWQvc2Rr L3Rvb2xzLyogL2FuZHJvaWQvc2RrL2VtdWxhdG9yL3FlbXUvbGludXgteDg2XzY0LyoKKy0KKy1F TlYgUEFUSD0kUEFUSDovcnVzdC9iaW4gXAorLSAgICBDQVJHT19UQVJHRVRfQVJNX0xJTlVYX0FO RFJPSURFQUJJX0xJTktFUj1hcm0tbGludXgtYW5kcm9pZGVhYmktZ2NjIFwKKy0gICAgQ0FSR09f VEFSR0VUX0FSTV9MSU5VWF9BTkRST0lERUFCSV9SVU5ORVI9L3RtcC9ydW50ZXN0IFwKKy0gICAg T0JKRFVNUD1hcm0tbGludXgtYW5kcm9pZGVhYmktb2JqZHVtcCBcCistICAgIEhPTUU9L3RtcAor LQorLUFERCBydW50ZXN0LWFuZHJvaWQucnMgL3RtcC9ydW50ZXN0LnJzCistRU5UUllQT0lOVCBb IFwKKy0gICJiYXNoIiwgXAorLSAgIi1jIiwgXAorLSAgIyBzZXQgU0hFTEwgc28gYW5kcm9pZCBj YW4gZGV0ZWN0IGEgNjRiaXRzIHN5c3RlbSwgc2VlCistICAjIGh0dHA6Ly9zdGFja292ZXJmbG93 LmNvbS9hLzQxNzg5MTQ0CistICAiU0hFTEw9L2Jpbi9kYXNoIC9hbmRyb2lkL3Nkay9lbXVsYXRv ci9lbXVsYXRvciBAYXJtIC1uby13aW5kb3cgJiBcCistICAgcnVzdGMgL3RtcC9ydW50ZXN0LnJz IC1vIC90bXAvcnVudGVzdCAmJiBcCistICAgZXhlYyBcIiRAXCIiLCBcCistICAiLS0iIFwKKy1d CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJt djctdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tl cmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2Vy ZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjA0 CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwt cmVjb21tZW5kcyBcCistICBnY2MgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0gIGxpYmM2LWRl diBcCistICBnY2MtYXJtLWxpbnV4LWdudWVhYmloZiBcCistICBsaWJjNi1kZXYtYXJtaGYtY3Jv c3MgXAorLSAgcWVtdS11c2VyIFwKKy0gIG1ha2UgXAorLSAgZmlsZQorLUVOViBDQVJHT19UQVJH RVRfQVJNVjdfVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfTElOS0VSPWFybS1saW51eC1nbnVlYWJp aGYtZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX0FSTVY3X1VOS05PV05fTElOVVhfR05VRUFCSUhG X1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9hcm0tbGludXgtZ251ZWFiaWhmIiBcCistICAgIE9C SkRVTVA9YXJtLWxpbnV4LWdudWVhYmloZi1vYmpkdW1wCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTU4Ni11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTU4Ni11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k1ODYtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsNyArMCwwIEBACistRlJPTSB1 YnVudHU6MTguMDQKKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0t bm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gIGdjYy1tdWx0aWxpYiBcCistICBsaWJjNi1kZXYg XAorLSAgZmlsZSBcCistICBtYWtlIFwKKy0gIGNhLWNlcnRpZmljYXRlcworZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k2ODYtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L2k2ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNjg2LXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDcgKzAsMCBA QAorLUZST00gdWJ1bnR1OjE4LjA0CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5z dGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICBnY2MtbXVsdGlsaWIgXAorLSAg bGliYzYtZGV2IFwKKy0gIGZpbGUgXAorLSAgbWFrZSBcCistICBjYS1jZXJ0aWZpY2F0ZXMKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzLXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci9taXBzLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvbWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAt MSwxMyArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQKKy0KKy1SVU4gYXB0LWdldCB1cGRhdGUg JiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gICAgICAg IGdjYyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRpZmljYXRlcyBcCistICAgICAgICBnY2Mt bWlwcy1saW51eC1nbnUgbGliYzYtZGV2LW1pcHMtY3Jvc3MgXAorLSAgICAgICAgcWVtdS1zeXN0 ZW0tbWlwcyBcCistICAgICAgICBxZW11LXVzZXIgXAorLSAgICAgICAgbWFrZSBcCistICAgICAg ICBmaWxlCistCistRU5WIENBUkdPX1RBUkdFVF9NSVBTX1VOS05PV05fTElOVVhfR05VX0xJTktF Uj1taXBzLWxpbnV4LWdudS1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfTUlQU19VTktOT1dOX0xJ TlVYX0dOVV9SVU5ORVI9InFlbXUtbWlwcyAtTCAvdXNyL21pcHMtbGludXgtZ251IiBcCistICAg IE9CSkRVTVA9bWlwcy1saW51eC1nbnUtb2JqZHVtcAorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv bWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0L0Rv Y2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQvRG9j a2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTAgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4 LjA0CistCistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWlu c3RhbGwtcmVjb21tZW5kcyBcCistICAgICAgICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1j ZXJ0aWZpY2F0ZXMgXAorLSAgICAgICAgZ2NjLW1pcHM2NC1saW51eC1nbnVhYmk2NCBsaWJjNi1k ZXYtbWlwczY0LWNyb3NzIFwKKy0gICAgICAgIHFlbXUtc3lzdGVtLW1pcHM2NCBxZW11LXVzZXIK Ky0KKy1FTlYgQ0FSR09fVEFSR0VUX01JUFM2NF9VTktOT1dOX0xJTlVYX0dOVUFCSTY0X0xJTktF Uj1taXBzNjQtbGludXgtZ251YWJpNjQtZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX01JUFM2NF9V TktOT1dOX0xJTlVYX0dOVUFCSTY0X1JVTk5FUj0icWVtdS1taXBzNjQgLUwgL3Vzci9taXBzNjQt bGludXgtZ251YWJpNjQiIFwKKy0gICAgT0JKRFVNUD1taXBzNjQtbGludXgtZ251YWJpNjQtb2Jq ZHVtcAorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVh Ymk2NC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv bWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L21pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVs bAorQEAgLTEsMTAgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjA0CistCistUlVOIGFwdC1nZXQg dXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCist ICAgICAgICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgICAg ICAgZ2NjLW1pcHM2NGVsLWxpbnV4LWdudWFiaTY0IGxpYmM2LWRldi1taXBzNjRlbC1jcm9zcyBc CistICAgICAgICBxZW11LXN5c3RlbS1taXBzNjRlbAorLQorLUVOViBDQVJHT19UQVJHRVRfTUlQ UzY0RUxfVU5LTk9XTl9MSU5VWF9HTlVBQkk2NF9MSU5LRVI9bWlwczY0ZWwtbGludXgtZ251YWJp NjQtZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX01JUFM2NEVMX1VOS05PV05fTElOVVhfR05VQUJJ NjRfUlVOTkVSPSJxZW11LW1pcHM2NGVsIC1MIC91c3IvbWlwczY0ZWwtbGludXgtZ251YWJpNjQi IFwKKy0gICAgT0JKRFVNUD1taXBzNjRlbC1saW51eC1nbnVhYmk2NC1vYmpkdW1wCitcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9taXBzZWwtdW5rbm93bi1saW51eC1tdXNsL0RvY2tlcmZpbGUgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzZWwtdW5rbm93bi1saW51 eC1tdXNsL0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwc2VsLXVua25vd24tbGludXgtbXVz bC9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwyNSArMCwwIEBACistRlJPTSB1YnVu dHU6MTguMTAKKy0KKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgXAorLSAgICBhcHQtZ2V0IGluc3Rh bGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgICBjYS1jZXJ0aWZpY2F0ZXMgXAor LSAgICBnY2MgXAorLSAgICBsaWJjNi1kZXYgXAorLSAgICBtYWtlIFwKKy0gICAgcWVtdS11c2Vy IFwKKy0gICAgcWVtdS1zeXN0ZW0tbWlwcyBcCistICAgIGJ6aXAyIFwKKy0gICAgY3VybCBcCist ICAgIGZpbGUKKy0KKy1SVU4gbWtkaXIgL3Rvb2xjaGFpbgorLQorLSMgTm90ZSB0aGF0IHRoaXMg b3JpZ2luYWxseSBjYW1lIGZyb206CistIyBodHRwczovL2Rvd25sb2Fkcy5vcGVud3J0Lm9yZy9z bmFwc2hvdHMvdHJ1bmsvbWFsdGEvZ2VuZXJpYy9PcGVuV3J0LVRvb2xjaGFpbi1tYWx0YS1sZV9n Y2MtNS4zLjBfbXVzbC0xLjEuMTUuTGludXgteDg2XzY0LnRhci5iejIKKy1SVU4gY3VybCAtTCBo dHRwczovL2NpLW1pcnJvcnMucnVzdC1sYW5nLm9yZy9saWJjL09wZW5XcnQtVG9vbGNoYWluLW1h bHRhLWxlX2djYy01LjMuMF9tdXNsLTEuMS4xNS5MaW51eC14ODZfNjQudGFyLmJ6MiB8IFwKKy0g ICAgICB0YXIgeGpmIC0gLUMgL3Rvb2xjaGFpbiAtLXN0cmlwLWNvbXBvbmVudHM9MgorLQorLUVO ViBQQVRIPSRQQVRIOi9ydXN0L2JpbjovdG9vbGNoYWluL2JpbiBcCistICAgIENDX21pcHNlbF91 bmtub3duX2xpbnV4X211c2w9bWlwc2VsLW9wZW53cnQtbGludXgtZ2NjIFwKKy0gICAgQ0FSR09f VEFSR0VUX01JUFNFTF9VTktOT1dOX0xJTlVYX01VU0xfTElOS0VSPW1pcHNlbC1vcGVud3J0LWxp bnV4LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9NSVBTRUxfVU5LTk9XTl9MSU5VWF9NVVNMX1JV Tk5FUj0icWVtdS1taXBzZWwgLUwgL3Rvb2xjaGFpbiIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjLXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBj LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYy11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwxMyArMCwwIEBA CistRlJPTSB1YnVudHU6MjIuMDQKKy0KKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBp bnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gICAgICAgIGdjYyBsaWJjNi1k ZXYgcWVtdS11c2VyIGNhLWNlcnRpZmljYXRlcyBcCistICAgICAgICBnY2MtcG93ZXJwYy1saW51 eC1nbnUgbGliYzYtZGV2LXBvd2VycGMtY3Jvc3MgXAorLSAgICAgICAgcWVtdS1zeXN0ZW0tcHBj IFwKKy0gICAgICAgIG1ha2UgXAorLSAgICAgICAgZmlsZQorLQorLUVOViBDQVJHT19UQVJHRVRf UE9XRVJQQ19VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9cG93ZXJwYy1saW51eC1nbnUtZ2NjIFwK Ky0gICAgQ0FSR09fVEFSR0VUX1BPV0VSUENfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11 LXBwYyAtY3B1IFZnZXIgLUwgL3Vzci9wb3dlcnBjLWxpbnV4LWdudSIgXAorLSAgICBDQz1wb3dl cnBjLWxpbnV4LWdudS1nY2MgXAorLSAgICBPQkpEVU1QPXBvd2VycGMtbGludXgtZ251LW9iamR1 bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9w b3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJm aWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxl CisrKysgL2Rldi9udWxsCitAQCAtMSwxNyArMCwwIEBACistRlJPTSB1YnVudHU6MjIuMDQKKy0K Ky1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1y ZWNvbW1lbmRzIFwKKy0gICAgZ2NjIFwKKy0gICAgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAgbGli YzYtZGV2IFwKKy0gICAgZ2NjLXBvd2VycGM2NC1saW51eC1nbnUgXAorLSAgICBsaWJjNi1kZXYt cHBjNjQtY3Jvc3MgXAorLSAgICBxZW11LXVzZXIgIFwKKy0gICAgcWVtdS1zeXN0ZW0tcHBjIFwK Ky0gICAgbWFrZSBcCistICAgIGZpbGUgCistCistRU5WIENBUkdPX1RBUkdFVF9QT1dFUlBDNjRf VU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXBvd2VycGM2NC1saW51eC1nbnUtZ2NjIFwKKy0gICAg Q0FSR09fVEFSR0VUX1BPV0VSUEM2NF9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtcHBj NjQgLUwgL3Vzci9wb3dlcnBjNjQtbGludXgtZ251IiBcCistICAgIENDPXBvd2VycGM2NC1saW51 eC1nbnUtZ2NjIFwKKy0gICAgT0JKRFVNUD1wb3dlcnBjNjQtbGludXgtZ251LW9iamR1bXAKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBj NjRsZS11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmls ZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxl CisrKysgL2Rldi9udWxsCitAQCAtMSwxMSArMCwwIEBACistRlJPTSB1YnVudHU6MjIuMDQKKy0K Ky1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1y ZWNvbW1lbmRzIFwKKy0gICAgICAgIGdjYyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRpZmlj YXRlcyBcCistICAgICAgICBnY2MtcG93ZXJwYzY0bGUtbGludXgtZ251IGxpYmM2LWRldi1wcGM2 NGVsLWNyb3NzIFwKKy0gICAgICAgIHFlbXUtc3lzdGVtLXBwYyBmaWxlIG1ha2UKKy0KKy1FTlYg Q0FSR09fVEFSR0VUX1BPV0VSUEM2NExFX1VOS05PV05fTElOVVhfR05VX0xJTktFUj1wb3dlcnBj NjRsZS1saW51eC1nbnUtZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX1BPV0VSUEM2NExFX1VOS05P V05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1wcGM2NGxlIC1MIC91c3IvcG93ZXJwYzY0bGUtbGlu dXgtZ251IiBcCistICAgIENDPXBvd2VycGM2NGxlLWxpbnV4LWdudS1nY2MgXAorLSAgICBPQkpE VU1QPXBvd2VycGM2NGxlLWxpbnV4LWdudS1vYmpkdW1wCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvczM5MHgtdW5rbm93bi1saW51eC1nbnUvRG9j a2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3MzOTB4LXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvczM5MHgtdW5rbm93bi1s aW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMjAgKzAsMCBAQAorLUZS T00gdWJ1bnR1OjIyLjA0CistCistUlVOIGFwdC1nZXQgdXBkYXRlICYmIFwKKy0gICAgYXB0LWdl dCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gICAgY2EtY2VydGlmaWNh dGVzIFwKKy0gICAgY3VybCBcCistICAgIGNtYWtlIFwKKy0gICAgZ2NjIFwKKy0gICAgbGliYzYt ZGV2IFwKKy0gICAgZysrLXMzOTB4LWxpbnV4LWdudSBcCistICAgIGxpYmM2LWRldi1zMzkweC1j cm9zcyBcCistICAgIHFlbXUtdXNlciBcCistICAgIG1ha2UgXAorLSAgICBmaWxlCistCistRU5W IENBUkdPX1RBUkdFVF9TMzkwWF9VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9czM5MHgtbGludXgt Z251LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9TMzkwWF9VTktOT1dOX0xJTlVYX0dOVV9SVU5O RVI9InFlbXUtczM5MHggLUwgL3Vzci9zMzkweC1saW51eC1nbnUiIFwKKy0gICAgQ0NfczM5MHhf dW5rbm93bl9saW51eF9nbnU9czM5MHgtbGludXgtZ251LWdjYyBcCistICAgIENYWF9zMzkweF91 bmtub3duX2xpbnV4X2dudT1zMzkweC1saW51eC1nbnUtZysrIFwKKy0gICAgT0JKRFVNUD1zMzkw eC1saW51eC1nbnUtb2JqZHVtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL3NwYXJjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3NwYXJjNjQtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zcGFyYzY0LXVua25vd24tbGludXgtZ251 L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDE4ICswLDAgQEAKKy1GUk9NIGRlYmlh bjpib29rd29ybQorLQorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkg LS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgICAgICAgY3VybCBjYS1jZXJ0aWZpY2F0ZXMg XAorLSAgICAgICAgZ2NjIGxpYmM2LWRldiBcCistICAgICAgICBnY2Mtc3BhcmM2NC1saW51eC1n bnUgbGliYzYtZGV2LXNwYXJjNjQtY3Jvc3MgXAorLSAgICAgICAgcWVtdS1zeXN0ZW0tc3BhcmM2 NCBvcGVuYmlvcy1zcGFyYyBzZWFiaW9zIGlweGUtcWVtdSBcCistICAgICAgICBwN3ppcC1mdWxs IGNwaW8KKy0KKy1DT1BZIGxpbnV4LXNwYXJjNjQuc2ggLworLVJVTiBiYXNoIC9saW51eC1zcGFy YzY0LnNoCistCistQ09QWSB0ZXN0LXJ1bm5lci1saW51eCAvCistCistRU5WIENBUkdPX1RBUkdF VF9TUEFSQzY0X1VOS05PV05fTElOVVhfR05VX0xJTktFUj1zcGFyYzY0LWxpbnV4LWdudS1nY2Mg XAorLSAgICBDQVJHT19UQVJHRVRfU1BBUkM2NF9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9Ii90 ZXN0LXJ1bm5lci1saW51eCBzcGFyYzY0IiBcCistICAgIENDX3NwYXJjNjRfdW5rbm93bl9saW51 eF9nbnU9c3BhcmM2NC1saW51eC1nbnUtZ2NjIFwKKy0gICAgUEFUSD0kUEFUSDovcnVzdC9iaW4K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVt YnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkvRG9ja2Vy ZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJm aWxlCisrKysgL2Rldi9udWxsCitAQCAtMSw0NyArMCwwIEBACistRlJPTSB1YnVudHU6MTYuMDQK Ky0KKy1SVU4gZHBrZyAtLWFkZC1hcmNoaXRlY3R1cmUgaTM4NiAmJiBcCistICAgIGFwdC1nZXQg dXBkYXRlICYmIFwKKy0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1l bmRzIFwKKy0gIGZpbGUgXAorLSAgbWFrZSBcCistICBjdXJsIFwKKy0gIGNhLWNlcnRpZmljYXRl cyBcCistICBweXRob24gXAorLSAgdW56aXAgXAorLSAgZXhwZWN0IFwKKy0gIG9wZW5qZGstOS1q cmUgXAorLSAgbGlic3RkYysrNjppMzg2IFwKKy0gIGxpYnB1bHNlMCBcCistICBnY2MgXAorLSAg bGliYzYtZGV2CistCistV09SS0RJUiAvYW5kcm9pZC8KKy1DT1BZIGFuZHJvaWQqIC9hbmRyb2lk LworLQorLUVOViBBTkRST0lEX0FSQ0g9YXJtCistRU5WIFBBVEg9JFBBVEg6L2FuZHJvaWQvbmRr LSRBTkRST0lEX0FSQ0gvYmluOi9hbmRyb2lkL3Nkay90b29sczovYW5kcm9pZC9zZGsvcGxhdGZv cm0tdG9vbHMKKy0KKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLW5kay5zaCAkQU5E Uk9JRF9BUkNICistUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2ggJEFORFJP SURfQVJDSAorLVJVTiBtdiAvcm9vdC8uYW5kcm9pZCAvdG1wCistUlVOIGNobW9kIDc3NyAtUiAv dG1wLy5hbmRyb2lkCistUlVOIGNobW9kIDc1NSAvYW5kcm9pZC9zZGsvdG9vbHMvKiAvYW5kcm9p ZC9zZGsvZW11bGF0b3IvcWVtdS9saW51eC14ODZfNjQvKgorLQorLUVOViBQQVRIPSRQQVRIOi9y dXN0L2JpbiBcCistICAgIENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9MSU5VWF9BTkRST0lERUFC SV9MSU5LRVI9YXJtLWxpbnV4LWFuZHJvaWRlYWJpLWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9U SFVNQlY3TkVPTl9MSU5VWF9BTkRST0lERUFCSV9SVU5ORVI9L3RtcC9ydW50ZXN0IFwKKy0gICAg T0JKRFVNUD1hcm0tbGludXgtYW5kcm9pZGVhYmktb2JqZHVtcCBcCistICAgIEhPTUU9L3RtcAor LQorLUFERCBydW50ZXN0LWFuZHJvaWQucnMgL3RtcC9ydW50ZXN0LnJzCistRU5UUllQT0lOVCBb IFwKKy0gICJiYXNoIiwgXAorLSAgIi1jIiwgXAorLSAgIyBzZXQgU0hFTEwgc28gYW5kcm9pZCBj YW4gZGV0ZWN0IGEgNjRiaXRzIHN5c3RlbSwgc2VlCistICAjIGh0dHA6Ly9zdGFja292ZXJmbG93 LmNvbS9hLzQxNzg5MTQ0CistICAiU0hFTEw9L2Jpbi9kYXNoIC9hbmRyb2lkL3Nkay9lbXVsYXRv ci9lbXVsYXRvciBAYXJtIC1uby13aW5kb3cgJiBcCistICAgcnVzdGMgL3RtcC9ydW50ZXN0LnJz IC1vIC90bXAvcnVudGVzdCAmJiBcCistICAgZXhlYyBcIiRAXCIiLCBcCistICAiLS0iIFwKKy1d CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1 bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLXVua25vd24tbGludXgtZ251 ZWFiaWhmL0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tdW5rbm93bi1saW51 eC1nbnVlYWJpaGYvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAsMCBAQAor LUZST00gdWJ1bnR1OjE4LjA0CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFs bCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICBnY2MgXAorLSAgY2EtY2VydGlmaWNh dGVzIFwKKy0gIGxpYmM2LWRldiBcCistICBnY2MtYXJtLWxpbnV4LWdudWVhYmloZiBcCistICBs aWJjNi1kZXYtYXJtaGYtY3Jvc3MgXAorLSAgcWVtdS11c2VyIFwKKy0gIG1ha2UgXAorLSAgZmls ZQorLUVOViBDQVJHT19UQVJHRVRfVEhVTUJWN05FT05fVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZf TElOS0VSPWFybS1saW51eC1nbnVlYWJpaGYtZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX1RIVU1C VjdORU9OX1VOS05PV05fTElOVVhfR05VRUFCSUhGX1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9h cm0tbGludXgtZ251ZWFiaWhmIiBcCistICAgIE9CSkRVTVA9YXJtLWxpbnV4LWdudWVhYmloZi1v YmpkdW1wCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvd2FzbTMyLXVua25vd24tdW5rbm93bi9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvd2FzbTMyLXVua25vd24tdW5rbm93bi9Eb2NrZXJmaWxlCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3dhc20zMi11bmtub3duLXVua25vd24vRG9ja2VyZmlsZQorKysrIC9kZXYv bnVsbAorQEAgLTEsMzkgKzAsMCBAQAorLUZST00gdWJ1bnR1OjIyLjA0CistCistUlVOIGFwdC1n ZXQgdXBkYXRlIC15ICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5k cyBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgY2xhbmcgXAorLSAgY21ha2UgXAorLSAgY3Vy bCBcCistICBnaXQgXAorLSAgbGliYzYtZGV2IFwKKy0gIG1ha2UgXAorLSAgbmluamEtYnVpbGQg XAorLSAgcHl0aG9uLWlzLXB5dGhvbjMgXAorLSAgeHotdXRpbHMKKy0KKy0jIEluc3RhbGwgYHdh c20yd2F0YAorLVJVTiBnaXQgY2xvbmUgLS1yZWN1cnNpdmUgaHR0cHM6Ly9naXRodWIuY29tL1dl YkFzc2VtYmx5L3dhYnQKKy1SVU4gbWFrZSAtQyB3YWJ0IC1qJChucHJvYykKKy1FTlYgUEFUSD0k UEFUSDovd2FidC9iaW4KKy0KKy0jIEluc3RhbGwgYHdhc20tYmluZGdlbi10ZXN0LXJ1bm5lcmAK Ky1SVU4gY3VybCAtTCBodHRwczovL2dpdGh1Yi5jb20vcnVzdHdhc20vd2FzbS1iaW5kZ2VuL3Jl bGVhc2VzL2Rvd25sb2FkLzAuMi44Ny93YXNtLWJpbmRnZW4tMC4yLjg3LXg4Nl82NC11bmtub3du LWxpbnV4LW11c2wudGFyLmd6IFwKKy0gIHwgdGFyIHh6ZiAtCistIyBLZWVwIGluIHN5bmMgd2l0 aCB0aGUgdmVyc2lvbiBvbiBDYXJnby50b21sLgorLUVOViBQQVRIPSRQQVRIOi93YXNtLWJpbmRn ZW4tMC4yLjg3LXg4Nl82NC11bmtub3duLWxpbnV4LW11c2wKKy1FTlYgQ0FSR09fVEFSR0VUX1dB U00zMl9VTktOT1dOX1VOS05PV05fUlVOTkVSPXdhc20tYmluZGdlbi10ZXN0LXJ1bm5lcgorLQor LSMgSW5zdGFsbCBgbm9kZWAKKy1SVU4gY3VybCBodHRwczovL25vZGVqcy5vcmcvZGlzdC92MTQu MTYuMC9ub2RlLXYxNC4xNi4wLWxpbnV4LXg2NC50YXIueHogfCB0YXIgeEpmIC0KKy1FTlYgUEFU SD0kUEFUSDovbm9kZS12MTQuMTYuMC1saW51eC14NjQvYmluCistCistIyBXZSB1c2UgYSBzaGlt IGxpbmtlciB0aGF0IHJlbW92ZXMgYC0tc3RyaXAtZGVidWdgIHdoZW4gcGFzc2VkIHRvIExMRC4g V2hpbGUKKy0jIHRoaXMgdHlwaWNhbGx5IHJlc3VsdHMgaW4gaW52YWxpZCBkZWJ1ZyBpbmZvcm1h dGlvbiBpbiByZWxlYXNlIG1vZGUgaXQgZG9lc24ndAorLSMgcmVzdWx0IGluIGFuIGludmFsaWQg bmFtZXMgc2VjdGlvbiB3aGljaCBpcyB3aGF0IHdlJ3JlIGludGVyZXN0ZWQgaW4uCistQ09QWSBs bGQtc2hpbS5ycyAvCistRU5WIENBUkdPX1RBUkdFVF9XQVNNMzJfVU5LTk9XTl9VTktOT1dOX0xJ TktFUj0vdG1wL2xsZC1zaGltCistCistIyBSdXN0YyBpc24ndCBhdmFpbGFibGUgdW50aWwgdGhp cyBjb250YWluZXIgc3RhcnRzLCBzbyBkZWZlciBjb21waWxhdGlvbiBvZiB0aGUKKy0jIHNoaW0u CistRU5UUllQT0lOVCAvcnVzdC9iaW4vcnVzdGMgL2xsZC1zaGltLnJzIC1vIC90bXAvbGxkLXNo aW0gJiYgZXhlYyBiYXNoICIkQCIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LWxpbnV4LWFuZHJvaWQvRG9j a2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlCisr KysgL2Rldi9udWxsCitAQCAtMSwzMSArMCwwIEBACistRlJPTSB1YnVudHU6MjAuMDQKKy0KKy1S VU4gYXB0LWdldCB1cGRhdGUgJiYgXAorLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0 YWxsLXJlY29tbWVuZHMgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0gIGN1cmwgXAorLSAgZ2Nj IFwKKy0gIGxpYmMtZGV2IFwKKy0gIHB5dGhvbiBcCistICB1bnppcCBcCistICBmaWxlIFwKKy0g IG1ha2UKKy0KKy1XT1JLRElSIC9hbmRyb2lkLworLUVOViBBTkRST0lEX0FSQ0g9eDg2XzY0Cist Q09QWSBhbmRyb2lkLWluc3RhbGwtbmRrLnNoIC9hbmRyb2lkLworLVJVTiBzaCAvYW5kcm9pZC9h bmRyb2lkLWluc3RhbGwtbmRrLnNoCistCistRU5WIFNUREFSQ0hfQVNTRVJUX0lOU1RSX0xJTUlU PTMwCistCistIyBXZSBkbyBub3QgcnVuIHg4Nl82NC1saW51eC1hbmRyb2lkIHRlc3RzIG9uIGFu IGFuZHJvaWQgZW11bGF0b3IuCistIyBTZWUgY2kvYW5kcm9pZC1zeXNpbWFnZS5zaCBmb3IgaW5m b3JtYXRpb25zIGFib3V0IGhvdyB0ZXN0cyBhcmUgcnVuLgorLUNPUFkgYW5kcm9pZC1zeXNpbWFn ZS5zaCAvYW5kcm9pZC8KKy1SVU4gYmFzaCAvYW5kcm9pZC9hbmRyb2lkLXN5c2ltYWdlLnNoIHg4 Nl82NCB4ODZfNjQtMjRfcjA3LnppcAorLQorLUVOViBQQVRIPSRQQVRIOi9ydXN0L2JpbjovYW5k cm9pZC9uZGsvdG9vbGNoYWlucy9sbHZtL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9iaW4gXAorLSAg ICBDQVJHT19UQVJHRVRfWDg2XzY0X0xJTlVYX0FORFJPSURfTElOS0VSPXg4Nl82NC1saW51eC1h bmRyb2lkMjEtY2xhbmcgXAorLSAgICBDQ194ODZfNjRfbGludXhfYW5kcm9pZD14ODZfNjQtbGlu dXgtYW5kcm9pZDIxLWNsYW5nIFwKKy0gICAgQ1hYX3g4Nl82NF9saW51eF9hbmRyb2lkPXg4Nl82 NC1saW51eC1hbmRyb2lkMjEtY2xhbmcrKyBcCistICAgIE9CSkRVTVA9bGx2bS1vYmpkdW1wIFwK Ky0gICAgSE9NRT0vdG1wCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251LWVtdWxhdGVkL0RvY2tlcmZpbGUg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1s aW51eC1nbnUtZW11bGF0ZWQvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93 bi1saW51eC1nbnUtZW11bGF0ZWQvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTYg KzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjA0CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1n ZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICBnY2MgXAorLSAgbGli YzYtZGV2IFwKKy0gIGZpbGUgXAorLSAgbWFrZSBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAg d2dldCBcCistICBiemlwMiBcCistICBjbWFrZSBcCistICBsaWJjbGFuZy1kZXYgXAorLSAgY2xh bmcKKy0KKy1SVU4gd2dldCBodHRwczovL2dpdGh1Yi5jb20vZ256bGJnL2ludGVsX3NkZS9yYXcv bWFzdGVyL3NkZS1leHRlcm5hbC04LjE2LjAtMjAxOC0wMS0zMC1saW4udGFyLmJ6MgorLVJVTiB0 YXIgLXhqZiBzZGUtZXh0ZXJuYWwtOC4xNi4wLTIwMTgtMDEtMzAtbGluLnRhci5iejIKKy1FTlYg Q0FSR09fVEFSR0VUX1g4Nl82NF9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9Ii9zZGUtZXh0ZXJu YWwtOC4xNi4wLTIwMTgtMDEtMzAtbGluL3NkZTY0IC0tIgorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS9E b2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0 LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25v d24tbGludXgtZ251L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwICswLDAgQEAK Ky1GUk9NIHVidW50dToxOC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3Rh bGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZ2NjIFwKKy0gIGxpYmM2LWRldiBc CistICBmaWxlIFwKKy0gIG1ha2UgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0gIGNtYWtlIFwK Ky0gIGxpYmNsYW5nLWRldiBcCistICBjbGFuZworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG94LnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb3guc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb3guc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDI3ICswLDAgQEAK Ky0jIS9iaW4vc2gKKy0KKy1zZXQgLWV4CistCistcm0gLXJmIHRhcmdldC9kb2MKKy1ta2RpciAt cCB0YXJnZXQvZG9jCistCistIyBCdWlsZCBBUEkgZG9jdW1lbnRhdGlvbgorLWNhcmdvIGRvYyAt LWZlYXR1cmVzPWludG9fYml0cworLQorLSMgQnVpbGQgUGVyZm9ybWFuY2UgR3VpZGUKKy0jIEZJ WE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvbWRCb29rL2lzc3Vlcy83 ODAKKy0jIG1kYm9vayBidWlsZCBwZXJmLWd1aWRlIC1kIHRhcmdldC9kb2MvcGVyZi1ndWlkZQor LWNkIHBlcmYtZ3VpZGUKKy1tZGJvb2sgYnVpbGQKKy1jZCAtCistY3AgLXIgcGVyZi1ndWlkZS9i b29rIHRhcmdldC9kb2MvcGVyZi1ndWlkZQorLQorLSMgSWYgd2UncmUgb24gdHJhdmlzLCBub3Qg YSBQUiwgYW5kIG9uIHRoZSByaWdodCBicmFuY2gsIHB1Ymxpc2ghCistaWYgWyAiJFRSQVZJU19Q VUxMX1JFUVVFU1QiID0gImZhbHNlIiBdICYmIFsgIiRUUkFWSVNfQlJBTkNIIiA9ICJtYXN0ZXIi IF07IHRoZW4KKy0gIHB5dGhvbjMgLXZWCistICBwaXAgLXZWCistICBweXRob24zLjkgLXZWCist ICBwaXAgaW5zdGFsbCBnaHBfaW1wb3J0IC0tdXNlcgorLSAgZ2hwLWltcG9ydCAtbiB0YXJnZXQv ZG9jCistICBnaXQgcHVzaCAtcWYgaHR0cHM6Ly8ke0dIX1BBR0VTfUBnaXRodWIuY29tLyR7VFJB VklTX1JFUE9fU0xVR30uZ2l0IGdoLXBhZ2VzCistZmkKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXMzOTB4LnNoIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9saW51eC1zMzkweC5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXMzOTB4LnNoCisrKysg L2Rldi9udWxsCitAQCAtMSwxOCArMCwwIEBACistc2V0IC1leAorLQorLW1rZGlyIC1tIDc3NyAv cWVtdQorLWNkIC9xZW11CistCistY3VybCAtTE8gaHR0cHM6Ly9naXRodWIuY29tL3FlbXUvcWVt dS9yYXcvbWFzdGVyL3BjLWJpb3MvczM5MC1jY3cuaW1nCistY3VybCAtTE8gaHR0cDovL2Z0cC5k ZWJpYW4ub3JnL2RlYmlhbi9kaXN0cy90ZXN0aW5nL21haW4vaW5zdGFsbGVyLXMzOTB4LzIwMTcw ODI4L2ltYWdlcy9nZW5lcmljL2tlcm5lbC5kZWJpYW4KKy1jdXJsIC1MTyBodHRwOi8vZnRwLmRl Ymlhbi5vcmcvZGViaWFuL2Rpc3RzL3Rlc3RpbmcvbWFpbi9pbnN0YWxsZXItczM5MHgvMjAxNzA4 MjgvaW1hZ2VzL2dlbmVyaWMvaW5pdHJkLmRlYmlhbgorLQorLW12IGtlcm5lbC5kZWJpYW4ga2Vy bmVsCistbXYgaW5pdHJkLmRlYmlhbiBpbml0cmQuZ3oKKy0KKy1ta2RpciBpbml0CistY2QgaW5p dAorLWd1bnppcCAtYyAuLi9pbml0cmQuZ3ogfCBjcGlvIC1pZAorLXJtIC4uL2luaXRyZC5negor LWNwIC91c3IvczM5MHgtbGludXgtZ251L2xpYi9saWJnY2Nfcy5zby4xIHVzci9saWIvCistY2ht b2QgYSt3IC4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xp bnV4LXNwYXJjNjQuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXNw YXJjNjQuc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9saW51eC1zcGFyYzY0LnNoCisrKysgL2Rldi9udWxsCitAQCAtMSwx NyArMCwwIEBACistc2V0IC1leAorLQorLW1rZGlyIC1tIDc3NyAvcWVtdQorLWNkIC9xZW11Cist CistY3VybCAtTE8gaHR0cHM6Ly9jZGltYWdlLmRlYmlhbi5vcmcvY2RpbWFnZS9wb3J0cy85LjAv c3BhcmM2NC9pc28tY2QvZGViaWFuLTkuMC1zcGFyYzY0LU5FVElOU1QtMS5pc28KKy03eiBlIGRl Ymlhbi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvIGJvb3QvaW5pdHJkLmd6CistN3ogZSBkZWJp YW4tOS4wLXNwYXJjNjQtTkVUSU5TVC0xLmlzbyBib290L3NwYXJjNjQKKy1tdiBzcGFyYzY0IGtl cm5lbAorLXJtIGRlYmlhbi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvCistCistbWtkaXIgaW5p dAorLWNkIGluaXQKKy1ndW56aXAgLWMgLi4vaW5pdHJkLmd6IHwgY3BpbyAtaWQKKy1ybSAuLi9p bml0cmQuZ3oKKy1jcCAvdXNyL3NwYXJjNjQtbGludXgtZ251L2xpYi9saWJnY2Nfcy5zby4xIHVz ci9saWIvCistY2htb2QgYSt3IC4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2xsZC1zaGltLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9s bGQtc2hpbS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2xsZC1zaGltLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMSAr MCwwIEBACistdXNlIHN0ZDo6b3M6OnVuaXg6OnByZWx1ZGU6Oio7CistdXNlIHN0ZDo6cHJvY2Vz czo6Q29tbWFuZDsKKy11c2Ugc3RkOjplbnY7CistCistZm4gbWFpbigpIHsKKy0gICAgbGV0IGFy Z3MgPSBlbnY6OmFyZ3MoKQorLSAgICAgICAgLnNraXAoMSkKKy0gICAgICAgIC5maWx0ZXIofHN8 IHMgIT0gIi0tc3RyaXAtZGVidWciKQorLSAgICAgICAgLmNvbGxlY3Q6OjxWZWM8Xz4+KCk7Cist ICAgIHBhbmljISgiZmFpbGVkIHRvIGV4ZWM6IHt9IiwgQ29tbWFuZDo6bmV3KCJydXN0LWxsZCIp LmFyZ3MoJmFyZ3MpLmV4ZWMoKSk7CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvbWF4X2xpbmVfd2lkdGguc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL21heF9saW5lX3dpZHRoLnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbWF4X2xpbmVfd2lkdGguc2gKKysr KyAvZGV2L251bGwKK0BAIC0xLDE3ICswLDAgQEAKKy0jIS91c3IvYmluL2VudiBzaAorLQorLXNl dCAteAorLQorLWV4cG9ydCBzdWNjZXNzPXRydWUKKy0KKy1maW5kIC4gLWluYW1lICcqLnJzJyB8 IHdoaWxlIHJlYWQgLXIgZmlsZTsgZG8KKy0gICAgcmVzdWx0PSQoZ3JlcCAnLlx7NzlcfScgIiR7 ZmlsZX0iIHwgZ3JlcCAtLWludmVydCAnaHR0cCcpCistICAgIGlmIFsgIiR7cmVzdWx0fSIgPSAi IiBdCistICAgIHRoZW4KKy0gICAgICAgIDoKKy0gICAgZWxzZQorLSAgICAgICAgZWNobyAiZmls ZSBcIiR7ZmlsZX1cIjogJHJlc3VsdCIKKy0gICAgICAgIGV4aXQgMQorLSAgICBmaQorLWRvbmUK Ky0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi1kb2Nr ZXIuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi1kb2NrZXIuc2gKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9ydW4tZG9ja2VyLnNoCisrKysgL2Rldi9udWxsCitAQCAtMSwzOCArMCwwIEBACistIyBT bWFsbCBzY3JpcHQgdG8gcnVuIHRlc3RzIGZvciBhIHRhcmdldCAob3IgYWxsIHRhcmdldHMpIGlu c2lkZSBhbGwgdGhlCistIyByZXNwZWN0aXZlIGRvY2tlciBpbWFnZXMuCistCistc2V0IC1leAor LQorLXJ1bigpIHsKKy0gICAgZWNobyAiQnVpbGRpbmcgZG9ja2VyIGNvbnRhaW5lciBmb3IgVEFS R0VUPSR7VEFSR0VUfSBSVVNURkxBR1M9JHtSVVNURkxBR1N9IgorLSAgICBkb2NrZXIgYnVpbGQg LXQgcGFja2VkX3NpbWQgLWYgY2kvZG9ja2VyLyR7VEFSR0VUfS9Eb2NrZXJmaWxlIGNpLworLSAg ICBta2RpciAtcCB0YXJnZXQKKy0gICAgdGFyZ2V0PSQoZWNobyAiJHtUQVJHRVR9IiB8IHNlZCAn cy8tZW11bGF0ZWQvLycpCistICAgIGVjaG8gIlJ1bm5pbmcgZG9ja2VyIgorLSAgICBkb2NrZXIg cnVuIFwKKy0gICAgICAtLXVzZXIgYGlkIC11YDpgaWQgLWdgIFwKKy0gICAgICAtLXJtIFwKKy0g ICAgICAtLWluaXQgXAorLSAgICAgIC0tdm9sdW1lICRIT01FLy5jYXJnbzovY2FyZ28gXAorLSAg ICAgIC0tZW52IENBUkdPX0hPTUU9L2NhcmdvIFwKKy0gICAgICAtLXZvbHVtZSBgcnVzdGMgLS1w cmludCBzeXNyb290YDovcnVzdDpybyBcCistICAgICAgLS1lbnYgVEFSR0VUPSR0YXJnZXQgXAor LSAgICAgIC0tZW52IE5PUlVOIFwKKy0gICAgICAtLWVudiBOT1ZFUklGWSBcCistICAgICAgLS1l bnYgUlVTVEZMQUdTIFwKKy0gICAgICAtLXZvbHVtZSBgcHdkYDovY2hlY2tvdXQ6cm8gXAorLSAg ICAgIC0tdm9sdW1lIGBwd2RgL3RhcmdldDovY2hlY2tvdXQvdGFyZ2V0IFwKKy0gICAgICAtLXdv cmtkaXIgL2NoZWNrb3V0IFwKKy0gICAgICAtLXByaXZpbGVnZWQgXAorLSAgICAgIHBhY2tlZF9z aW1kIFwKKy0gICAgICBiYXNoIFwKKy0gICAgICAtYyAnUEFUSD0kUEFUSDovcnVzdC9iaW4gZXhl YyBjaS9ydW4uc2gnCistfQorLQorLWlmIFsgLXogIiR7VEFSR0VUfSIgXTsgdGhlbgorLSAgZm9y IGQgaW4gYGxzIGNpL2RvY2tlci9gOyBkbworLSAgICBydW4gJGQKKy0gIGRvbmUKKy1lbHNlCist ICBydW4gJHtUQVJHRVR9CistZmkKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL3J1bi5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLnNo CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvcnVuLnNoCisrKysgL2Rldi9udWxsCitAQCAtMSw5OSArMCwwIEBACistIyEvdXNy L2Jpbi9lbnYgYmFzaAorLQorLXNldCAtZXgKKy0KKy06ICR7VEFSR0VUPyJUaGUgVEFSR0VUIGVu dmlyb25tZW50IHZhcmlhYmxlIG11c3QgYmUgc2V0LiJ9CistCistIyBUZXN0cyBhcmUgYWxsIHN1 cGVyIGZhc3QgYW55d2F5LCBhbmQgdGhleSBmYXVsdCBvZnRlbiBlbm91Z2ggb24gdHJhdmlzIHRo YXQKKy0jIGhhdmluZyBvbmx5IG9uZSB0aHJlYWQgaW5jcmVhc2VzIGRlYnVnZ2FiaWxpdHkgdG8g YmUgd29ydGggaXQuCistI2V4cG9ydCBSVVNUX1RFU1RfVEhSRUFEUz0xCistI2V4cG9ydCBSVVNU X0JBQ0tUUkFDRT1mdWxsCistI2V4cG9ydCBSVVNUX1RFU1RfTk9DQVBUVVJFPTEKKy0KKy0jIFNv bWUgYXBwdmV5b3IgYnVpbGRzIHJ1biBvdXQtb2YtbWVtb3J5OyB0aGlzIGF0dGVtcHRzIHRvIG1p dGlnYXRlIHRoYXQ6CistIyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFj a2VkX3NpbWQvaXNzdWVzLzM5CistIyBleHBvcnQgUlVTVEZMQUdTPSIke1JVU1RGTEFHU30gLUMg Y29kZWdlbi11bml0cz0xIgorLSMgZXhwb3J0IENBUkdPX0JVSUxEX0pPQlM9MQorLQorLWV4cG9y dCBDQVJHT19TVUJDTUQ9dGVzdAorLWlmIFtbICIke05PUlVOfSIgPT0gIjEiIF1dOyB0aGVuCist ICAgIGV4cG9ydCBDQVJHT19TVUJDTUQ9YnVpbGQKKy1maQorLQorLWlmIFtbICR7VEFSR0VUfSA9 PSAieDg2XzY0LWFwcGxlLWlvcyIgXV0gfHwgW1sgJHtUQVJHRVR9ID09ICJpMzg2LWFwcGxlLWlv cyIgXV07IHRoZW4KKy0gICAgZXhwb3J0IFJVU1RGTEFHUz0iJHtSVVNURkxBR1N9IC1DbGluay1h cmc9LW1pb3Mtc2ltdWxhdG9yLXZlcnNpb24tbWluPTcuMCIKKy0gICAgcnVzdGMgLi9jaS9kZXBs b3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzIC1vICRIT01FL3J1bnRlc3QKKy0gICAgZXhw b3J0IENBUkdPX1RBUkdFVF9YODZfNjRfQVBQTEVfSU9TX1JVTk5FUj0kSE9NRS9ydW50ZXN0Cist ICAgIGV4cG9ydCBDQVJHT19UQVJHRVRfSTM4Nl9BUFBMRV9JT1NfUlVOTkVSPSRIT01FL3J1bnRl c3QKKy1maQorLQorLSMgVGhlIHNvdXJjZSBkaXJlY3RvcnkgaXMgcmVhZC1vbmx5LiBOZWVkIHRv IGNvcHkgaW50ZXJuYWwgY3JhdGVzIHRvIHRoZSB0YXJnZXQKKy0jIGRpcmVjdG9yeSBmb3IgdGhl aXIgQ2FyZ28ubG9jayB0byBiZSBwcm9wZXJseSB3cml0dGVuLgorLW1rZGlyIHRhcmdldCB8fCB0 cnVlCistCistcnVzdGMgLS12ZXJzaW9uCistY2FyZ28gLS12ZXJzaW9uCistZWNobyAiVEFSR0VU PSR7VEFSR0VUfSIKKy1lY2hvICJIT1NUPSR7SE9TVH0iCistZWNobyAiUlVTVEZMQUdTPSR7UlVT VEZMQUdTfSIKKy1lY2hvICJOT1JVTj0ke05PUlVOfSIKKy1lY2hvICJOT1ZFUklGWT0ke05PVkVS SUZZfSIKKy1lY2hvICJDQVJHT19TVUJDTUQ9JHtDQVJHT19TVUJDTUR9IgorLWVjaG8gIkNBUkdP X0JVSUxEX0pPQlM9JHtDQVJHT19CVUlMRF9KT0JTfSIKKy1lY2hvICJDQVJHT19JTkNSRU1FTlRB TD0ke0NBUkdPX0lOQ1JFTUVOVEFMfSIKKy1lY2hvICJSVVNUX1RFU1RfVEhSRUFEUz0ke1JVU1Rf VEVTVF9USFJFQURTfSIKKy1lY2hvICJSVVNUX0JBQ0tUUkFDRT0ke1JVU1RfQkFDS1RSQUNFfSIK Ky1lY2hvICJSVVNUX1RFU1RfTk9DQVBUVVJFPSR7UlVTVF9URVNUX05PQ0FQVFVSRX0iCistCist Y2FyZ29fdGVzdCgpIHsKKy0gICAgY21kPSJjYXJnbyAke0NBUkdPX1NVQkNNRH0gLS12ZXJib3Nl IC0tdGFyZ2V0PSR7VEFSR0VUfSAke0B9IgorLSAgICBpZiBbICIke05PUlVOfSIgIT0gIjEiIF0K Ky0gICAgdGhlbgorLSAgICAgICAgaWYgWyAiJFRBUkdFVCIgIT0gIndhc20zMi11bmtub3duLXVu a25vd24iIF0KKy0gICAgICAgIHRoZW4KKy0gICAgICAgICAgICBjbWQ9IiRjbWQgLS0gLS1xdWll dCIKKy0gICAgICAgIGZpCistICAgIGZpCistICAgIG1rZGlyIHRhcmdldCB8fCB0cnVlCistICAg ICR7Y21kfSAyPiYxIHwgdGVlID4gdGFyZ2V0L291dHB1dAorLSAgICBpZiBbWyAke1BJUEVTVEFU VVNbMF19ICE9IDAgXV07IHRoZW4KKy0gICAgICAgIGNhdCB0YXJnZXQvb3V0cHV0CistICAgICAg ICByZXR1cm4gMQorLSAgICBmaQorLX0KKy0KKy1jYXJnb190ZXN0X2ltcGwoKSB7CistICAgIE9S SUdJTkFMX1JVU1RGTEFHUz0ke1JVU1RGTEFHU30KKy0gICAgUlVTVEZMQUdTPSIke09SSUdJTkFM X1JVU1RGTEFHU30gLS1jZmcgdGVzdF92MTYgIC0tY2ZnIHRlc3RfdjMyIC0tY2ZnIHRlc3RfdjY0 IiBjYXJnb190ZXN0ICR7QH0KKy0gICAgUlVTVEZMQUdTPSIke09SSUdJTkFMX1JVU1RGTEFHU30g LS1jZmcgdGVzdF92MTI4IC0tY2ZnIHRlc3RfdjI1NiIgY2FyZ29fdGVzdCAke0B9CistICAgIFJV U1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxBR1N9IC0tY2ZnIHRlc3RfdjUxMiIgY2FyZ29fdGVz dCAke0B9CistICAgIFJVU1RGTEFHUz0ke09SSUdJTkFMX1JVU1RGTEFHU30KKy19CistCistIyBE ZWJ1ZyBydW46CistaWYgW1sgIiR7VEFSR0VUfSIgIT0gIndhc20zMi11bmtub3duLXVua25vd24i IF1dOyB0aGVuCistICAgIyBSdW4gd2FzbTMyLXVua25vd24tdW5rbm93biBpbiByZWxlYXNlIG1v ZGUgb25seQorLSAgIGNhcmdvX3Rlc3RfaW1wbAorLWZpCistCistaWYgW1sgIiR7VEFSR0VUfSIg PT0gIng4Nl82NC11bmtub3duLWxpbnV4LWdudSIgXV0gfHwgW1sgIiR7VEFSR0VUfSIgPT0gIng4 Nl82NC1wYy13aW5kb3dzLW1zdmMiIF1dOyB0aGVuCistICAgICMgdXNlIHNsZWVmIG9uIGxpbnV4 IGFuZCB3aW5kb3dzIHg4Nl82NCBidWlsZHMKKy0gICAgIyBGSVhNRTogVXNlIGBjb3JlX2FyY2gs c2xlZWYtc3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KKy0gICAgY2FyZ29fdGVz dF9pbXBsIC0tcmVsZWFzZSAtLWZlYXR1cmVzPWludG9fYml0cworLWVsc2UKKy0gICAgIyBGSVhN RTogVXNlIGBjb3JlX2FyY2hgIGZlYXR1cmUgb25jZSBpdCB3b3JrcyBhZ2FpbgorLSAgICBjYXJn b190ZXN0X2ltcGwgLS1yZWxlYXNlIC0tZmVhdHVyZXM9aW50b19iaXRzCistZmkKKy0KKy0jIFZl cmlmeSBjb2RlIGdlbmVyYXRpb24KKy1pZiBbWyAiJHtOT1ZFUklGWX0iICE9ICIxIiBdXTsgdGhl bgorLSAgICBjcCAtciB2ZXJpZnkvdmVyaWZ5IHRhcmdldC92ZXJpZnkKKy0gICAgZXhwb3J0IFNU RFNJTURfQVNTRVJUX0lOU1RSX0xJTUlUPTMwCistICAgIGlmIFtbICIke1RBUkdFVH0iID09ICJp NTg2LXVua25vd24tbGludXgtZ251IiBdXTsgdGhlbgorLSAgICAgICAgZXhwb3J0IFNURFNJTURf QVNTRVJUX0lOU1RSX0xJTUlUPTUwCistICAgIGZpCistICAgIGNhcmdvX3Rlc3QgLS1yZWxlYXNl IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvdmVyaWZ5L0NhcmdvLnRvbWwKKy1maQorLQorLSMgRklY TUU6IEZpZ3VyZSBvdXQgd2hpY2ggZXhhbXBsZXMgdGFrZSB0b28gbG9uZyB0byBydW4gYW5kIGln bm9yZSBvciBhZGp1c3QgdGhvc2UKKy0jLiBjaS9ydW5fZXhhbXBsZXMuc2gKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bl9leGFtcGxlcy5zaCBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuX2V4YW1wbGVzLnNoCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuX2V4 YW1wbGVzLnNoCisrKysgL2Rldi9udWxsCitAQCAtMSw1MSArMCwwIEBACistIyBSdW5zIGFsbCBl eGFtcGxlcy4KKy0KKy0jIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzU1CistIyBBbGwgZXhhbXBsZXMgZmFpbCB0byBidWlsZCBm b3IgYGFybXY3LWFwcGxlLWlvc2AuCistaWYgW1sgJHtUQVJHRVR9ID09ICJhcm12Ny1hcHBsZS1p b3MiIF1dOyB0aGVuCistICAgIGV4aXQgMAorLWZpCistCistIyBGSVhNRTogdHJhdmlzIGV4Y2Vl ZHMgNTAgbWludXRlcyBvbiB0aGVzZSB0YXJnZXRzCistIyBTa2lwcGluZyB0aGUgZXhhbXBsZXMg aXMgYW4gYXR0ZW1wdCBhdCBwcmV2ZW50aW5nIHRyYXZpcyBmcm9tIHRpbWluZy1vdXQKKy1pZiBb WyAke1RBUkdFVH0gPT0gImFybS1saW51eC1hbmRyb2lkYWJpIiBdXSB8fCBbWyAke1RBUkdFVH0g PT0gImFhcmNoNjQtbGludXgtYW5kcm9pZGFiaSIgXV0gXAorLSAgICB8fCBbWyAke1RBUkdFVH0g PT0gInNwYXJjNjQtdW5rbm93bi1saW51eC1nbnUiIF1dOyB0aGVuCistICAgIGV4aXQgMAorLWZp CistCistaWYgW1sgJHtUQVJHRVR9ID09ICJ3YXNtMzItdW5rbm93bi11bmtub3duIiBdXTsgdGhl bgorLSAgICBleGl0IDAKKy1maQorLQorLWNwIC1yIGV4YW1wbGVzL2FvYmVuY2ggdGFyZ2V0L2Fv YmVuY2gKKy1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvYW9iZW5jaC9DYXJnby50 b21sIC0tcmVsZWFzZSAtLW5vLWRlZmF1bHQtZmVhdHVyZXMKKy1jYXJnb190ZXN0IC0tbWFuaWZl c3QtcGF0aD10YXJnZXQvYW9iZW5jaC9DYXJnby50b21sIC0tcmVsZWFzZSAtLWZlYXR1cmVzPTI1 NmJpdAorLQorLWNwIC1yIGV4YW1wbGVzL2RvdF9wcm9kdWN0IHRhcmdldC9kb3RfcHJvZHVjdAor LWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9kb3RfcHJvZHVjdC9DYXJnby50b21s IC0tcmVsZWFzZQorLQorLWNwIC1yIGV4YW1wbGVzL2Zhbm5rdWNoX3JlZHV4IHRhcmdldC9mYW5u a3VjaF9yZWR1eAorLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9mYW5ua3VjaF9y ZWR1eC9DYXJnby50b21sIC0tcmVsZWFzZQorLQorLSMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNTYKKy1pZiBbWyAke1RBUkdF VH0gIT0gImk1ODYtdW5rbm93bi1saW51eC1nbnUiIF1dOyB0aGVuCistICAgIGNwIC1yIGV4YW1w bGVzL21hbmRlbGJyb3QgdGFyZ2V0L21hbmRlbGJyb3QKKy0gICAgY2FyZ29fdGVzdCAtLW1hbmlm ZXN0LXBhdGg9dGFyZ2V0L21hbmRlbGJyb3QvQ2FyZ28udG9tbCAtLXJlbGVhc2UKKy1maQorLQor LWNwIC1yIGV4YW1wbGVzL21hdHJpeF9pbnZlcnNlIHRhcmdldC9tYXRyaXhfaW52ZXJzZQorLWNh cmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9tYXRyaXhfaW52ZXJzZS9DYXJnby50b21s IC0tcmVsZWFzZQorLQorLWNwIC1yIGV4YW1wbGVzL25ib2R5IHRhcmdldC9uYm9keQorLWNhcmdv X3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9uYm9keS9DYXJnby50b21sIC0tcmVsZWFzZQor LQorLWNwIC1yIGV4YW1wbGVzL3NwZWN0cmFsX25vcm0gdGFyZ2V0L3NwZWN0cmFsX25vcm0KKy1j YXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvc3BlY3RyYWxfbm9ybS9DYXJnby50b21s IC0tcmVsZWFzZQorLQorLWlmIFtbICR7VEFSR0VUfSAhPSAiaTU4Ni11bmtub3duLWxpbnV4LWdu dSIgXV07IHRoZW4KKy0gICAgY3AgLXIgZXhhbXBsZXMvc3RlbmNpbCB0YXJnZXQvc3RlbmNpbAor LSAgICBjYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvc3RlbmNpbC9DYXJnby50b21s IC0tcmVsZWFzZQorLWZpCistCistY3AgLXIgZXhhbXBsZXMvdHJpYW5nbGVfeGZvcm0gdGFyZ2V0 L3RyaWFuZ2xlX3hmb3JtCistY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L3RyaWFu Z2xlX3hmb3JtL0NhcmdvLnRvbWwgLS1yZWxlYXNlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFuZHJvaWQucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL3J1bnRlc3QtYW5kcm9pZC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bnRlc3QtYW5kcm9p ZC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDUgKzAsMCBAQAorLXVzZSBzdGQ6OmVudjsKKy11 c2Ugc3RkOjpwcm9jZXNzOjpDb21tYW5kOworLXVzZSBzdGQ6OnBhdGg6OntQYXRoLCBQYXRoQnVm fTsKKy0KKy1mbiBtYWluKCkgeworLSAgICBsZXQgYXJncyA9IGVudjo6YXJnc19vcygpCistICAg ICAgICAuc2tpcCgxKQorLSAgICAgICAgLmZpbHRlcih8YXJnfCBhcmcgIT0gIi0tcXVpZXQiKQor LSAgICAgICAgLmNvbGxlY3Q6OjxWZWM8Xz4+KCk7CistICAgIGFzc2VydF9lcSEoYXJncy5sZW4o KSwgMSk7CistICAgIGxldCB0ZXN0ID0gUGF0aEJ1Zjo6ZnJvbSgmYXJnc1swXSk7CistICAgIGxl dCBkc3QgPSBQYXRoOjpuZXcoIi9kYXRhL2xvY2FsL3RtcCIpLmpvaW4odGVzdC5maWxlX25hbWUo KS51bndyYXAoKSk7CistCistICAgIGxldCBzdGF0dXMgPSBDb21tYW5kOjpuZXcoImFkYiIpCist ICAgICAgICAuYXJnKCJ3YWl0LWZvci1kZXZpY2UiKQorLSAgICAgICAgLnN0YXR1cygpCistICAg ICAgICAuZXhwZWN0KCJmYWlsZWQgdG8gcnVuOiBhZGIgd2FpdC1mb3ItZGV2aWNlIik7CistICAg IGFzc2VydCEoc3RhdHVzLnN1Y2Nlc3MoKSk7CistCistICAgIGxldCBzdGF0dXMgPSBDb21tYW5k OjpuZXcoImFkYiIpCistICAgICAgICAuYXJnKCJwdXNoIikKKy0gICAgICAgIC5hcmcoJnRlc3Qp CistICAgICAgICAuYXJnKCZkc3QpCistICAgICAgICAuc3RhdHVzKCkKKy0gICAgICAgIC5leHBl Y3QoImZhaWxlZCB0byBydW46IGFkYiBwdXNociIpOworLSAgICBhc3NlcnQhKHN0YXR1cy5zdWNj ZXNzKCkpOworLQorLSAgICBsZXQgb3V0cHV0ID0gQ29tbWFuZDo6bmV3KCJhZGIiKQorLSAgICAg ICAgLmFyZygic2hlbGwiKQorLSAgICAgICAgLmFyZygmZHN0KQorLSAgICAgICAgLm91dHB1dCgp CistICAgICAgICAuZXhwZWN0KCJmYWlsZWQgdG8gcnVuOiBhZGIgc2hlbGwiKTsKKy0gICAgYXNz ZXJ0IShzdGF0dXMuc3VjY2VzcygpKTsKKy0KKy0gICAgcHJpbnRsbiEoInN0YXR1czoge31cbnN0 ZG91dCAtLS1cbnt9XG5zdGRlcnIgLS0tXG57fSIsCistICAgICAgICAgICAgIG91dHB1dC5zdGF0 dXMsCistICAgICAgICAgICAgIFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZvdXRwdXQuc3Rkb3V0 KSwKKy0gICAgICAgICAgICAgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRlcnIp KTsKKy0KKy0gICAgbGV0IHN0ZG91dCA9IFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZvdXRwdXQu c3Rkb3V0KTsKKy0gICAgbGV0IG11dCBsaW5lcyA9IHN0ZG91dC5saW5lcygpLmZpbHRlcih8bHwg bC5zdGFydHNfd2l0aCgidGVzdCByZXN1bHQiKSk7CistICAgIGlmICFsaW5lcy5hbGwofGx8IGwu Y29udGFpbnMoInRlc3QgcmVzdWx0OiBvayIpICYmIGwuY29udGFpbnMoIjAgZmFpbGVkIikpIHsK Ky0gICAgICAgIHBhbmljISgiZmFpbGVkIHRvIGZpbmQgc3VjY2Vzc2Z1bCB0ZXN0IHJ1biIpOwor LSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv c2V0dXBfYmVuY2htYXJrcy5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvc2V0 dXBfYmVuY2htYXJrcy5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3NldHVwX2JlbmNobWFya3Muc2gKKysrKyAvZGV2L251 bGwKK0BAIC0xLDcgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IGJhc2gKKy0KKy1zZXQgLWV4Cist CistIyBHZXQgbGF0ZXN0IElTUEMgYmluYXJ5IGZvciB0aGUgdGFyZ2V0IGFuZCBwdXQgaXQgaW4g dGhlIHBhdGgKKy1naXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2duemxiZy9pc3BjLWJpbmFy aWVzCistY3AgaXNwYy1iaW5hcmllcy9pc3BjLSR7VEFSR0VUfSBpc3BjCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS90ZXN0LXJ1bm5lci1saW51eCBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvdGVzdC1ydW5uZXItbGludXgKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS90ZXN0 LXJ1bm5lci1saW51eAorKysrIC9kZXYvbnVsbAorQEAgLTEsMjQgKzAsMCBAQAorLSMhL2Jpbi9z aAorLQorLXNldCAtZQorLQorLWFyY2g9JDEKKy1wcm9nPSQyCistCistY2QgL3FlbXUvaW5pdAor LWNwIC1mICQyIHByb2cKKy1maW5kIC4gfCBjcGlvIC0tY3JlYXRlIC0tZm9ybWF0PSduZXdjJyAt LXF1aWV0IHwgZ3ppcCA+IC4uL2luaXRyZC5negorLWNkIC4uCistCistdGltZW91dCAzMHMgcWVt dS1zeXN0ZW0tJGFyY2ggXAorLSAgICAgICAgLW0gMTAyNCBcCistICAgICAgICAtbm9ncmFwaGlj IFwKKy0gICAgICAgIC1rZXJuZWwga2VybmVsIFwKKy0gICAgICAgIC1pbml0cmQgaW5pdHJkLmd6 IFwKKy0gICAgICAgIC1hcHBlbmQgaW5pdD0vcHJvZyA+IG91dHB1dCB8fCB0cnVlCistCistIyBy ZW1vdmUga2VybmVsIG1lc3NhZ2VzCistdHIgLWQgJ1xyJyA8IG91dHB1dCB8IGVncmVwIC12ICde XFsnCistCistIyBpZiB0aGUgb3V0cHV0IGNvbnRhaW5zIGEgZmFpbHVyZSwgcmV0dXJuIGVycm9y CistISBncmVwIEZBSUxFRCBvdXRwdXQgPiAvZGV2L251bGwKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NvbnRyaWJ1dGluZy5tZCBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY29udHJpYnV0aW5nLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY29udHJpYnV0aW5nLm1kCisrKysgL2Rl di9udWxsCitAQCAtMSw2NyArMCwwIEBACistIyBDb250cmlidXRpbmcgdG8gYHBhY2tlZF9zaW1k YAorLQorLVdlbGNvbWUhIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGRvY3VtZW50LCBpdCBtZWFu cyB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nCistdG8gdGhlIGBwYWNrZWRfc2lt ZGAgY3JhdGUuCistCistIyMgUmVwb3J0aW5nIGlzc3VlcworLQorLUFsbCBpc3N1ZXMgd2l0aCB0 aGlzIGNyYXRlIGFyZSB0cmFja2VkIHVzaW5nIEdpdEh1YidzIFtJc3N1ZSBUcmFja2VyXS4KKy0K Ky1Zb3UgY2FuIHVzZSBpc3N1ZXMgdG8gYnJpbmcgYnVncyB0byB0aGUgYXR0ZW50aW9uIG9mIHRo ZSBtYWludGFpbmVycywgdG8gZGlzY3VzcworLWNlcnRhaW4gcHJvYmxlbXMgZW5jb3VudGVyZWQg d2l0aCB0aGUgY3JhdGUsIG9yIHRvIHJlcXVlc3QgbmV3IGZlYXR1cmVzIChhbHRob3VnaAorLWZl YXR1cmUgcmVxdWVzdHMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gdGhpbmdzIG1lbnRpb25lZCBpbiB0 aGUgW1JGQ10pLgorLQorLU9uZSB0aGluZyB0byBrZWVwIGluIG1pbmQgaXMgdG8gYWx3YXlzIHVz ZSB0aGUgKipsYXRlc3QqKiBuaWdodGx5IHRvb2xjaGFpbiB3aGVuCistd29ya2luZyBvbiB0aGlz IGNyYXRlLiBEdWUgdG8gdGhlIG5hdHVyZSBvZiB0aGlzIHByb2plY3QsIHdlIHVzZSBhIGxvdCBv ZiB1bnN0YWJsZQorLWZlYXR1cmVzLCBtZWFuaW5nIGJyZWFrYWdlIGhhcHBlbnMgb2Z0ZW4uCist CistW0lzc3VlIFRyYWNrZXJdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkv cGFja2VkX3NpbWQvaXNzdWVzCistW1JGQ106IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcv cmZjcy9wdWxsLzIzNjYKKy0KKy0jIyMgTExWTSBpc3N1ZXMKKy0KKy1UaGUgUnVzdCBjb21waWxl ciByZWxpZXMgb24gW0xMVk1dKGh0dHBzOi8vbGx2bS5vcmcvKSBmb3IgbWFjaGluZSBjb2RlIGdl bmVyYXRpb24sCistYW5kIHF1aXRlIGEgZmV3IExMVk0gYnVncyBoYXZlIGJlZW4gZGlzY292ZXJl ZCBkdXJpbmcgdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgcHJvamVjdC4KKy0KKy1JZiB5b3UgZW5j b3VudGVyIGlzc3VlcyB3aXRoIGluY29ycmVjdC9zdWJvcHRpbWFsIGNvZGVnZW4sIHdoaWNoIHlv dSBkbyBub3QgZW5jb3VudGVyCistd2hlbiB1c2luZyB0aGUgW1NJTUQgdmVuZG9yIGludHJpbnNp Y3NdKGh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvbmlnaHRseS9zdGQvYXJjaC8pLAorLWl0IGlz IGxpa2VseSB0aGUgaXNzdWUgaXMgd2l0aCBMTFZNLCBvciB0aGlzIGNyYXRlJ3MgaW50ZXJhY3Rp b24gd2l0aCBpdC4KKy0KKy1Zb3Ugc2hvdWxkIGZpcnN0IG9wZW4gYW4gaXNzdWUgKippbiB0aGlz IHJlcG8qKiB0byBoZWxwIHVzIHRyYWNrIHRoZSBwcm9ibGVtLCBhbmQgd2UKKy13aWxsIGhlbHAg ZGV0ZXJtaW5lIHdoYXQgaXMgdGhlIGV4YWN0IGNhdXNlIG9mIHRoZSBwcm9ibGVtLgorLUlmIExM Vk0gaXMgaW5kZWVkIHRoZSBjYXVzZSwgdGhlIGlzc3VlIHdpbGwgYmUgcmVwb3J0ZWQgdXBzdHJl YW0gdG8gdGhlCistW0xMVk0gYnVndHJhY2tlcl0oaHR0cHM6Ly9idWdzLmxsdm0ub3JnLykuCist CistIyMgU3VibWl0dGluZyBQdWxsIFJlcXVlc3RzCistCistTmV3IGNvZGUgaXMgc3VibWl0dGVk IHRvIHRoZSBjcmF0ZSB1c2luZyBHaXRIdWIncyBbcHVsbCByZXF1ZXN0XSBtZWNoYW5pc20uCist WW91IHNob3VsZCBmaXJzdCBmb3JrIHRoaXMgcmVwb3NpdG9yeSwgbWFrZSB5b3VyIGNoYW5nZXMg KHByZWZlcmFibHkgaW4gYSBuZXcKKy1icmFuY2gpLCB0aGVuIHVzZSBHaXRIdWIncyB3ZWIgVUkg dG8gY3JlYXRlIGEgbmV3IFBSLgorLQorLVtwdWxsIHJlcXVlc3RdOiBodHRwczovL2hlbHAuZ2l0 aHViLmNvbS9hcnRpY2xlcy9hYm91dC1wdWxsLXJlcXVlc3RzLworLQorLSMjIyBFeGFtcGxlcwor LQorLVRoZSBgZXhhbXBsZXNgIGRpcmVjdG9yeSBjb250YWlucyBjb2RlIHNob3djYXNpbmcgU0lN RCBjb2RlIHdyaXR0ZW4gd2l0aCB0aGlzIGNyYXRlLAorLXVzdWFsbHkgaW4gY29tcGFyaXNvbiB0 byBzY2FsYXIgb3IgSVNQQyBjb2RlLiBJZiB5b3UgaGF2ZSBhIHByb2plY3QgLyBpZGVhIHdoaWNo CistdXNlcyBTSU1ELCB3ZSdkIGxvdmUgdG8gYWRkIGl0IHRvIHRoZSBleGFtcGxlcyBsaXN0Lgor LQorLUV2ZXJ5IGV4YW1wbGUgc2hvdWxkIGluY2x1ZGUgYSBzbWFsbCBgUkVBRE1FYCwgZGVzY3Jp YmluZyB0aGUgZXhhbXBsZSBjb2RlJ3MgcHVycG9zZS4KKy1JZiB5b3VyIGV4YW1wbGUgY291bGQg cG90ZW50aWFsbHkgd29yayBhcyBhIGJlbmNobWFyaywgdGhlbiBhZGQgYSBgYmVuY2htYXJrLnNo YAorLXNjcmlwdCB0byBhbGxvdyBydW5uaW5nIHRoZSBleGFtcGxlIGJlbmNobWFyayBjb2RlIGlu IENJLiBTZWUgYW4gZXhpc3RpbmcgZXhhbXBsZSdzCistW2BiZW5jaG1hcmsuc2hgXShleGFtcGxl cy9hb2JlbmNoL2JlbmNobWFyay5zaCkgZm9yIGEgc2FtcGxlLgorLQorLURvbid0IGZvcmdldCB0 byB1cGRhdGUgdGhlIGNyYXRlJ3MgdG9wLWxldmVsIGBSRUFETUVgIHdpdGggYSBsaW5rIHRvIHlv dXIgZXhhbXBsZS4KKy0KKy0jIyMgUGVyZiBndWlkZQorLQorLVRoZSBvYmplY3RpdmUgb2YgdGhl IFtwZXJmb3JtYW5jZSBndWlkZV1bcGVyZi1ndWlkZV0gaXMgdG8gYmUgYSBjb21wcmVoZW5zaXZl CistcmVzb3VyY2UgZGV0YWlsaW5nIHRoZSBwcm9jZXNzIG9mIG9wdGltaXppbmcgUnVzdCBjb2Rl IHdpdGggU0lNRCBzdXBwb3J0LgorLQorLUlmIHlvdSBiZWxpZXZlIGEgY2VydGFpbiBzZWN0aW9u IGNvdWxkIGJlIHJld29yZGVkLCBvciBpZiB5b3UgaGF2ZSBhbnkgdGlwcyAmIHRyaWNrcworLXJl bGF0ZWQgdG8gU0lNRCB3aGljaCB5b3UnZCBsaWtlIHRvIHNoYXJlLCBwbGVhc2Ugb3BlbiBhIFBS LgorLQorLVttZEJvb2tdIGlzIHVzZWQgdG8gbWFuYWdlIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBn dWlkZSBhcyBhIGJvb2suCistCistW3BlcmYtZ3VpZGVdOiBodHRwczovL3J1c3QtbGFuZy1udXJz ZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLworLVttZEJvb2tdOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvbWRCb29rCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLy5naXRpZ25vcmUgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvLmdpdGlnbm9yZQorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv LmdpdGlnbm9yZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMSArMCwwIEBACistL2Jvb2sKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvYm9vay50b21s IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL2Jvb2sudG9tbAorZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvYm9vay50b21sCisrKysgL2Rldi9udWxsCitAQCAtMSwxMiArMCwwIEBACist W2Jvb2tdCistYXV0aG9ycyA9IFsiR29uemFsbyBCcml0byBHYWRlc2NoaSIsICJHYWJyaWVsIE1h amVyaSJdCistbXVsdGlsaW5ndWFsID0gZmFsc2UKKy1zcmMgPSAic3JjIgorLXRpdGxlID0gIlJ1 c3QgU0lNRCBQZXJmb3JtYW5jZSBHdWlkZSIKKy1kZXNjcmlwdGlvbiA9ICJUaGlzIGJvb2sgZGVz Y3JpYmVzIGhvdyB0byB3cml0ZSBwZXJmb3JtYW50IFNJTUQgY29kZSBpbiBSdXN0LiIKKy0KKy1b YnVpbGRdCistY3JlYXRlLW1pc3NpbmcgPSBmYWxzZQorLQorLVtvdXRwdXQuaHRtbF0KKy1hZGRp dGlvbmFsLWNzcyA9IFsiLi9zcmMvYXNjaWkuY3NzIl0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL1NVTU1BUlkubWQgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL1NVTU1BUlkubWQKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy9TVU1NQVJZLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwyMSArMCwwIEBACistIyBT dW1tYXJ5CistCistW0ludHJvZHVjdGlvbl0oLi9pbnRyb2R1Y3Rpb24ubWQpCistCistLSBbRmxv YXRpbmctcG9pbnQgTWF0aF0oLi9mbG9hdC1tYXRoL2ZwLm1kKQorLSAgLSBbU2hvcnQtdmVjdG9y IE1hdGggTGlicmFyeV0oLi9mbG9hdC1tYXRoL3N2bWwubWQpCistICAtIFtBcHByb3hpbWF0ZSBm dW5jdGlvbnNdKC4vZmxvYXQtbWF0aC9hcHByb3gubWQpCistICAtIFtGdXNlZCBtdWx0aXBseS1h Y2N1bXVsYXRlXSguL2Zsb2F0LW1hdGgvZm1hLm1kKQorLQorLS0gW1RhcmdldCBmZWF0dXJlc10o Li90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZCkKKy0gIC0gW1VzaW5nIGBSVVNURkxBR1NgXSgu L3RhcmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZCkKKy0gIC0gW1VzaW5nIHRoZSBgdGFyZ2V0X2Zl YXR1cmVgIGF0dHJpYnV0ZV0oLi90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUubWQpCistICAtIFtJ bnRlcmFjdGlvbiB3aXRoIGlubGluaW5nXSguL3RhcmdldC1mZWF0dXJlL2lubGluaW5nLm1kKQor LSAgLSBbRGV0ZWN0aW5nIGZlYXR1cmVzIGF0IHJ1bnRpbWVdKC4vdGFyZ2V0LWZlYXR1cmUvcnVu dGltZS5tZCkKKy0KKy0tIFtCb3VuZHMgY2hlY2tpbmddKC4vYm91bmRfY2hlY2tzLm1kKQorLS0g W1ZlcnRpY2FsIGFuZCBob3Jpem9udGFsIG9wZXJhdGlvbnNdKC4vdmVydC1ob3Itb3BzLm1kKQor LQorLS0gW1BlcmZvcm1hbmNlIHByb2ZpbGluZ10oLi9wcm9mL3Byb2ZpbGluZy5tZCkKKy0gIC0g W1Byb2ZpbGluZyBvbiBMaW51eF0oLi9wcm9mL2xpbnV4Lm1kKQorLSAgLSBbVXNpbmcgbWFjaGlu ZSBjb2RlIGFuYWx5emVyc10oLi9wcm9mL21jYS5tZCkKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvYXNjaWkuY3NzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvYXNjaWkuY3NzCisrKysgL2Rldi9udWxsCitAQCAtMSw0ICswLDAgQEAKKy1jb2RlIHsK Ky0gICAgLyogIlNvdXJjZSBDb2RlIFBybyIgYnJlYWtzIEFTQ0lJIGFydCAqLworLSAgICBmb250 LWZhbWlseTogQ29uc29sYXMsICJVYnVudHUgTW9ubyIsIE1lbmxvLCAiRGVqYVZ1IFNhbnMgTW9u byIsIG1vbm9zcGFjZTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZAorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL2JvdW5kX2NoZWNrcy5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsMjIgKzAsMCBAQAorLSMg Qm91bmRzIGNoZWNraW5nCistCistUmVhZGluZyBhbmQgd3JpdGluZyBwYWNrZWQgdmVjdG9ycyB0 by9mcm9tIHNsaWNlcyBpcyBjaGVja2VkIGJ5IGRlZmF1bHQuCistSW5kZXBlbmRlbnRseSBvZiB0 aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHVzZWQsIHRoZSBzYWZlIGZ1bmN0aW9uczoKKy0KKy0q IGBTaW1kPFtUOyBOXT46OmZyb21fc2xpY2VfYWxpZ25lZCgmIHNbLi5dKWAKKy0qIGBTaW1kPFtU OyBOXT46OndyaXRlX3RvX3NsaWNlX2FsaWduZWQoJm11dCBzWy4uXSlgCistCistYWx3YXlzIGNo ZWNrIHRoYXQ6CistCistKiB0aGUgc2xpY2UgaXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSB2ZWN0 b3IKKy0qIHRoZSBzbGljZSBpcyBzdWl0YWJseSBhbGlnbmVkIHRvIHBlcmZvcm0gYW4gYWxpZ25l ZCBsb2FkL3N0b3JlIGZvciBhIGBTaW1kPFtUOworLSAgTl0+YCAodGhpcyBhbGlnbm1lbnQgaXMg b2Z0ZW4gbXVjaCBsYXJnZXIgdGhhbiB0aGF0IG9mIGBUYCkuCistCistVGhlcmUgYXJlIGBfdW5h bGlnbmVkYCB2ZXJzaW9ucyB0aGF0IHVzZSB1bmFsaWduZWQgbG9hZCBhbmQgc3RvcmVzLCBhcyB3 ZWxsIGFzCistYHVuc2FmZWAgYF91bmNoZWNrZWRgIHRoYXQgZG8gbm90IHBlcmZvcm0gYW55IGNo ZWNrcyBpZmYgYGRlYnVnLWFzc2VydGlvbnMgPQorLWZhbHNlYCAvIGBkZWJ1ZyA9IGZhbHNlYC4g VGhhdCBpcywgdGhlIGBfdW5jaGVja2VkYCBtZXRob2RzIGRvIHN0aWxsIGFzc2VydCBzaXplCist YW5kIGFsaWdubWVudCBpbiBkZWJ1ZyBidWlsZHMgYW5kIGNvdWxkIGFsc28gZG8gc28gaW4gcmVs ZWFzZSBidWlsZHMgZGVwZW5kaW5nCistb24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KKy0K Ky1UaGVzZSBhc3NlcnRpb25zIGRvIG9mdGVuIHNpZ25pZmljYW50bHkgaW1wYWN0IHBlcmZvcm1h bmNlIGFuZCB5b3Ugc2hvdWxkIGJlCistYXdhcmUgb2YgdGhlbS4KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvYXBwcm94 Lm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1t YXRoL2FwcHJveC5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvYXBwcm94Lm1kCisr KysgL2Rldi9udWxsCitAQCAtMSw4ICswLDAgQEAKKy0jIEFwcHJveGltYXRlIGZ1bmN0aW9ucwor LQorLTwhLS0gVE9ETzoKKy0KKy1FeHBsYWluIHRoYXQgdGhleSBleGlzdHMsIHRoYXQgdGhleSBh cmUgb2Z0ZW4gX211Y2hfIGZhc3RlciwgaG93IHRvIHVzZSB0aGVtLAorLXRoYXQgcGVvcGxlIHNo b3VsZCBjaGVjayB3aGV0aGVyIHRoZSBlcnJvciBpcyBnb29kIGVub3VnaCBmb3IgdGhlaXIKKy1h cHBsaWNhdGlvbnMuIEV4cGxhaW4gdGhhdCB0aGlzIGVycm9yIGlzIGN1cnJlbnRseSB1bnN0YWJs ZSBhbmQgbWlnaHQgY2hhbmdlLgorLS0tPgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mbWEubWQgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZm1hLm1kCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv cGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mbWEubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDYg KzAsMCBAQAorLSMgRnVzZWQgTXVsdGlwbHkgQWRkCistCistPCEtLSBUT0RPOgorLUV4cGxhaW4g dGhhdCB0aGlzIGlzIGEgY29tcG91bmQgb3BlcmF0aW9uLCBpbmZpbml0ZSBwcmVjaXNpb24sIGRp ZmZlcmVuY2UKKy1iZXR3ZWVuIGBtdWxfYWRkYCBhbmQgYG11bF9hZGRlYCwgdGhhdCBMTFZNIGNh bm5vdCBkbyB0aGlzIGJ5IGl0c2VsZiwgZXRjLgorLS0tPgorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5tZCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5t ZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZnAubWQKKysrKyAvZGV2L251bGwKK0BA IC0xLDMgKzAsMCBAQAorLSMgRmxvYXRpbmctcG9pbnQgbWF0aAorLQorLVRoaXMgY2hhcHRlciBj b250YWlucyBpbmZvcm1hdGlvbiBwZXJ0YWluaW5nIHRvIHdvcmtpbmcgd2l0aCBmbG9hdGluZy1w b2ludCBudW1iZXJzLgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv cGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1sLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy9mbG9hdC1tYXRoL3N2bWwubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDcgKzAsMCBAQAor LSMgU2hvcnQgVmVjdG9yIE1hdGggTGlicmFyeQorLQorLTwhLS0gVE9ETzoKKy1FeHBsYWluIGhv dyBpcyBzaG9ydC12ZWN0b3IgbWF0aCBwZXJmb3JtZWQgYnkgZGVmYXVsdCAoanVzdCBzY2FsYXJp emVkIGxpYm0gY2FsbHMpLgorLQorLUV4cGxhaW4gaG93IHRvIGVuYWJsZSBgc2xlZWZgLCBldGMu CistLS0+CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy9pbnRyb2R1Y3Rpb24ubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvc3JjL2ludHJvZHVjdGlvbi5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2ludHJvZHVj dGlvbi5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsMjYgKzAsMCBAQAorLSMgSW50cm9kdWN0aW9u CistCistIyMgV2hhdCBpcyBTSU1ECistCistPCEtLSBUT0RPOgorLWRlc2NyaWJlIHdoYXQgU0lN RCBpcywgd2hpY2ggYWxnb3JpdGhtcyBjYW4gYmVuZWZpdCBmcm9tIGl0LAorLWdpdmUgdXNhZ2Ug ZXhhbXBsZXMKKy0tLT4KKy0KKy0jIyBIaXN0b3J5IG9mIFNJTUQgaW4gUnVzdAorLQorLTwhLS0g VE9ETzoKKy1kaXNjdXNzIGhpc3Rvcnkgb2YgdW5zdGFibGUgc3RkOjpzaW1kLAorLXN0YWJpbGl6 YXRpb24gb2Ygc3RkOjphcmNoLCBldGMuCistLS0+CistCistIyMgRGlzY292ZXIgcGFja2VkX3Np bWQKKy0KKy08IS0tIFRPRE86IGRlc2NyaWJlIHNjb3BlIG9mIHRoaXMgcHJvamVjdCAtLT4KKy0K Ky1Xcml0aW5nIGZhc3QgYW5kIHBvcnRhYmxlIFNJTUQgYWxnb3JpdGhtcyB1c2luZyBgcGFja2Vk X3NpbWRgIGlzLCB1bmZvcnR1bmF0ZWx5LAorLW5vdCB0cml2aWFsLiBUaGVyZSBhcmUgbWFueSBw aXRmYWxzIHRoYXQgb25lIHNob3VsZCBiZSBhd2FyZSBvZiwgYW5kIHNvbWUgaWRpb21zCistdGhh dCBoZWxwIGF2b2lkIHRob3NlIHBpdGZhbGxzLgorLQorLVRoaXMgYm9vayBhdHRlbXB0cyB0byBk b2N1bWVudCB0aGVzZSBiZXN0IHByYWN0aWNlcyBhbmQgcHJvdmlkZXMgcHJhY3RpY2FsIGV4YW1w bGVzCistb24gaG93IHRvIGFwcGx5IHRoZSB0aXBzIHRvIF95b3VyXyBjb2RlLgorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9saW51 eC5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9s aW51eC5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQKKysrKyAvZGV2L251bGwK K0BAIC0xLDEwNyArMCwwIEBACistIyBQZXJmb3JtYW5jZSBwcm9maWxpbmcgb24gTGludXgKKy0K Ky0jIyBVc2luZyBgcGVyZmAKKy0KKy1bcGVyZl0oaHR0cHM6Ly9wZXJmLndpa2kua2VybmVsLm9y Zy8pIGlzIHRoZSBtb3N0IHBvd2VyZnVsIHBlcmZvcm1hbmNlIHByb2ZpbGVyCistZm9yIExpbnV4 LCBmZWF0dXJpbmcgc3VwcG9ydCBmb3IgdmFyaW91cyBoYXJkd2FyZSBQZXJmb3JtYW5jZSBNb25p dG9yaW5nIFVuaXRzLAorLWFzIHdlbGwgYXMgaW50ZWdyYXRpb24gd2l0aCB0aGUga2VybmVsJ3Mg cGVyZm9ybWFuY2UgZXZlbnRzIGZyYW1ld29yay4KKy0KKy1XZSB3aWxsIG9ubHkgbG9vayBhdCBo b3cgY2FuIHRoZSBgcGVyZmAgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBwcm9maWxlIFNJTUQgY29k ZS4KKy1GdWxsIHN5c3RlbSBwcm9maWxpbmcgaXMgb3V0c2lkZSBvZiB0aGUgc2NvcGUgb2YgdGhp cyBib29rLgorLQorLSMjIyBSZWNvcmRpbmcKKy0KKy1UaGUgZmlyc3Qgc3RlcCBpcyB0byByZWNv cmQgYSBwcm9ncmFtJ3MgZXhlY3V0aW9uIGR1cmluZyBhbiBhdmVyYWdlIHdvcmtsb2FkLgorLUl0 IGhlbHBzIGlmIHlvdSBjYW4gaXNvbGF0ZSB0aGUgcGFydHMgb2YgeW91ciBwcm9ncmFtIHdoaWNo IGhhdmUgcGVyZm9ybWFuY2UKKy1pc3N1ZXMsIGFuZCBzZXQgdXAgYSBiZW5jaG1hcmsgd2hpY2gg Y2FuIGJlIGVhc2lseSAocmUpcnVuLgorLQorLUJ1aWxkIHRoZSBiZW5jaG1hcmsgYmluYXJ5IGlu IHJlbGVhc2UgbW9kZSwgYWZ0ZXIgaGF2aW5nIGVuYWJsZWQgZGVidWcgaW5mbzoKKy0KKy1gYGBz aAorLSQgY2FyZ28gYnVpbGQgLS1yZWxlYXNlCistRmluaXNoZWQgcmVsZWFzZSBbb3B0aW1pemVk ICsgZGVidWdpbmZvXSB0YXJnZXQocykgaW4gMC4wMnMKKy1gYGAKKy0KKy1UaGVuIHVzZSB0aGUg YHBlcmYgcmVjb3JkYCBzdWJjb21tYW5kOgorLQorLWBgYHNoCistJCBwZXJmIHJlY29yZCAtLWNh bGwtZ3JhcGg9ZHdhcmYgLi90YXJnZXQvcmVsZWFzZS9teS1wcm9ncmFtCistWyBwZXJmIHJlY29y ZDogV29rZW4gdXAgMTAgdGltZXMgdG8gd3JpdGUgZGF0YSBdCistWyBwZXJmIHJlY29yZDogQ2Fw dHVyZWQgYW5kIHdyb3RlIDIsMzU2IE1CIHBlcmYuZGF0YSAoMjkyIHNhbXBsZXMpIF0KKy1gYGAK Ky0KKy1JbnN0ZWFkIG9mIHVzaW5nIGAtLWNhbGwtZ3JhcGg9ZHdhcmZgLCB3aGljaCBjYW4gYmVj b21lIHByZXR0eSBzbG93LCB5b3UgY2FuIHVzZQorLWAtLWNhbGwtZ3JhcGg9bGJyYCBpZiB5b3Ug aGF2ZSBhIHByb2Nlc3NvciB3aXRoIHN1cHBvcnQgZm9yIExhc3QgQnJhbmNoIFJlY29yZAorLShp LmUuIEludGVsIEhhc3dlbGwgYW5kIG5ld2VyKS4KKy0KKy1gcGVyZmAgd2lsbCwgYnkgZGVmYXVs dCwgcmVjb3JkIHRoZSBjb3VudCBvZiBDUFUgY3ljbGVzIGl0IHRha2VzIHRvIGV4ZWN1dGUKKy12 YXJpb3VzIHBhcnRzIG9mIHlvdXIgcHJvZ3JhbS4gWW91IGNhbiB1c2UgdGhlIGAtZWAgY29tbWFu ZCBsaW5lIG9wdGlvbgorLXRvIGVuYWJsZSBvdGhlciBwZXJmb3JtYW5jZSBldmVudHMsIHN1Y2gg YXMgYGNhY2hlLW1pc3Nlc2AuIFVzZSBgcGVyZiBsaXN0YAorLXRvIGdldCBhIGxpc3Qgb2YgYWxs IGhhcmR3YXJlIGNvdW50ZXJzIHN1cHBvcnRlZCBieSB5b3VyIENQVS4KKy0KKy0jIyMgVmlld2lu ZyB0aGUgcmVwb3J0CistCistVGhlIG5leHQgc3RlcCBpcyBnZXR0aW5nIGEgYmlyZCdzIGV5ZSB2 aWV3IG9mIHRoZSBwcm9ncmFtJ3MgZXhlY3V0aW9uLgorLWBwZXJmYCBwcm92aWRlcyBhIGBuY3Vy c2VzYC1iYXNlZCBpbnRlcmZhY2Ugd2hpY2ggd2lsbCBnZXQgeW91IHN0YXJ0ZWQuCistCistVXNl IGBwZXJmIHJlcG9ydGAgdG8gb3BlbiBhIHZpc3VhbGl6YXRpb24gb2YgeW91ciBwcm9ncmFtJ3Mg cGVyZm9ybWFuY2U6CistCistYGBgc2gKKy1wZXJmIHJlcG9ydCAtLWhpZXJhcmNoeSAtTSBpbnRl bAorLWBgYAorLQorLWAtLWhpZXJhcmNoeWAgd2lsbCBkaXNwbGF5IGEgdHJlZS1saWtlIHN0cnVj dHVyZSBvZiB3aGVyZSB5b3VyIHByb2dyYW0gc3BlbnQKKy1tb3N0IG9mIGl0cyB0aW1lLiBgLU0g aW50ZWxgIGVuYWJsZXMgZGlzYXNzZW1ibHkgb3V0cHV0IHdpdGggSW50ZWwgc3ludGF4LCB3aGlj aAorLWlzIHN1YmplY3RpdmVseSBtb3JlIHJlYWRhYmxlIHRoYW4gdGhlIGRlZmF1bHQgQVQmVCBz eW50YXguCistCistSGVyZSBpcyB0aGUgb3V0cHV0IGZyb20gcHJvZmlsaW5nIHRoZSBgbmJvZHlg IGJlbmNobWFyazoKKy0KKy1gYGAKKy0tIDEwMCwwMCUgbmJvZHkKKy0gIC0gOTQsMTglIG5ib2R5 CistICAgICsgOTMsNDglIFsuXSBuYm9keV9saWI6OnNpbWQ6OmFkdmFuY2UKKy0gICAgKyAwLDcw JSBbLl0gbmJvZHlfbGliOjpydW4KKy0gICAgKyA1LDA2JSBsaWJjLTIuMjguc28KKy1gYGAKKy0K Ky1JZiB5b3UgbW92ZSB3aXRoIHRoZSBhcnJvdyBrZXlzIHRvIGFueSBub2RlIGluIHRoZSB0cmVl LCB5b3UgY2FuIHRoZSBwcmVzcyBgYWAKKy10byBoYXZlIGBwZXJmYCBfYW5ub3RhdGVfIHRoYXQg bm9kZS4gVGhpcyBtZWFucyBpdCB3aWxsOgorLQorLS0gZGlzYXNzZW1ibGUgdGhlIGZ1bmN0aW9u CistCistLSBhc3NvY2lhdGUgZXZlcnkgaW5zdHJ1Y3Rpb24gd2l0aCB0aGUgcGVyY2VudGFnZSBv ZiB0aW1lIHdoaWNoIHdhcyBzcGVudCBleGVjdXRpbmcgaXQKKy0KKy0tIGludGVybGVhdmVzIHRo ZSBkaXNhc3NlbWJseSB3aXRoIHRoZSBzb3VyY2UgY29kZSwKKy0gIGFzc3VtaW5nIGl0IGZvdW5k IHRoZSBkZWJ1ZyBzeW1ib2xzCistICAoeW91IGNhbiB1c2UgYHNgIHRvIHRvZ2dsZSB0aGlzIGJl aGF2aW91cikKKy0KKy1gcGVyZmAgd2lsbCwgYnkgZGVmYXVsdCwgb3BlbiB0aGUgaW5zdHJ1Y3Rp b24gd2hpY2ggaXQgaWRlbnRpZmllZCBhcyBiZWluZyB0aGUKKy1ob3R0ZXN0IHNwb3QgaW4gdGhl IGZ1bmN0aW9uOgorLQorLWBgYAorLTAsNzYgIOKUgiBtb3ZhcGQgeG1tMix4bW0wCistMCwzOCAg 4pSCIG1vdmhscHMgeG1tMix4bW0wCistICAgICAg4pSCIGFkZHBkICB4bW0yLHhtbTAKKy0gICAg ICDilIIgdW5wY2tscGQgeG1tMSx4bW0yCistMTIsNTAg4pSCIHNxcnRwZCB4bW0wLHhtbTEKKy0x LDUyICDilIIgbXVscGQgIHhtbTAseG1tMQorLWBgYAorLQorLUluIHRoaXMgY2FzZSwgYHNxcnRw ZGAgd2lsbCBiZSBoaWdobGlnaHRlZCBpbiByZWQsIHNpbmNlIHRoYXQncyB0aGUgaW5zdHJ1Y3Rp b24KKy13aGljaCB0aGUgQ1BVIHNwZW5kcyBtb3N0IG9mIGl0cyB0aW1lIGV4ZWN1dGluZy4KKy0K Ky0jIyBVc2luZyBWYWxncmluZAorLQorLVZhbGdyaW5kIGlzIGEgc2V0IG9mIHRvb2xzIHdoaWNo IGluaXRpYWxseSBoZWxwZWQgQy9DKysgcHJvZ3JhbW1lcnMgZmluZCB1bnNhZmUKKy1tZW1vcnkg YWNjZXNzZXMgaW4gdGhlaXIgY29kZS4gTm93YWRheXMgdGhlIHByb2plY3QgYWxzbyBoYXMKKy0K Ky0tIGEgaGVhcCBwcm9maWxlciBjYWxsZWQgYG1hc3NpZmAKKy0KKy0tIGEgY2FjaGUgdXRpbGl6 YXRpb24gcHJvZmlsZXIgY2FsbGVkIGBjYWNoZWdyaW5kYAorLQorLS0gYSBjYWxsLWdyYXBoIHBl cmZvcm1hbmNlIHByb2ZpbGVyIGNhbGxlZCBgY2FsbGdyaW5kYAorLQorLTwhLS0KKy1UT0RPOiBl eHBsYWluIHZhbGdyaW5kJ3MgZHluYW1pYyBiaW5hcnkgdHJhbnNsYXRpb24sIHdhcm4gYWJvdXQg bWFzc2l2ZQorLXNsb3dkb3duLCB0YWxrIGFib3V0IGBrY2FjaGVncmluZGAgZm9yIGEgR1VJCist LS0+CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy9wcm9mL21jYS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvcHJvZi9tY2EubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL21jYS5tZAorKysrIC9k ZXYvbnVsbAorQEAgLTEsMTAwICswLDAgQEAKKy0jIE1hY2hpbmUgY29kZSBhbmFseXNpcyB0b29s cworLQorLSMjIFRoZSBtaWNyb2FyY2hpdGVjdHVyZSBvZiBtb2Rlcm4gQ1BVcworLQorLVdoaWxl IHlvdSBtaWdodCBoYXZlIGhlYXJkIG9mIEluc3RydWN0aW9uIFNldCBBcmNoaXRlY3R1cmVzLCBz dWNoIGFzIGB4ODZgIG9yCistYGFybWAgb3IgYG1pcHNgLCB0aGUgdGVybSBfbWljcm9hcmNoaXRl Y3R1cmVfIChhbHNvIHdyaXR0ZW4gaGVyZSBhcyBfwrUtYXJjaF8pLAorLXJlZmVycyB0byB0aGUg aW50ZXJuYWwgZGV0YWlscyBvZiBhbiBhY3R1YWwgZmFtaWx5IG9mIENQVXMsIHN1Y2ggYXMgSW50 ZWwncworLV9IYXN3ZWxsXyBvciBBTUQncyBfSmFndWFyXy4KKy0KKy1SZXBsYWNpbmcgc2NhbGFy IGNvZGUgd2l0aCBTSU1EIGNvZGUgd2lsbCBpbXByb3ZlIHBlcmZvcm1hbmNlIG9uIGFsbCBDUFVz Cistc3VwcG9ydGluZyB0aGUgcmVxdWlyZWQgdmVjdG9yIGV4dGVuc2lvbnMuCistSG93ZXZlciwg ZHVlIHRvIG1pY3JvYXJjaGl0ZWN0dXJhbCBkaWZmZXJlbmNlcywgdGhlIGFjdHVhbCBzcGVlZC11 cCBhdAorLXJ1bnRpbWUgbWlnaHQgdmFyeS4KKy0KKy0qKkV4YW1wbGUqKjogYSBzaW1wbGUgZXhh bXBsZSBhcmlzZXMgd2hlbiBvcHRpbWl6aW5nIGZvciBBTUQgSzggQ1BVcy4KKy1UaGUgYXNzZW1i bHkgZ2VuZXJhdGVkIGZvciBhbiBlbXB0eSBmdW5jdGlvbiBzaG91bGQgbG9vayBsaWtlIHRoaXM6 CistCistYGBgYXNtCistbm9wCistcmV0CistYGBgCistCistVGhlIGBub3BgIGlzIHVzZWQgdG8g YWxpZ24gdGhlIGByZXRgIGluc3RydWN0aW9uIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCistSG93 ZXZlciwgdGhlIGNvbXBpbGVyIHdpbGwgYWN0dWFsbHkgZ2VuZXJhdGVkIHRoZSBmb2xsb3dpbmcg Y29kZToKKy0KKy1gYGBhc20KKy1yZXB6IHJldAorLWBgYAorLQorLVRoZSBgcmVwemAgaW5zdHJ1 Y3Rpb24gd2lsbCByZXBlYXQgdGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbiB1bnRpbCBhIGNlcnRh aW4KKy1jb25kaXRpb24uIE9mIGNvdXJzZSwgaW4gdGhpcyBzaXR1YXRpb24sIHRoZSBmdW5jdGlv biB3aWxsIHNpbXBseSBpbW1lZGlhdGVseQorLXJldHVybiwgYW5kIHRoZSBgcmV0YCBpbnN0cnVj dGlvbiBpcyBzdGlsbCBhbGlnbmVkLgorLUhvd2V2ZXIsIEFNRCBLOCdzIGJyYW5jaCBwcmVkaWN0 b3IgcGVyZm9ybXMgYmV0dGVyIHdpdGggdGhlIGxhdHRlciBjb2RlLgorLQorLUZvciB0aG9zZSBs b29raW5nIHRvIGFic29sdXRlbHkgbWF4aW1pemUgcGVyZm9ybWFuY2UgZm9yIGEgY2VydGFpbiB0 YXJnZXQgwrUtYXJjaCwKKy15b3Ugd2lsbCBoYXZlIHRvIHJlYWQgc29tZSBDUFUgbWFudWFscywg b3IgYXNrIHRoZSBjb21waWxlciB0byBkbyBpdCBmb3IgeW91Cistd2l0aCBgLUMgdGFyZ2V0LWNw dWAuCistCistIyMjIFN1bW1hcnkgb2YgQ1BVIGludGVybmFscworLQorLU1vZGVybiBwcm9jZXNz b3JzIGFyZSBhYmxlIHRvIGV4ZWN1dGUgaW5zdHJ1Y3Rpb25zIG91dC1vZi1vcmRlciBmb3IgYmV0 dGVyIHBlcmZvcm1hbmNlLAorLWJ5IHV0aWxpemluZyB0cmlja3Mgc3VjaCBhcyBbYnJhbmNoIHBy ZWRpY3Rpb25dLCBbaW5zdHJ1Y3Rpb24gcGlwZWxpbmluZ10sCistb3IgW3N1cGVyc2NhbGFyIGV4 ZWN1dGlvbl0uCistCistW2JyYW5jaCBwcmVkaWN0aW9uXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEu b3JnL3dpa2kvQnJhbmNoX3ByZWRpY3RvcgorLVtpbnN0cnVjdGlvbiBwaXBlbGluaW5nXTogaHR0 cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSW5zdHJ1Y3Rpb25fcGlwZWxpbmluZworLVtzdXBl cnNjYWxhciBleGVjdXRpb25dOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TdXBlcnNj YWxhcl9wcm9jZXNzb3IKKy0KKy1TSU1EIGluc3RydWN0aW9ucyBhcmUgYWxzbyBzdWJqZWN0IHRv IHRoZXNlIG9wdGltaXphdGlvbnMsIG1lYW5pbmcgaXQgY2FuIGdldCBwcmV0dHkKKy1kaWZmaWN1 bHQgdG8gZGV0ZXJtaW5lIHdoZXJlIHRoZSBzbG93ZG93biBoYXBwZW5zLgorLUZvciBleGFtcGxl LCBpZiB0aGUgcHJvZmlsZXIgcmVwb3J0cyBhIHN0b3JlIG9wZXJhdGlvbiBpcyBzbG93LCBvbmUg b2YgdHdvIHRoaW5ncworLWNvdWxkIGJlIGhhcHBlbmluZzoKKy0KKy0tIHRoZSBzdG9yZSBpcyBs aW1pdGVkIGJ5IHRoZSBDUFUncyBtZW1vcnkgYmFuZHdpZHRoLCB3aGljaCBpcyBhY3R1YWxseSBh biBpZGVhbAorLSAgc2NlbmFyaW8sIGFsbCB0aGluZ3MgY29uc2lkZXJlZDsKKy0KKy0tIG1lbW9y eSBiYW5kd2lkdGggaXMgbm93aGVyZSBuZWFyIGl0cyBwZWFrLCBidXQgdGhlIHZhbHVlIHRvIGJl IHN0b3JlZCBpcyBhdCB0aGUKKy0gIGVuZCBvZiBhIGxvbmcgY2hhaW4gb2Ygb3BlcmF0aW9ucywg YW5kIHRoaXMgc3RvcmUgaXMgd2hlcmUgdGhlIHByb2ZpbGVyCistICBlbmNvdW50ZXJlZCB0aGUg cGlwZWxpbmUgc3RhbGw7CistCistU2luY2UgbW9zdCBwcm9maWxlcnMgYXJlIHNpbXBsZSB0b29s cyB3aGljaCBkb24ndCB1bmRlcnN0YW5kIHRoZSBzdWJ0bGV0aWVzIG9mCistaW5zdHJ1Y3Rpb24g c2NoZWR1bGluZywgeW91CistCistIyMgQW5hbHl6aW5nIHRoZSBtYWNoaW5lIGNvZGUKKy0KKy1D ZXJ0YWluIHRvb2xzIGhhdmUga25vd2xlZGdlIG9mIGludGVybmFsIENQVSBtaWNyb2FyY2hpdGVj dHVyZSwgaS5lLiB0aGV5IGtub3cKKy0KKy0tIGhvdyBtYW55IHBoeXNpY2FsIFtyZWdpc3RlciBm aWxlc10gYSBDUFUgYWN0dWFsbHkgaGFzCistCistLSB3aGF0IGlzIHRoZSBsYXRlbmN5IC8gdGhy b3VnaHRwdXQgb2YgYW4gaW5zdHJ1Y3Rpb24KKy0KKy0tIHdoYXQgW8K1LW9wc10gYXJlIGdlbmVy YXRlZCBmb3IgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zCistCistYW5kIG1hbnkgb3RoZXIgYXJjaGl0 ZWN0dXJhbCBkZXRhaWxzLgorLQorLVtyZWdpc3RlciBmaWxlc106IGh0dHBzOi8vZW4ud2lraXBl ZGlhLm9yZy93aWtpL1JlZ2lzdGVyX2ZpbGUKKy1bwrUtb3BzXTogaHR0cHM6Ly9lbi53aWtpcGVk aWEub3JnL3dpa2kvTWljcm8tb3BlcmF0aW9uCistCistVGhlc2UgdG9vbHMgYXJlIHRoZXJlZm9y ZSBhYmxlIHRvIHByb3ZpZGUgYWNjdXJhdGUgaW5mb3JtYXRpb24gYXMgdG8gd2h5IHNvbWUKKy1p bnN0cnVjdGlvbnMgYXJlIGluZWZmaWNpZW50LCBhbmQgd2hlcmUgdGhlIGJvdHRsZW5lY2sgaXMu CistCistVGhlIGRpc2FkdmFudGFnZSBpcyB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlc2UgdG9vbHMg cmVxdWlyZXMgYWR2YW5jZWQga25vd2xlZGdlCistb2YgdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUg dG8gdW5kZXJzdGFuZCwgaS5lLiB0aGV5ICoqY2Fubm90KiogcG9pbnQgb3V0IHdoYXQKKy10aGUg Y2F1c2Ugb2YgdGhlIGlzc3VlIGlzIGV4cGxpY2l0bHkuCistCistIyMgSW50ZWwncyBBcmNoaXRl Y3R1cmUgQ29kZSBBbmFseXplciAoSUFDQSkKKy0KKy1bSUFDQV0gaXMgYSBmcmVlIHRvb2wgb2Zm ZXJlZCBieSBJbnRlbCBmb3IgYW5hbHl6aW5nIHRoZSBwZXJmb3JtYW5jZSBvZiB2YXJpb3VzCist Y29tcHV0YXRpb25hbCBrZXJuZWxzLgorLQorLUJlaW5nIGEgcHJvcHJpZXRhcnksIGNsb3NlZCBz b3VyY2UgdG9vbCwgaXQgX29ubHlfIHN1cHBvcnRzIEludGVsJ3MgwrUtYXJjaGVzLgorLQorLVtJ QUNBXTogaHR0cHM6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vZW4tdXMvYXJ0aWNsZXMvaW50ZWwtYXJj aGl0ZWN0dXJlLWNvZGUtYW5hbHl6ZXIKKy0KKy0jIyBsbHZtLW1jYQorLQorLTwhLS0KKy1UT0RP OiBvbmNlIExMVk0gNyBnZXRzIHJlbGVhc2VkLCB3cml0ZSBhIGNoYXB0ZXIgb24gdXNpbmcgbGx2 bS1tY2EKKy13aXRoIFNJTUQgZGlzYXNzZW1ibHkuCistLS0+CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZCBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxp bmcubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZAorKysrIC9kZXYvbnVs bAorQEAgLTEsMTQgKzAsMCBAQAorLSMgUGVyZm9ybWFuY2UgcHJvZmlsaW5nCistCistV2hpbGUg dGhlIHJlc3Qgb2YgdGhlIGJvb2sgcHJvdmlkZXMgcHJhY3RpY2FsIGFkdmljZSBvbiBob3cgdG8g aW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UKKy1vZiBTSU1EIGNvZGUsIHRoaXMgY2hhcHRlciBpcyBk ZWRpY2F0ZWQgdG8gWyoqcGVyZm9ybWFuY2UgcHJvZmlsaW5nKipdW3Byb2ZpbGluZ10uCistUHJv ZmlsaW5nIGNvbnNpc3RzIG9mIHJlY29yZGluZyBhIHByb2dyYW0ncyBleGVjdXRpb24gaW4gb3Jk ZXIgdG8gaWRlbnRpZnkgcHJvZ3JhbQorLWhvdHNwb3RzLgorLQorLSoqSW1wb3J0YW50Kio6IG1v c3QgcHJvZmlsZXJzIHJlcXVpcmUgZGVidWcgaW5mb3JtYXRpb24gaW4gb3JkZXIgdG8gYWNjdXJh dGVseQorLWxpbmsgdGhlIHByb2dyYW0gaG90c3BvdHMgYmFjayB0byB0aGUgY29ycmVzcG9uZGlu ZyBzb3VyY2UgY29kZSBsaW5lcy4gUnVzdCB3aWxsCistZGlzYWJsZSBkZWJ1ZyBpbmZvIGdlbmVy YXRpb24gYnkgZGVmYXVsdCBmb3Igb3B0aW1pemVkIGJ1aWxkcywgYnV0IHlvdSBjYW4gY2hhbmdl CistdGhhdCBbaW4geW91ciBgQ2FyZ28udG9tbGBdW2NhcmdvLXJlZl0uCistCistW3Byb2ZpbGlu Z106IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Byb2ZpbGluZ18oY29tcHV0ZXJfcHJv Z3JhbW1pbmcpCistW2NhcmdvLXJlZl06IGh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvY2FyZ28v cmVmZXJlbmNlL21hbmlmZXN0Lmh0bWwjdGhlLXByb2ZpbGUtc2VjdGlvbnMKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL2F0dHJpYnV0ZS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFy Z2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw1ICswLDAgQEAK Ky0jIFRoZSBgdGFyZ2V0X2ZlYXR1cmVgIGF0dHJpYnV0ZQorLQorLTwhLS0gVE9ETzoKKy1FeHBs YWluIHRoZSBgI1t0YXJnZXRfZmVhdHVyZV1gIGF0dHJpYnV0ZQorLS0tPgorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1 cmUvZmVhdHVyZXMubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0 LWZlYXR1cmUvZmVhdHVyZXMubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzICswLDAgQEAKKy0j IEVuYWJsaW5nIHRhcmdldCBmZWF0dXJlcworLQorLU5vdCBhbGwgcHJvY2Vzc29ycyBvZiBhIGNl cnRhaW4gYXJjaGl0ZWN0dXJlIHdpbGwgaGF2ZSBTSU1EIHByb2Nlc3NpbmcgdW5pdHMsCistYW5k IHVzaW5nIGEgU0lNRCBpbnN0cnVjdGlvbiB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIHdpbGwgdHJp Z2dlciB1bmRlZmluZWQgYmVoYXZpb3IuCistCistVG8gYWxsb3cgYnVpbGRpbmcgc2FmZSwgcG9y dGFibGUgcHJvZ3JhbXMsIHRoZSBSdXN0IGNvbXBpbGVyIHdpbGwgKipub3QqKiwgYnkgZGVmYXVs dCwKKy1nZW5lcmF0ZSBhbnkgc29ydCBvZiB2ZWN0b3IgaW5zdHJ1Y3Rpb25zLCB1bmxlc3MgaXQg Y2FuIHN0YXRpY2FsbHkgZGV0ZXJtaW5lCistdGhleSBhcmUgc3VwcG9ydGVkLiBGb3IgZXhhbXBs ZSwgb24gQU1ENjQsIFNTRTIgc3VwcG9ydCBpcyBhcmNoaXRlY3R1cmFsbHkgZ3VhcmFudGVlZC4K Ky1UaGUgYHg4Nl82NC1hcHBsZS1kYXJ3aW5gIHRhcmdldCBlbmFibGVzIHVwIHRvIFNTU0UzLiBU aGUgZ2V0IGEgZGVmaW50aXZlIGxpc3Qgb2YKKy13aGljaCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBi eSBkZWZhdWx0IG9uIHZhcmlvdXMgcGxhdGZvcm1zLCByZWZlciB0byB0aGUgdGFyZ2V0Cistc3Bl Y2lmaWNhdGlvbnMgW2luIHRoZSBjb21waWxlcidzIHNvdXJjZSBjb2RlXVt0YXJnZXRzXS4KKy0K Ky1bdGFyZ2V0c106IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC90cmVlL21hc3Rl ci9zcmMvbGlicnVzdGNfdGFyZ2V0L3NwZWMKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lubGluaW5nLm1kIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVy ZS9pbmxpbmluZy5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lubGluaW5n Lm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw1ICswLDAgQEAKKy0jIElubGluaW5nCistCistPCEt LSBUT0RPOgorLUV4cGxhaW4gaG93IHRoZSBgI1t0YXJnZXRfZmVhdHVyZV1gIGF0dHJpYnV0ZSBp bnRlcmFjdHMgd2l0aCBpbmxpbmluZworLS0tPgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcHJhY3RpY2UubWQg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL3ByYWN0aWNlLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcHJhY3Rp Y2UubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDMxICswLDAgQEAKKy0jIFRhcmdldCBmZWF0dXJl cyBpbiBwcmFjdGljZQorLQorLVVzaW5nIGBSVVNURkxBR1NgIHdpbGwgYWxsb3cgdGhlIGNyYXRl IGJlaW5nIGNvbXBpbGVkLCBhcyB3ZWxsIGFzIGFsbCBpdHMKKy10cmFuc2l0aXZlIGRlcGVuZGVu Y2llcyB0byB1c2UgY2VydGFpbiB0YXJnZXQgZmVhdHVyZXMuCistCistQSB0ZWhuaXF1ZSB1c2Vk IHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvciBhdCBydW50aW1lIGlzIHRvIGNvbXBpbGUgYW5k Cistc2hpcCBtdWx0aXBsZSBiaW5hcmllcywgZWFjaCBjb21waWxlZCB3aXRoIGEgY2VydGFpbiBz ZXQgb2YgZmVhdHVyZXMuCistVGhpcyBtaWdodCBub3QgYmUgZmVhc2libGUgaW4gc29tZSBjYXNl cywgYW5kIGNhbiBxdWlja2x5IGdldCBvdXQgb2YgaGFuZAorLWFzIG1vcmUgYW5kIG1vcmUgdmVj dG9yIGV4dGVuc2lvbnMgYXJlIGFkZGVkIHRvIGFuIGFyY2hpdGVjdHVyZS4KKy0KKy1SdXN0IGNh biBiZSBtb3JlIGZsZXhpYmxlOiB5b3UgY2FuIGJ1aWxkIGEgc2luZ2xlIGJpbmFyeS9saWJyYXJ5 IHdoaWNoIGF1dG9tYXRpY2FsbHkKKy1waWNrcyB0aGUgYmVzdCBzdXBwb3J0ZWQgdmVjdG9yIGlu c3RydWN0aW9ucyBkZXBlbmRpbmcgb24gdGhlIGhvc3QgbWFjaGluZS4KKy1UaGUgdHJpY2sgY29u c2lzdHMgb2YgbW9ub21vcnBoaXppbmcgcGFydHMgb2YgdGhlIGNvZGUgZHVyaW5nIGJ1aWxkaW5n LCBhbmQgdGhlbgorLXVzaW5nIHJ1bi10aW1lIGZlYXR1cmUgZGV0ZWN0aW9uIHRvIHNlbGVjdCB0 aGUgcmlnaHQgY29kZSBwYXRoIHdoZW4gcnVubmluZy4KKy0KKy08IS0tIFRPRE8KKy1FeHBsYWlu IGhvdyB0byBjcmVhdGUgZWZmaWNpZW50IGZ1bmN0aW9ucyB0aGF0IGRpc3BhdGNoIHRvIGRpZmZl cmVudAorLWltcGxlbWVudGF0aW9ucyBhdCBydW4tdGltZSB3aXRob3V0IGlzc3VlcyAoZS5nLiB1 c2luZyBgI1tpbmxpbmUoYWx3YXlzKV1gIGZvcgorLXRoZSBpbXBscywgd3JhcHBpbmcgaW4gYCNb dGFyZ2V0X2ZlYXR1cmVdYCwgYW5kIHRoZSB3cmFwcGluZyB0aG9zZSBpbiBhIGZ1bmN0aW9uCist dGhhdCBkb2VzIHJ1bi10aW1lIGZlYXR1cmUgZGV0ZWN0aW9uKS4KKy0tLT4KKy0KKy0qKk5PVEUq KiAoeDg2IHNwZWNpZmljKTogYmVjYXVzZSB0aGUgQVZYICgyNTYtYml0KSByZWdpc3RlcnMgZXh0 ZW5kIHRoZSBleGlzdGluZworLVNTRSAoMTI4LWJpdCkgcmVnaXN0ZXJzLCBtaXhpbmcgU1NFIGFu ZCBBVlggaW5zdHJ1Y3Rpb25zIGluIGEgcHJvZ3JhbSBjYW4gY2F1c2UKKy1wZXJmb3JtYW5jZSBp c3N1ZXMuCistCistVGhlIHNvbHV0aW9uIGlzIHRvIGNvbXBpbGUgYWxsIGNvZGUsIGV2ZW4gdGhl IGNvZGUgd3JpdHRlbiB3aXRoIDEyOC1iaXQgdmVjdG9ycywKKy13aXRoIHRoZSBBVlggdGFyZ2V0 IGZlYXR1cmUgZW5hYmxlZC4gVGhpcyB3aWxsIGNhdXNlIHRoZSBjb21waWxlciB0byBwcmVmaXgg dGhlCistZ2VuZXJhdGVkIGluc3RydWN0aW9ucyB3aXRoIHRoZSBbVkVYXSBwcmVmaXguCistCist W1ZFWF06IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZFWF9wcmVmaXgKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1m ZWF0dXJlL3J1bnRpbWUubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJn ZXQtZmVhdHVyZS9ydW50aW1lLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw1ICswLDAgQEAKKy0j IERldGVjdGluZyBob3N0IGZlYXR1cmVzIGF0IHJ1bnRpbWUKKy0KKy08IS0tIFRPRE86CistRXhw bGFpbiBjb3N0IChob3cgaXQgd29ya3MpLgorLS0tPgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdz Lm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQt ZmVhdHVyZS9ydXN0ZmxhZ3MubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9y dXN0ZmxhZ3MubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDc3ICswLDAgQEAKKy0jIFVzaW5nIFJV U1RGTEFHUworLQorLU9uZSBvZiB0aGUgZWFzaWVzdCB3YXlzIHRvIGJlbmVmaXQgZnJvbSBTSU1E IGlzIHRvIGFsbG93IHRoZSBjb21waWxlcgorLXRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgY2VydGFp biB2ZWN0b3IgaW5zdHJ1Y3Rpb24gZXh0ZW5zaW9ucy4KKy0KKy1UaGUgZW52aXJvbm1lbnQgdmFy aWFibGUgYFJVU1RGTEFHU2AgY2FuIGJlIHVzZWQgdG8gcGFzcyBvcHRpb25zIGZvciBjb2RlCist Z2VuZXJhdGlvbiB0byB0aGUgUnVzdCBjb21waWxlci4gVGhlc2UgZmxhZ3Mgd2lsbCBhZmZlY3Qg KiphbGwqKiBjb21waWxlZCBjcmF0ZXMuCistCistVGhlcmUgYXJlIHR3byBmbGFncyB3aGljaCBj YW4gYmUgdXNlZCB0byBlbmFibGUgc3BlY2lmaWMgdmVjdG9yIGV4dGVuc2lvbnM6CistCistIyMg dGFyZ2V0LWZlYXR1cmUKKy0KKy0tIFN5bnRheDogYC1DIHRhcmdldC1mZWF0dXJlPTxmZWF0dXJl cz5gCistCistLSBQcm92aWRlcyB0aGUgY29tcGlsZXIgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBz ZXQgb2YgaW5zdHJ1Y3Rpb24gZXh0ZW5zaW9ucworLSAgdG8gZW5hYmxlLgorLQorLSAgKipFeGFt cGxlKio6IFVzZSBgLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTMsK2F2eGAgdG8gZW5hYmxlIGdlbmVy YXRpbmcgaW5zdHJ1Y3Rpb25zCistICBmb3IgW1N0cmVhbWluZyBTSU1EIEV4dGVuc2lvbnMgM10o aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU1NFMykgYW5kCistICBbQWR2YW5jZWQgVmVj dG9yIEV4dGVuc2lvbnNdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FkdmFuY2VkX1Zl Y3Rvcl9FeHRlbnNpb25zKS4KKy0KKy0tIFRvIGxpc3QgdGFyZ2V0IHRyaXBsZXMgZm9yIGFsbCB0 YXJnZXRzIHN1cHBvcnRlZCBieSBSdXN0LCB1c2U6CistCistICBgYGBzaAorLSAgcnVzdGMgLS1w cmludCB0YXJnZXQtbGlzdAorLSAgYGBgCistCistLSBUbyBsaXN0IGFsbCBzdXBwb3J0IHRhcmdl dCBmZWF0dXJlcyBmb3IgYSBjZXJ0YWluIHRhcmdldCB0cmlwbGUsIHVzZToKKy0KKy0gIGBgYHNo CistICBydXN0YyAtLXRhcmdldD0ke1RSSVBMRX0gLS1wcmludCB0YXJnZXQtZmVhdHVyZXMKKy0g IGBgYAorLQorLS0gTm90ZSB0aGF0IGFsbCBDUFUgZmVhdHVyZXMgYXJlIGluZGVwZW5kZW50LCBh bmQgd2lsbCBoYXZlIHRvIGJlIGVuYWJsZWQgaW5kaXZpZHVhbGx5LgorLQorLSAgKipFeGFtcGxl Kio6IFNldHRpbmcgYC1DIHRhcmdldC1mZWF0dXJlPSthdngyYCB3aWxsIF9ub3RfIGVuYWJsZSBg Zm1hYCwgZXZlbiB0aG91Z2gKKy0gIGFsbCBDUFVzIHdoaWNoIHN1cHBvcnQgQVZYMiBhbHNvIHN1 cHBvcnQgRk1BLiBUbyBlbmFibGUgYm90aCwgb25lIGhhcyB0byB1c2UKKy0gIGAtQyB0YXJnZXQt ZmVhdHVyZT0rYXZ4MiwrZm1hYAorLQorLS0gU29tZSBmZWF0dXJlcyBhbHNvIGRlcGVuZCBvbiBv dGhlciBmZWF0dXJlcywgd2hpY2ggbmVlZCB0byBiZSBlbmFibGVkIGZvciB0aGUKKy0gIHRhcmdl dCBpbnN0cnVjdGlvbnMgdG8gYmUgZ2VuZXJhdGVkLgorLQorLSAgKipFeGFtcGxlKio6IFVubGVz cyBgdjdgIGlzIHNwZWNpZmllZCBhcyB0aGUgdGFyZ2V0IENQVSAoc2VlIGJlbG93KSwgdG8gZW5h YmxlCistICBORU9OIG9uIEFSTSBpdCBpcyBuZWNlc3NhcnkgdG8gdXNlIGAtQyB0YXJnZXQtZmVh dHVyZT0rdjcsK25lb25gLgorLQorLSMjIHRhcmdldC1jcHUKKy0KKy0tIFN5bnRheDogYC1DIHRh cmdldC1jcHU9PGNwdT5gCistCistLSBTZXRzIHRoZSBpZGVudGlmaWVyIG9mIGEgQ1BVIGZhbWls eSAvIG1vZGVsIGZvciB3aGljaCB0byBidWlsZCBhbmQgb3B0aW1pemUgdGhlIGNvZGUuCistCist ICAqKkV4YW1wbGUqKjogYFJVU1RGTEFHUz0nLUMgdGFyZ2V0LWNwdT1jb3J0ZXgtYTc1J2AKKy0K Ky0tIFRvIGxpc3QgYWxsIHN1cHBvcnRlZCB0YXJnZXQgQ1BVcyBmb3IgYSBjZXJ0YWluIHRhcmdl dCB0cmlwbGUsIHVzZToKKy0KKy0gIGBgYHNoCistICBydXN0YyAtLXRhcmdldD0ke1RSSVBMRX0g LS1wcmludCB0YXJnZXQtY3B1cworLSAgYGBgCistCistICAqKkV4YW1wbGUqKjoKKy0KKy0gIGBg YHNoCistICBydXN0YyAtLXRhcmdldD1pNjg2LXBjLXdpbmRvd3MtbXN2YyAtLXByaW50IHRhcmdl dC1jcHVzCistICBgYGAKKy0KKy0tIFRoZSBjb21waWxlciB3aWxsIHRyYW5zbGF0ZSB0aGlzIGlu dG8gYSBsaXN0IG9mIHRhcmdldCBmZWF0dXJlcy4gVGhlcmVmb3JlLAorLSAgaW5kaXZpZHVhbCBm ZWF0dXJlIGNoZWNrcyAoYCNbY2ZnKHRhcmdldF9mZWF0dXJlID0gIi4uLiIpXWApIHdpbGwgc3Rp bGwKKy0gIHdvcmsgcHJvcGVybHkuCistCistLSBJdCB3aWxsIGNhdXNlIHRoZSBjb2RlIGdlbmVy YXRvciB0byBvcHRpbWl6ZSB0aGUgZ2VuZXJhdGVkIGNvZGUgZm9yIHRoYXQKKy0gIHNwZWNpZmlj IENQVSBtb2RlbC4KKy0KKy0tIFVzaW5nIGBuYXRpdmVgIGFzIHRoZSBDUFUgbW9kZWwgd2lsbCBj YXVzZSBSdXN0IHRvIGdlbmVyYXRlIGFuZCBvcHRpbWl6ZSBjb2RlCistICBmb3IgdGhlIENQVSBy dW5uaW5nIHRoZSBjb21waWxlci4gSXQgaXMgdXNlZnVsIHdoZW4gYnVpbGRpbmcgcHJvZ3JhbXMg d2hpY2ggeW91CistICBwbGFuIHRvIG9ubHkgdXNlIGxvY2FsbHkuIFRoaXMgc2hvdWxkIG5ldmVy IGJlIHVzZWQgd2hlbiB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zCistICBhcmUgbWVhbnQgdG8gYmUg cnVuIG9uIG90aGVyIGNvbXB1dGVycywgc3VjaCBhcyB3aGVuIHBhY2thZ2luZyBmb3IgZGlzdHJp YnV0aW9uCistICBvciBjcm9zcy1jb21waWxpbmcuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9wcy5tZAorZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9wcy5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNzYg KzAsMCBAQAorLSMgVmVydGljYWwgYW5kIGhvcml6b250YWwgb3BlcmF0aW9ucworLQorLUluIFNJ TUQgdGVybWlub2xvZ3ksIGVhY2ggdmVjdG9yIGhhcyBhIGNlcnRhaW4gIndpZHRoIiAobnVtYmVy IG9mIGxhbmVzKS4KKy1BIHZlY3RvciBwcm9jZXNzb3IgaXMgYWJsZSB0byBwZXJmb3JtIHR3byBr aW5kcyBvZiBvcGVyYXRpb25zIG9uIGEgdmVjdG9yOgorLQorLS0gVmVydGljYWwgb3BlcmF0aW9u czoKKy0gIG9wZXJhdGUgb24gdHdvIHZlY3RvcnMgb2YgdGhlIHNhbWUgd2lkdGgsIHJlc3VsdCBo YXMgc2FtZSB3aWR0aAorLQorLSoqRXhhbXBsZSoqOiB2ZXJ0aWNhbCBhZGRpdGlvbiBvZiB0d28g YGYzMng0YCB2ZWN0b3JzCistCistICAgICAgJTAgICAgID09IHwgMiB8IC0zLjUgfCAgMCB8IDcg fAorLSAgICAgICAgICAgICAgICAgICsgICAgICsgICAgICsgICArCistICAgICAgJTEgICAgID09 IHwgNCB8ICAxLjUgfCAtMSB8IDAgfAorLSAgICAgICAgICAgICAgICAgID0gICAgID0gICAgID0g ICA9CistICAgICUwICsgJTEgID09IHwgNiB8ICAtMiAgfCAtMSB8IDcgfAorLQorLS0gSG9yaXpv bnRhbCBvcGVyYXRpb25zOgorLSAgcmVkdWNlIHRoZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyBp biBzb21lIHdheSwKKy0gIHRoZSByZXN1bHQncyBlbGVtZW50cyBjb21iaW5lIGluZm9ybWF0aW9u IGZyb20gdGhlIHR3byBvcmlnaW5hbCBvbmVzCistCistKipFeGFtcGxlKio6IGhvcml6b250YWwg YWRkaXRpb24gb2YgdHdvIGB1NjR4MmAgdmVjdG9ycworLQorLSAgICAgICUwICAgICA9PSB8IDEg fCAgMyB8CistICAgICAgICAgICAgICAgICAg4pSU4pSAK+KUgOKUgOKUgOKUmAorLSAgICAgICAg ICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIOKUggorLSAgICAgICUxICAgICA9PSB8IDQgfCAtMSB8ICDilIIKKy0gICAg ICAgICAgICAgICAgICDilJTilIAr4pSA4pSA4pSYICAgIOKUggorLSAgICAgICAgICAgICAgICAg ICAg4pSU4pSA4pSA4pSA4pSQICAg4pSCCistICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAg 4pSCCistICAgICAgICAgICAgICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSC4pSA4pSA4pSA4pSY CistICAgICAgICAgICAgICAgICAg4pa8ICAgICDilrwKKy0gICAgJTAgKyAlMSAgPT0gfCA0IHwg ICAzIHwKKy0KKy0jIyBQZXJmb3JtYW5jZSBjb25zaWRlcmF0aW9uIG9mIGhvcml6b250YWwgb3Bl cmF0aW9ucworLQorLVRoZSByZXN1bHQgb2YgdmVydGljYWwgb3BlcmF0aW9ucywgbGlrZSB2ZWN0 b3IgbmVnYXRpb246IGAtYWAsIGZvciBhIGdpdmVuIGxhbmUsCistZG9lcyBub3QgZGVwZW5kIG9u IHRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbiBmb3IgdGhlIG90aGVyIGxhbmVzLiBUaGUgcmVz dWx0Cistb2YgaG9yaXpvbnRhbCBvcGVyYXRpb25zLCBsaWtlIHRoZSB2ZWN0b3IgYHN1bWAgcmVk dWN0aW9uOiBgYS5zdW0oKWAsIGRlcGVuZHMgb24KKy10aGUgdmFsdWUgb2YgYWxsIHZlY3RvciBs YW5lcy4KKy0KKy1JbiB2aXJ0dWFsbHkgYWxsIGFyY2hpdGVjdHVyZXMgdmVydGljYWwgb3BlcmF0 aW9ucyBhcmUgZmFzdCwgd2hpbGUgaG9yaXpvbnRhbAorLW9wZXJhdGlvbnMgYXJlLCBieSBjb21w YXJpc29uLCB2ZXJ5IHNsb3cuCistCistQ29uc2lkZXIgdGhlIGZvbGxvd2luZyB0d28gZnVuY3Rp b25zIGZvciBjb21wdXRpbmcgdGhlIHN1bSBvZiBhbGwgYGYzMmAgdmFsdWVzCistaW4gYSBzbGlj ZToKKy0KKy1gYGBydXN0CistZm4gZmFzdF9zdW0oeDogJltmMzJdKSAtPiBmMzIgeworLSAgICBh c3NlcnQhKHgubGVuKCkgJSA0ID09IDApOworLSAgICBsZXQgbXV0IHN1bSA9IGYzMng0OjpzcGxh dCgwLik7IC8vIFswLiwgMC4sIDAuLCAwLl0KKy0gICAgZm9yIGkgaW4gKDAuLngubGVuKCkpLnN0 ZXBfYnkoNCkgeworLSAgICAgICAgc3VtICs9IGYzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgm eFtpLi5dKTsKKy0gICAgfQorLSAgICBzdW0uc3VtKCkKKy19CistCistZm4gc2xvd19zdW0oeDog JltmMzJdKSAtPiBmMzIgeworLSAgICBhc3NlcnQhKHgubGVuKCkgJSA0ID09IDApOworLSAgICBs ZXQgbXV0IHN1bTogZjMyID0gMC47CistICAgIGZvciBpIGluICgwLi54LmxlbigpKS5zdGVwX2J5 KDQpIHsKKy0gICAgICAgIHN1bSArPSBmMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnhbaS4u XSkuc3VtKCk7CistICAgIH0KKy0gICAgc3VtCistfQorLWBgYAorLQorLVRoZSBpbm5lciBsb29w IG92ZXIgdGhlIHNsaWNlIGlzIHdoZXJlIHRoZSBidWxrIG9mIHRoZSB3b3JrIGFjdHVhbGx5IGhh cHBlbnMuCistVGhlcmUsIHRoZSBgZmFzdF9zdW1gIGZ1bmN0aW9uIHBlcmZvcm0gdmVydGljYWwg b3BlcmF0aW9ucyBpbnRvIGEgdmVjdG9yLCBkb2luZworLWEgc2luZ2xlIGhvcml6b250YWwgcmVk dWN0aW9uIGF0IHRoZSBlbmQsIHdoaWxlIHRoZSBgc2xvd19zdW1gIGZ1bmN0aW9uIHBlcmZvcm1z CistaG9yaXpvbnRhbCB2ZWN0b3Igb3BlcmF0aW9ucyBpbnNpZGUgb2YgdGhlIGxvb3AuCistCist T24gYWxsIHdpZGVseS11c2VkIGFyY2hpdGVjdHVyZXMsIGBmYXN0X3N1bWAgaXMgYSBsYXJnZSBj b25zdGFudCBmYWN0b3IgZmFzdGVyCistdGhhbiBgc2xvd19zdW1gLiBZb3UgY2FuIHJ1biB0aGUg W3NsaWNlX3N1bV0oKSBleGFtcGxlIGFuZCBzZWUgZm9yIHlvdXJzZWxmLiBPbgorLXRoZSBwYXJ0 aWN1bGFyIG1hY2hpbmUgdGVzdGVkIHRoZXJlIHRoZSBhbGdvcml0aG0gdXNpbmcgdGhlIGhvcml6 b250YWwgdmVjdG9yCistYWRkaXRpb24gaXMgMi43eCBzbG93ZXIgdGhhbiB0aGUgb25lIHVzaW5n IHZlcnRpY2FsIHZlY3RvciBvcGVyYXRpb25zIQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcnVzdGZtdC50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9ydXN0Zm10LnRvbWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9ydXN0Zm10LnRvbWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDUg KzAsMCBAQAorLW1heF93aWR0aCA9IDExMAorLXVzZV9zbWFsbF9oZXVyaXN0aWNzID0gIk1heCIK Ky13cmFwX2NvbW1lbnRzID0gdHJ1ZQorLWVkaXRpb24gPSAiMjAxOCIKKy1lcnJvcl9vbl9saW5l X292ZXJmbG93ID0gdHJ1ZQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMzA4ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB0aGUgU2ltZDxbVDsgTl0+IEFQ SXMKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgYml0bWFzazsKKy1wdWIoY3JhdGUpIG1vZCBjYXN0 OworLSNbbWFjcm9fdXNlXQorLW1vZCBjbXA7CistI1ttYWNyb191c2VdCistbW9kIGRlZmF1bHQ7 CistI1ttYWNyb191c2VdCistbW9kIGZtdDsKKy0jW21hY3JvX3VzZV0KKy1tb2QgZnJvbTsKKy0j W21hY3JvX3VzZV0KKy1tb2QgaGFzaDsKKy0jW21hY3JvX3VzZV0KKy1tb2QgbWF0aDsKKy0jW21h Y3JvX3VzZV0KKy1tb2QgbWluaW1hbDsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgb3BzOworLSNbbWFj cm9fdXNlXQorLW1vZCBwdHI7CistI1ttYWNyb191c2VdCistbW9kIHJlZHVjdGlvbnM7CistI1tt YWNyb191c2VdCistbW9kIHNlbGVjdDsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgc2h1ZmZsZTsKKy0j W21hY3JvX3VzZV0KKy1tb2Qgc2h1ZmZsZTFfZHluOworLSNbbWFjcm9fdXNlXQorLW1vZCBzbGlj ZTsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgc3dhcF9ieXRlczsKKy0jW21hY3JvX3VzZV0KKy1tb2Qg Yml0X21hbmlwOworLQorLSNbY2ZnKGZlYXR1cmUgPSAiaW50b19iaXRzIildCistcHViKGNyYXRl KSBtb2QgaW50b19iaXRzOworLQorLW1hY3JvX3J1bGVzISBpbXBsX2kgeworLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50 CistICAgICB8ICRpZWxlbV90eTppZGVudCwgJGliaXRtYXNrX3R5OmlkZW50IHwgJHRlc3RfdHQ6 dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgorLSAgICAgfCBGcm9tOiAkKCRmcm9tX3ZlY190eTpp ZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKKy0gICAgICAgIGltcGxfbWluaW1hbF9p dWYhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0 CistICAgICAgICAgICAgICAgICAgICAgICAgICB8ICQoJGVsZW1faWRzKSwqIHwgJCgjWyRkb2Nd KSopOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9h cml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Cist ICAgICAgICBpbXBsX29wc192ZWN0b3JfYml0d2lzZSEoCistICAgICAgICAgICAgWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoISgwIGFzICRlbGVtX3R5KSwgMCkK Ky0gICAgICAgICk7CistICAgICAgICBpbXBsX29wc19zY2FsYXJfYml0d2lzZSEoCistICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoISgwIGFz ICRlbGVtX3R5KSwgMCkKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX29wc192ZWN0b3Jfc2hp ZnRzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAg ICBpbXBsX29wc19zY2FsYXJfc2hpZnRzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29wc192ZWN0b3Jfcm90YXRlcyEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfdmVj dG9yX25lZyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAg ICAgICAgaW1wbF9vcHNfdmVjdG9yX2ludF9taW5fbWF4ISgKKy0gICAgICAgICAgICBbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAg IGltcGxfcmVkdWN0aW9uX2ludGVnZXJfYXJpdGhtZXRpYyEoCistICAgICAgICAgICAgWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAg ICk7CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9taW5fbWF4ISgKKy0gICAgICAgICAgICBbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAg ICAgKTsKKy0gICAgICAgIGltcGxfcmVkdWN0aW9uX2JpdHdpc2UhKAorLSAgICAgICAgICAgIFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAg ICAgICAgICAgfCAofHh8eyB4IGFzICRlbGVtX3R5IH0pIHwgKCEoMCBhcyAkZWxlbV90eSksIDAp CistICAgICAgICApOworLSAgICAgICAgaW1wbF9mbXRfZGVidWchKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X2xvd2VyX2hleCEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1w bF9mbXRfdXBwZXJfaGV4IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7CistICAgICAgICBpbXBsX2ZtdF9vY3RhbCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9mbXRfYmluYXJ5IShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2Zyb21fYXJyYXkh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEsIDEpKTsKKy0g ICAgICAgIGltcGxfZnJvbV92ZWN0b3JzISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICQoJGZyb21fdmVjX3R5KSwqCistICAgICAgICAp OworLSAgICAgICAgaW1wbF9kZWZhdWx0IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2hhc2ghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2xpY2VfZnJvbV9zbGljZSEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9z bGljZV93cml0ZV90b19zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9zaHVmZmxl MV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAg ICAgIGltcGxfY21wX3BhcnRpYWxfZXEhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDAsIDEpCistICAgICAgICApOworLSAgICAgICAg aW1wbF9jbXBfZXEhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwg KDAsIDEpKTsKKy0gICAgICAgIGltcGxfY21wX3ZlcnRpY2FsISgKKy0gICAgICAgICAgICBbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5LCBmYWxzZSwgKDEsIDApIHwgJHRl c3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX29yZCEoWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBf b3JkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgwLCAxKSk7 CistICAgICAgICBpbXBsX2JpdG1hc2shKCR0dXBsZV9pZCB8ICRpYml0bWFza190eSB8ICgtMSwg MCkgfCAkdGVzdF90dCk7CistCistICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1fdHksICRtYXNr X3R5LCAkdHVwbGVfaWQsICgxLCAyKSB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIHRlc3RfY21wX3Bh cnRpYWxfb3JkX2ludCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OworLSAgICAgICAgdGVzdF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgfQorLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF91IHsK Ky0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAk bWFza190eTppZGVudAorLSAgICAgfCAkaWVsZW1fdHk6aWRlbnQsICRpYml0bWFza190eTppZGVu dCB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCoKKy0gICAgIHwgRnJvbTogJCgk ZnJvbV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7CistICAgICAgICBp bXBsX21pbmltYWxfaXVmIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1f dHkgfCAkdGVzdF90dAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAkKCRlbGVtX2lkcyks KiB8ICQoI1skZG9jXSkqKTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9hcml0aG1ldGljIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBs X29wc19zY2FsYXJfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2JpdHdpc2UhKAorLSAgICAgICAg ICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKCEoMCBhcyAk ZWxlbV90eSksIDApCistICAgICAgICApOworLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2JpdHdp c2UhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0 X3R0IHwgKCEoMCBhcyAkZWxlbV90eSksIDApCistICAgICAgICApOworLSAgICAgICAgaW1wbF9v cHNfdmVjdG9yX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQpOworLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX3JvdGF0 ZXMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAg IGltcGxfb3BzX3ZlY3Rvcl9pbnRfbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBpbXBs X3JlZHVjdGlvbl9pbnRlZ2VyX2FyaXRobWV0aWMhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICApOwor LSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICk7 CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAg ICAgIHwgKHx4fHsgeCBhcyAkZWxlbV90eSB9KSB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQorLSAg ICAgICAgKTsKKy0gICAgICAgIGltcGxfZm10X2RlYnVnIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2ZtdF9sb3dlcl9oZXghKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10 X3VwcGVyX2hleCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwor LSAgICAgICAgaW1wbF9mbXRfb2N0YWwhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X2JpbmFyeSEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9mcm9tX2FycmF5IShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLCAxKSk7CistICAgICAg ICBpbXBsX2Zyb21fdmVjdG9ycyEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3ZlY190eSksKgorLSAgICAgICAgKTsKKy0g ICAgICAgIGltcGxfZGVmYXVsdCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOworLSAgICAgICAgaW1wbF9oYXNoIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVf aWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3NsaWNlX2Zyb21fc2xpY2UhKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2xpY2Vf d3JpdGVfdG9fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2h1ZmZsZTFfZHlu IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBp bXBsX2NtcF9wYXJ0aWFsX2VxISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLCAwKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxf Y21wX2VxIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgwLCAx KSk7CistICAgICAgICBpbXBsX2NtcF92ZXJ0aWNhbCEoCistICAgICAgICAgICAgWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSwgZmFsc2UsICgxLCAwKSB8ICR0ZXN0X3R0 CistICAgICAgICApOworLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9vcmQhKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21wX29yZCEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkpOworLSAg ICAgICAgaW1wbF9iaXRtYXNrISgkdHVwbGVfaWQgfCAkaWJpdG1hc2tfdHkgfCAoJGllbGVtX3R5 OjptYXhfdmFsdWUoKSwgMCkgfAorLSAgICAgICAgICAgICAgICAgICAgICAkdGVzdF90dCk7Cist CistICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1fdHksICRtYXNrX3R5LCAkdHVwbGVfaWQsICgx LCAyKSB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIHRlc3RfY21wX3BhcnRpYWxfb3JkX2ludCEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgdGVzdF9z aHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK Ky0gICAgfQorLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mIHsKKy0gICAgKFskZWxlbV90eTpp ZGVudDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFza190eTppZGVudAorLSAg ICAgfCAkaWVsZW1fdHk6aWRlbnQgfCAkdGVzdF90dDp0dCB8ICQoJGVsZW1faWRzOmlkZW50KSwq CistICAgICB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0p KikgPT4geworLSAgICAgICAgaW1wbF9taW5pbWFsX2l1ZiEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgIHwgJCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKik7CistICAgICAgICBpbXBsX29wc192 ZWN0b3JfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQpOworLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9u ZWchKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAg IGltcGxfb3BzX3ZlY3Rvcl9mbG9hdF9taW5fbWF4ISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAgIGlt cGxfcmVkdWN0aW9uX2Zsb2F0X2FyaXRobWV0aWMhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfcmVkdWN0aW9u X21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAgICAgaW1wbF9mbXRfZGVi dWchKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAg IGltcGxfZnJvbV9hcnJheSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQgfCAoMS4sIDEuKSk7CistICAgICAgICBpbXBsX2Zyb21fdmVjdG9ycyEoCistICAgICAgICAg ICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3Zl Y190eSksKgorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfZGVmYXVsdCEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfcGFydGlh bF9lcSEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQgfCAoMS4sIDAuKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfc2xpY2VfZnJvbV9z bGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAg ICAgaW1wbF9zbGljZV93cml0ZV90b19zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0KKy0gICAgICAgIGltcGxfZmxvYXRf Y29uc3RzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQpOworLSAgICAgICAgaW1wbF9m bG9hdF9jYXRlZ29yeSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSk7 CistCistICAgICAgICAvLyBmbG9hdGluZy1wb2ludCBtYXRoCistICAgICAgICBpbXBsX21hdGhf ZmxvYXRfYWJzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Cist ICAgICAgICBpbXBsX21hdGhfZmxvYXRfY29zIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVf aWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX21hdGhfZmxvYXRfZXhwIShbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX21hdGhfZmxv YXRfbG4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAg ICAgIGltcGxfbWF0aF9mbG9hdF9tdWxfYWRkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVf aWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX21hdGhfZmxvYXRfbXVsX2FkZGUhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfbWF0 aF9mbG9hdF9wb3dmIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 CistICAgICAgICBpbXBsX21hdGhfZmxvYXRfcmVjcHJlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX21hdGhfZmxvYXRfcnNxcnRlIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBs X21hdGhfZmxvYXRfc2luIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7CistICAgICAgICBpbXBsX21hdGhfZmxvYXRfc3FydCEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3NxcnRlIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBs X2NtcF92ZXJ0aWNhbCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkLCAkbWFza190eSwgZmFsc2UsICgxLiwgMC4pCistICAgICAgICAgICAgICAgIHwgJHRlc3Rf dHQKKy0gICAgICAgICk7CistCistICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1fdHksICRtYXNr X3R5LCAkdHVwbGVfaWQsICgxLiwgMi4pIHwgJHRlc3RfdHQpOworLSAgICAgICAgdGVzdF9yZWR1 Y3Rpb25fZmxvYXRfbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICB0ZXN0X3NodWZmbGUx X2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICB9 CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX20geworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQKKy0gICAgIHwgJGllbGVtX3R5OmlkZW50LCAk aWJpdG1hc2tfdHk6aWRlbnQKKy0gICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVu dCksKiB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqCistICAgICB8ICQoI1skZG9jOm1l dGFdKSopID0+IHsKKy0gICAgICAgIGltcGxfbWluaW1hbF9tYXNrISgKKy0gICAgICAgICAgICBb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAg ICAgICAgICAgIHwgJCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKgorLSAgICAgICAgKTsKKy0g ICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9tYXNrX2JpdHdpc2UhKAorLSAgICAgICAgICAgIFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKHRydWUsIGZhbHNlKQorLSAg ICAgICAgKTsKKy0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9tYXNrX2JpdHdpc2UhKAorLSAgICAg ICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKHRydWUs IGZhbHNlKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfcmVkdWN0aW9uX2JpdHdpc2UhKAor LSAgICAgICAgICAgIFtib29sOyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRl c3RfdHQKKy0gICAgICAgICAgICAgICAgfCAofHh8eyB4ICE9IDAgfSkgfCAodHJ1ZSwgZmFsc2Up CistICAgICAgICApOworLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fbWFzayEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9mbXRfZGVidWch KFtib29sOyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9m cm9tX2FycmF5ISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dAorLSAgICAgICAgICAgIHwgKGNyYXRlOjokZWxlbV90eTo6bmV3KHRydWUpLCB0 cnVlKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfZnJvbV92ZWN0b3JzISgKKy0gICAgICAg ICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICQoJGZyb21f dmVjX3R5KSwqCistICAgICAgICApOworLSAgICAgICAgaW1wbF9kZWZhdWx0IShbYm9vbDsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21wX3BhcnRpYWxf ZXEhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0 X3R0IHwgKHRydWUsIGZhbHNlKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfY21wX2VxISgK Ky0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8 ICh0cnVlLCBmYWxzZSkKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX2NtcF92ZXJ0aWNhbCEo CistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkdHVwbGVfaWQs IHRydWUsICh0cnVlLCBmYWxzZSkKKy0gICAgICAgICAgICB8ICR0ZXN0X3R0CistICAgICAgICAp OworLSAgICAgICAgaW1wbF9zZWxlY3QhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfb3JkIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2NtcF9vcmQhKAor LSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwg KGZhbHNlLCB0cnVlKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfc2h1ZmZsZTFfZHluIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBs X2JpdG1hc2shKCR0dXBsZV9pZCB8ICRpYml0bWFza190eSB8ICh0cnVlLCBmYWxzZSkgfCAkdGVz dF90dCk7CistCistICAgICAgICB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9tYXNrIShbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICB0ZXN0X3NodWZmbGUx X2R5bl9tYXNrIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Cist ICAgIH0KKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfY29uc3RfcCB7CistICAgIChbJGVsZW1f dHk6dHk7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6aWRlbnQsCist ICAgICAkdXNpemVfdHk6aWRlbnQsICRpc2l6ZV90eTppZGVudAorLSAgICAgfCAkdGVzdF90dDp0 dCB8ICQoJGVsZW1faWRzOmlkZW50KSwqCistICAgICB8IEZyb206ICQoJGZyb21fdmVjX3R5Omlk ZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4geworLSAgICAgICAgaW1wbF9taW5pbWFsX3Ah KAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHks ICR1c2l6ZV90eSwgJGlzaXplX3R5CistICAgICAgICAgICAgICAgIHwgcmVmXyB8ICR0ZXN0X3R0 IHwgJCgkZWxlbV9pZHMpLCoKKy0gICAgICAgICAgICAgICAgfCAoMSBhcyAkZWxlbV90eSwgMCBh cyAkZWxlbV90eSkgfCAkKCNbJGRvY10pKgorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfcHRy X3JlYWQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHkgfCAkdGVzdF90 dCk7CistICAgIH0KKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfbXV0X3AgeworLSAgICAoWyRl bGVtX3R5OnR5OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50 LAorLSAgICAgJHVzaXplX3R5OmlkZW50LCAkaXNpemVfdHk6aWRlbnQKKy0gICAgIHwgJHRlc3Rf dHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgorLSAgICAgfCBGcm9tOiAkKCRmcm9tX3ZlY190 eTppZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKKy0gICAgICAgIGltcGxfbWluaW1h bF9wISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNr X3R5LCAkdXNpemVfdHksICRpc2l6ZV90eQorLSAgICAgICAgICAgICAgICB8IHJlZl9tdXRfIHwg JHRlc3RfdHQgfCAkKCRlbGVtX2lkcyksKgorLSAgICAgICAgICAgICAgICB8ICgxIGFzICRlbGVt X3R5LCAwIGFzICRlbGVtX3R5KSB8ICQoI1skZG9jXSkqCistICAgICAgICApOworLSAgICAgICAg aW1wbF9wdHJfcmVhZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSB8 ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfcHRyX3dyaXRlIShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQsICRtYXNrX3R5IHwgJHRlc3RfdHQpOworLSAgICB9CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRfbWFuaXAucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21hbmlwLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9iaXRfbWFuaXAucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEyOSArMCwwIEBACistLy8h IEJpdCBtYW5pcHVsYXRpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX2JpdF9tYW5pcCB7Cist ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBSZXR1 cm5zIHRoZSBudW1iZXIgb2Ygb25lcyBpbiB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mCist ICAgICAgICAgICAgLy8vIHRoZSBsYW5lcyBvZiBgc2VsZmAuCistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgcHViIGZuIGNvdW50X29uZXMoc2VsZikgLT4gU2VsZiB7CistICAg ICAgICAgICAgICAgIHN1cGVyOjpjb2RlZ2VuOjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdHBvcChz ZWxmKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVt YmVyIG9mIHplcm9zIGluIHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YKKy0gICAgICAgICAg ICAvLy8gdGhlIGxhbmVzIG9mIGBzZWxmYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gY291bnRfemVyb3Moc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHN1cGVyOjpjb2RlZ2VuOjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdHBvcCghc2VsZikKKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiBs ZWFkaW5nIHplcm9zIGluIHRoZSBiaW5hcnkKKy0gICAgICAgICAgICAvLy8gcmVwcmVzZW50YXRp b24gb2YgdGhlIGxhbmVzIG9mIGBzZWxmYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gbGVhZGluZ196ZXJvcyhzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgc3VwZXI6OmNvZGVnZW46OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0bHooc2VsZikKKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0 cmFpbGluZyB6ZXJvcyBpbiB0aGUgYmluYXJ5CistICAgICAgICAgICAgLy8vIHJlcHJlc2VudGF0 aW9uIG9mIHRoZSBsYW5lcyBvZiBgc2VsZmAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgcHViIGZuIHRyYWlsaW5nX3plcm9zKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICBzdXBlcjo6Y29kZWdlbjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3R0eihzZWxmKQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAg ICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAg ICAgICAgICAjW2FsbG93KG92ZXJmbG93aW5nX2xpdGVyYWxzKV0KKy0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfYml0X21hbmlwPl0geworLSAgICAgICAgICAgICAgICAgICAgIyFbYWxs b3coY29uc3RfaXRlbV9tdXRhdGlvbildCistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistCistICAgICAgICAgICAgICAgICAgICBjb25zdCBMQU5FX1dJRFRIOiB1c2l6ZSA9IG1l bTo6c2l6ZV9vZjo6PCRlbGVtX3R5PigpICogODsKKy0KKy0gICAgICAgICAgICAgICAgICAgIG1h Y3JvX3J1bGVzISB0ZXN0X2Z1bmMgeworLSAgICAgICAgICAgICAgICAgICAgICAgICgkeDpleHBy LCAkZnVuYzppZGVudCkgPT4ge3sKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBhY3R1YWwgPSAkeDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbCA9 IGFjdHVhbC5yZXBsYWNlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHguZXh0cmFjdChpKS4kZnVu YygpIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBleHBlY3RlZCA9ICR4LiRmdW5jKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoYWN0dWFsLCBleHBlY3RlZCk7CistICAgICAgICAgICAgICAgICAgICAgICAg fX07CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBjb25z dCBCWVRFUzogW3U4OyA2NF0gPSBbCistICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwg MywgNCwgNSwgNiwgNywKKy0gICAgICAgICAgICAgICAgICAgICAgICA4LCA5LCAxMCwgMTEsIDEy LCAxMywgMTQsIDE1LAorLSAgICAgICAgICAgICAgICAgICAgICAgIDE2LCAxNywgMTgsIDE5LCAy MCwgMjEsIDIyLCAyMywKKy0gICAgICAgICAgICAgICAgICAgICAgICAyNCwgMjUsIDI2LCAyNywg MjgsIDI5LCAzMCwgMzEsCistICAgICAgICAgICAgICAgICAgICAgICAgMzIsIDMzLCAzNCwgMzUs IDM2LCAzNywgMzgsIDM5LAorLSAgICAgICAgICAgICAgICAgICAgICAgIDQwLCA0MSwgNDIsIDQz LCA0NCwgNDUsIDQ2LCA0NywKKy0gICAgICAgICAgICAgICAgICAgICAgICA0OCwgNDksIDUwLCA1 MSwgNTIsIDUzLCA1NCwgNTUsCistICAgICAgICAgICAgICAgICAgICAgICAgNTYsIDU3LCA1OCwg NTksIDYwLCA2MSwgNjIsIDYzLAorLSAgICAgICAgICAgICAgICAgICAgXTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgIGZuIGxvYWRfYnl0ZXMoKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBlbGVtczogJm11dCBbJGVsZW1fdHldID0gdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dCgKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJZVEVTLmFzX211dF9wdHIoKSBhcyAqbXV0ICRlbGVtX3R5 LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpsYW5lcygpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKGVsZW1zKQor LSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBjb3VudF9vbmVzKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwKSwgY291bnRfb25lcyk7CistICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KCEwKSwgY291bnRfb25lcyk7 CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jIShsb2FkX2J5dGVzKCksIGNvdW50 X29uZXMpOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBjb3VudF96ZXJvcygpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMCksIGNvdW50X3plcm9z KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoITApLCBj b3VudF96ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jIShsb2FkX2J5 dGVzKCksIGNvdW50X3plcm9zKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMy Iiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbGVhZGluZ196 ZXJvcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQo MCksIGxlYWRpbmdfemVyb3MpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEo JGlkOjpzcGxhdCgxKSwgbGVhZGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAg Ly8gc29tZSBpbXBsZW1lbnRhdGlvbnMgdXNlIGBwc2h1ZmJgIHdoaWNoIGhhcyB1bmlxdWUKKy0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWhhdmlvciB3aGVuIHRoZSA4dGggYml0IGlzIHNl dC4KKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMGIxMDAw XzAwMTApLCBsZWFkaW5nX3plcm9zKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1 bmMhKCRpZDo6c3BsYXQoITApLCBsZWFkaW5nX3plcm9zKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X2Z1bmMhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0 KDEgPDwgKExBTkVfV0lEVEggLSAxKSksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl YWRpbmdfemVyb3MKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfZnVuYyEobG9hZF9ieXRlcygpLCBsZWFkaW5nX3plcm9zKTsKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgZm4gdHJhaWxpbmdfemVyb3MoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDApLCB0cmFpbGluZ196ZXJvcyk7CistICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDEpLCB0cmFpbGluZ196 ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDBi MTAwMF8wMDEwKSwgdHJhaWxpbmdfemVyb3MpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfZnVuYyEoJGlkOjpzcGxhdCghMCksIHRyYWlsaW5nX3plcm9zKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X2Z1bmMhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6 OnNwbGF0KDEgPDwgKExBTkVfV0lEVEggLSAxKSksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRyYWlsaW5nX3plcm9zCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgdHJhaWxpbmdfemVyb3Mp OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0bWFzay5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9iaXRtYXNrLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRtYXNrLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSw3OSArMCwwIEBACistLy8hIEJpdG1hc2sgQVBJCistCistbWFjcm9f cnVsZXMhIGltcGxfYml0bWFzayB7CistICAgICgkaWQ6aWRlbnQgfCAkaWJpdG1hc2tfdHk6aWRl bnQgfCAoJHNldDpleHByLCAkY2xlYXI6ZXhwcikKKy0gICAgIHwgJHRlc3RfdHQ6dHQpID0+IHsK Ky0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gQ3JlYXRlcyBhIGJpdG1hc2sg d2l0aCB0aGUgTVNCIG9mIGVhY2ggdmVjdG9yIGxhbmUuCistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vIElmIHRoZSB2ZWN0b3IgaGFzIGxlc3MgdGhhbiA4IGxhbmVzLCB0aGUgYml0 cyB0aGF0IGRvIG5vdAorLSAgICAgICAgICAgIC8vLyBjb3JyZXNwb25kIHRvIGFueSB2ZWN0b3Ig bGFuZXMgYXJlIGNsZWFyZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGZuIGJpdG1hc2soc2VsZikgLT4gJGliaXRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAg dW5zYWZlIHsgY29kZWdlbjo6bGx2bTo6c2ltZF9iaXRtYXNrKHNlbGYuMCkgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICAj W2NmZyhub3QoCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yMTAKKy0gICAgICAgICAg ICAgICAgICAgIHRhcmdldF9lbmRpYW4gPSAiYmlnIgorLSAgICAgICAgICAgICAgICApKV0KKy0g ICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfYml0bWFzaz5dIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgZm4gYml0bWFzaygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBjbGVhciBhbGwgbGFuZXMKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0g JGlkOjpzcGxhdCgkY2xlYXIgYXMgXyk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJp dG1hc2s6ICRpYml0bWFza190eSA9IDA7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh2ZWMuYml0bWFzaygpLCBiaXRtYXNrKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBzZXQgZXZlbiBsYW5lcworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdmVj ID0gJGlkOjpzcGxhdCgkY2xlYXIgYXMgXyk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9y IGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg aSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMgPSB2ZWMu cmVwbGFjZShpLCAkc2V0IGFzIF8pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNy ZWF0ZSBiaXRtYXNrIHdpdGggZXZlbiBsYW5lcyBzZXQ6CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBiaXRtYXNrOiAkaWJpdG1hc2tfdHkgPSAwOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Yml0bWFzayB8PSAxIDw8IGk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2ZWMuYml0bWFzaygpLCBiaXRtYXNrKTsKKy0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBzZXQgb2RkIGxhbmVzCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ZWMg PSAkaWQ6OnNwbGF0KCRjbGVhciBhcyBfKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBp ICUgMiAhPSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYyA9IHZlYy5y ZXBsYWNlKGksICRzZXQgYXMgXyk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3Jl YXRlIGJpdG1hc2sgd2l0aCBvZGQgbGFuZXMgc2V0OgorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYml0bWFzazogJGliaXRtYXNrX3R5ID0gMDsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpICUgMiAhPSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJp dG1hc2sgfD0gMSA8PCBpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dmVjLmJpdG1hc2soKSwgYml0bWFzayk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g c2V0IGFsbCBsYW5lcworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNw bGF0KCRzZXQgYXMgXyk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiaXRtYXNr OiAkaWJpdG1hc2tfdHkgPSAwOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdG1hc2sgfD0g MSA8PCBpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHZlYy5iaXRtYXNrKCksIGJpdG1hc2spOworLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvY2FzdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0 LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jYXN0LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMDggKzAsMCBA QAorLS8vISBJbXBsZW1lbnRhdGlvbiBvZiBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgLgorLSMh W2FsbG93KGNsaXBweTo6bW9kdWxlX25hbWVfcmVwZXRpdGlvbnMpXQorLQorLS8vLyBOdW1lcmlj IGNhc3QgZnJvbSBgVGAgdG8gYFNlbGZgLgorLS8vLworLS8vLyA+IE5vdGU6IFRoaXMgaXMgYSB0 ZW1wb3Jhcnkgd29ya2Fyb3VuZCB1bnRpbCB0aGUgY29udmVyc2lvbiB0cmFpdHMKKy0vLy8gc3Bl Y2lmaWVkID4gaW4gW1JGQzI0ODRdIGFyZSBpbXBsZW1lbnRlZC4KKy0vLy8KKy0vLy8gTnVtZXJp YyBjYXN0IGJldHdlZW4gdmVjdG9ycyB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBsYW5lcywgc3Vj aCB0aGF0OgorLS8vLworLS8vLyAqIGNhc3RpbmcgaW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUg dHlwZXMgaGF2ZSB0aGUgc2FtZSBzaXplIChlLmcuIGBpMzJ4TmAKKy0vLy8gLT4gYHUzMnhOYCkg aXMgYSAqKm5vLW9wKiosCistLy8vCistLy8vICogY2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVn ZXIgdG8gYSBzbWFsbGVyIGludGVnZXIgKGUuZy4gYHUzMnhOYCAtPgorLS8vLyBgdTh4TmApIHdp bGwgKip0cnVuY2F0ZSoqLAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhIHNtYWxsZXIgaW50 ZWdlciB0byBhIGxhcmdlciBpbnRlZ2VyICAgKGUuZy4gYHU4eE5gIC0+CistLy8vICAgYHUzMnhO YCkgd2lsbDoKKy0vLy8gICAgKiAqKnplcm8tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyB1bnNp Z25lZCwgb3IKKy0vLy8gICAgKiAqKnNpZ24tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyBzaWdu ZWQsCistLy8vCistLy8vICogY2FzdGluZyBmcm9tIGEgZmxvYXQgdG8gYW4gaW50ZWdlciB3aWxs ICoqcm91bmQgdGhlIGZsb2F0IHRvd2FyZHMgemVybyoqLAorLS8vLworLS8vLyAqIGNhc3Rpbmcg ZnJvbSBhbiBpbnRlZ2VyIHRvIGZsb2F0IHdpbGwgcHJvZHVjZSB0aGUgZmxvYXRpbmcgcG9pbnQK Ky0vLy8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVnZXIsICoqcm91bmRpbmcgdG8gbmVhcmVz dCwgdGllcyB0byBldmVuKiosCistLy8vCistLy8vICogY2FzdGluZyBmcm9tIGFuIGBmMzJgIHRv IGFuIGBmNjRgIGlzIHBlcmZlY3QgYW5kIGxvc3NsZXNzLAorLS8vLworLS8vLyAqIGNhc3Rpbmcg ZnJvbSBhbiBgZjY0YCB0byBhbiBgZjMyYCAqKnJvdW5kcyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2 ZW4qKi4KKy0vLy8KKy0vLy8gW1JGQzI0ODRdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L3JmY3MvcHVsbC8yNDg0CistcHViIHRyYWl0IEZyb21DYXN0PFQ+OiBjcmF0ZTo6bWFya2VyOjpT aXplZCB7CistICAgIC8vLyBOdW1lcmljIGNhc3QgZnJvbSBgVGAgdG8gYFNlbGZgLgorLSAgICBm biBmcm9tX2Nhc3QoXzogVCkgLT4gU2VsZjsKKy19CistCistLy8vIE51bWVyaWMgY2FzdCBmcm9t IGBTZWxmYCB0byBgVGAuCistLy8vCistLy8vID4gTm90ZTogVGhpcyBpcyBhIHRlbXBvcmFyeSB3 b3JrYXJvdW5kIHVudGlsIHRoZSBjb252ZXJzaW9uIHRyYWl0cworLS8vLyBzcGVjaWZpZWQgPiBp biBbUkZDMjQ4NF0gYXJlIGltcGxlbWVudGVkLgorLS8vLworLS8vLyBOdW1lcmljIGNhc3QgYmV0 d2VlbiB2ZWN0b3JzIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVzLCBzdWNoIHRoYXQ6Cist Ly8vCistLy8vICogY2FzdGluZyBpbnRlZ2VyIHZlY3RvcnMgd2hvc2UgbGFuZSB0eXBlcyBoYXZl IHRoZSBzYW1lIHNpemUgKGUuZy4gYGkzMnhOYAorLS8vLyAtPiBgdTMyeE5gKSBpcyBhICoqbm8t b3AqKiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYSBsYXJnZXIgaW50ZWdlciB0byBhIHNt YWxsZXIgaW50ZWdlciAoZS5nLiBgdTMyeE5gIC0+CistLy8vIGB1OHhOYCkgd2lsbCAqKnRydW5j YXRlKiosCistLy8vCistLy8vICogY2FzdGluZyBmcm9tIGEgc21hbGxlciBpbnRlZ2VyIHRvIGEg bGFyZ2VyIGludGVnZXIgICAoZS5nLiBgdTh4TmAgLT4KKy0vLy8gICBgdTMyeE5gKSB3aWxsOgor LS8vLyAgICAqICoqemVyby1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHVuc2lnbmVkLCBvcgor LS8vLyAgICAqICoqc2lnbi1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHNpZ25lZCwKKy0vLy8K Ky0vLy8gKiBjYXN0aW5nIGZyb20gYSBmbG9hdCB0byBhbiBpbnRlZ2VyIHdpbGwgKipyb3VuZCB0 aGUgZmxvYXQgdG93YXJkcyB6ZXJvKiosCistLy8vCistLy8vICogY2FzdGluZyBmcm9tIGFuIGlu dGVnZXIgdG8gZmxvYXQgd2lsbCBwcm9kdWNlIHRoZSBmbG9hdGluZyBwb2ludAorLS8vLyByZXBy ZXNlbnRhdGlvbiBvZiB0aGUgaW50ZWdlciwgKipyb3VuZGluZyB0byBuZWFyZXN0LCB0aWVzIHRv IGV2ZW4qKiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYW4gYGYzMmAgdG8gYW4gYGY2NGAg aXMgcGVyZmVjdCBhbmQgbG9zc2xlc3MsCistLy8vCistLy8vICogY2FzdGluZyBmcm9tIGFuIGBm NjRgIHRvIGFuIGBmMzJgICoqcm91bmRzIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLgorLS8v LworLS8vLyBbUkZDMjQ4NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxs LzI0ODQKKy1wdWIgdHJhaXQgQ2FzdDxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgeworLSAgICAv Ly8gTnVtZXJpYyBjYXN0IGZyb20gYHNlbGZgIHRvIGBUYC4KKy0gICAgZm4gY2FzdChzZWxmKSAt PiBUOworLX0KKy0KKy0vLy8gYEZyb21DYXN0YCBpbXBsaWVzIGBDYXN0YC4KKy1pbXBsPFQsIFU+ IENhc3Q8VT4gZm9yIFQKKy13aGVyZQorLSAgICBVOiBGcm9tQ2FzdDxUPiwKKy17CistICAgICNb aW5saW5lXQorLSAgICBmbiBjYXN0KHNlbGYpIC0+IFUgeworLSAgICAgICAgVTo6ZnJvbV9jYXN0 KHNlbGYpCistICAgIH0KKy19CistCistLy8vIGBGcm9tQ2FzdGAgYW5kIGBDYXN0YCBhcmUgcmVm bGV4aXZlCistaW1wbDxUPiBGcm9tQ2FzdDxUPiBmb3IgVCB7CistICAgICNbaW5saW5lXQorLSAg ICBmbiBmcm9tX2Nhc3QodDogU2VsZikgLT4gU2VsZiB7CistICAgICAgICB0CistICAgIH0KKy19 CistCistI1ttYWNyb191c2VdCistbW9kIG1hY3JvczsKKy0KKy1tb2QgdjE2OworLXB1YiB1c2Ug c2VsZjo6djE2OjoqOworLQorLW1vZCB2MzI7CistcHViIHVzZSBzZWxmOjp2MzI6Oio7CistCist bW9kIHY2NDsKKy1wdWIgdXNlIHNlbGY6OnY2NDo6KjsKKy0KKy1tb2QgdjEyODsKKy1wdWIgdXNl IHNlbGY6OnYxMjg6Oio7CistCistbW9kIHYyNTY7CistcHViIHVzZSBzZWxmOjp2MjU2OjoqOwor LQorLW1vZCB2NTEyOworLXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC9tYWNyb3MucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC9tYWNyb3MucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2Nhc3QvbWFjcm9zLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw4MiArMCwwIEBACistLy8hIE1h Y3JvcyBpbXBsZW1lbnRpbmcgYEZyb21DYXN0YAorLQorLW1hY3JvX3J1bGVzISBpbXBsX2Zyb21f Y2FzdF8geworLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJGZyb21fdHk6aWRlbnQpID0+ IHsKKy0gICAgICAgIGltcGwgY3JhdGU6OmFwaTo6Y2FzdDo6RnJvbUNhc3Q8JGZyb21fdHk+IGZv ciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGZyb21fY2Fz dCh4OiAkZnJvbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2 bTo6c2ltZF9jYXN0OworLSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnRfZXEhKCRmcm9tX3R5 OjpsYW5lcygpLCAkaWQ6OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7 IHNpbWRfY2FzdCh4LjApIH0pCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAg ICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZnJvbV9jYXN0XyAkZnJv bV90eT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCist ICAgICAgICAgICAgICAgICAgICBmbiB0ZXN0KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoJGlkOjpsYW5lcygpLCAkZnJvbV90eTo6bGFuZXMoKSk7CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fY2FzdCB7CistICAg ICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkKCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7CistICAg ICAgICAkKAorLSAgICAgICAgICAgIGltcGxfZnJvbV9jYXN0XyEoJGlkWyR0ZXN0X3R0XTogJGZy b21fdHkpOworLSAgICAgICAgKSoKKy0gICAgfQorLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9m cm9tX2Nhc3RfbWFza18geworLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJGZyb21fdHk6 aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6OmFwaTo6Y2FzdDo6RnJvbUNhc3Q8JGZy b21fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IGZyb21fY2FzdCh4OiAkZnJvbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGRlYnVn X2Fzc2VydF9lcSEoJGZyb21fdHk6OmxhbmVzKCksICRpZDo6bGFuZXMoKSk7CistICAgICAgICAg ICAgICAgIHgubmUoJGZyb21fdHk6OmRlZmF1bHQoKSkKKy0gICAgICAgICAgICAgICAgICAgIC5z ZWxlY3QoJGlkOjpzcGxhdCh0cnVlKSwgJGlkOjpzcGxhdChmYWxzZSkpCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3Rf dHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1v ZCBbPCRpZCBfZnJvbV9jYXN0XyAkZnJvbV90eT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB0ZXN0KCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGlkOjpsYW5lcygpLCAkZnJvbV90 eTo6bGFuZXMoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHggPSAkZnJvbV90 eTo6ZGVmYXVsdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtOiAkaWQgPSB4LmNh c3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKG0ubm9uZSgpKTsKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9jYXN0X21h c2sgeworLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJCgkZnJvbV90eTppZGVudCksKikg PT4geworLSAgICAgICAgJCgKKy0gICAgICAgICAgICBpbXBsX2Zyb21fY2FzdF9tYXNrXyEoJGlk WyR0ZXN0X3R0XTogJGZyb21fdHkpOworLSAgICAgICAgKSoKKy0gICAgfQorLX0KKy0KKy0jW2Fs bG93KHVudXNlZCldCistbWFjcm9fcnVsZXMhIGltcGxfaW50b19jYXN0IHsKKy0gICAgKCRpZDpp ZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCopID0+IHsKKy0gICAgICAgICQo CistICAgICAgICAgICAgaW1wbF9mcm9tX2Nhc3RfISgkZnJvbV90eVskdGVzdF90dF06ICRpZCk7 CistICAgICAgICApKgorLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YxMjgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YxMjgucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDMwMiArMCwwIEBACistLy8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRv Q2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAxMjgtYml0IHdpZGUgdmVjdG9ycwor LSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2Nhc3Qh KGk4eDE2W3Rlc3RfdjEyOF06IHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwg aTMyeDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKKy1pbXBsX2Zyb21fY2FzdCEodTh4MTZb dGVzdF92MTI4XTogaTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYs IHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJvbV9jYXN0X21hc2shKG04eDE2W3Rl c3RfdjEyOF06IGk4eDE2LCB1OHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1 MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkxNng4 W3Rlc3RfdjEyOF06IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCistICAgIHUxNng4LAor LSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAg bTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4 LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy1pbXBs X2Zyb21fY2FzdCEoCistICAgIHUxNng4W3Rlc3RfdjEyOF06IGk4eDgsCistICAgIHU4eDgsCist ICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUz Mng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwK Ky0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAor LSAgICBtc2l6ZXg4CistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTE2eDhbdGVz dF92MTI4XTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAg IHUxNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4 OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCist ICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLQorLWltcGxf ZnJvbV9jYXN0ISgKKy0gICAgaTMyeDRbdGVzdF92MTI4XTogaTh4NCwKKy0gICAgdTh4NCwKKy0g ICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgdTMy eDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAor LSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAg ICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0p OworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTMyeDRbdGVzdF92MTI4XTogaTh4NCwKKy0gICAg dTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwK Ky0gICAgaTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAg IHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEy OHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1z aXpleDQKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgZjMyeDRbdGVzdF92MTI4XTogaTh4 NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAg ICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0 eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwK Ky0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQs CistICAgIG1zaXpleDQKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtMzJ4NFt0 ZXN0X3YxMjhdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0g ICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYz Mng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwK Ky0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwK Ky0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAor LSAgICBpNjR4Mlt0ZXN0X3YxMjhdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAg ICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMy eDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAor LSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0g ICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9t X2Nhc3QhKAorLSAgICB1NjR4Mlt0ZXN0X3YxMjhdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBt OHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwK Ky0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAg IGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0x Mjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7Cist aW1wbF9mcm9tX2Nhc3QhKAorLSAgICBmNjR4Mlt0ZXN0X3YxMjhdOiBpOHgyLAorLSAgICB1OHgy LAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAg ICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0 eDIsCistICAgIHU2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIs CistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4 MgorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG02NHgyW3Rlc3RfdjEyOF06IGk4 eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0g ICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0z MngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBpMTI4eDIs CistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgy LAorLSAgICBtc2l6ZXgyCistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGlzaXpleDJb dGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCist ICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBm MzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIs CistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAor LSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAg IHVzaXpleDJbdGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAg aTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngy LAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0g ICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAg bTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2Fz dF9tYXNrISgKKy0gICAgbXNpemV4Mlt0ZXN0X3YxMjhdOiBpOHgyLAorLSAgICB1OHgyLAorLSAg ICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4 MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCist ICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAg dTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIKKy0pOwor LQorLS8vIEZJWE1FW3Rlc3RfdjEyOF06IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3JzIGlu dG9fY2FzdCBpbXBscworLWltcGxfZnJvbV9jYXN0IShpMTI4eDFbdGVzdF92MTI4XTogdTEyOHgx LCBtMTI4eDEpOworLWltcGxfZnJvbV9jYXN0ISh1MTI4eDFbdGVzdF92MTI4XTogaTEyOHgxLCBt MTI4eDEpOworLWltcGxfZnJvbV9jYXN0IShtMTI4eDFbdGVzdF92MTI4XTogaTEyOHgxLCB1MTI4 eDEpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j YXN0L3YxNi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Yx Ni5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDY4ICsw LDAgQEAKKy0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9y IHBvcnRhYmxlIDE2LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNl IGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTh4Mlt0ZXN0X3YxNl06IHU4 eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCist ICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBp NjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgy LAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4 MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1OHgyW3Rlc3Rf djE2XTogaTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBt MTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIs CistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAg ICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAg ICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0g ICAgbTh4Mlt0ZXN0X3YxNl06IGk4eDIsCistICAgIHU4eDIsCistICAgIGkxNngyLAorLSAgICB1 MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIs CistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAg ICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAg aXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjI1Ni5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YyNTYucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2Nhc3QvdjI1Ni5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjk4ICswLDAgQEAKKy0vLyEgYEZy b21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDI1Ni1i aXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0K Ky1pbXBsX2Zyb21fY2FzdCEoaTh4MzJbdGVzdF92MjU2XTogdTh4MzIsIG04eDMyLCBpMTZ4MzIs IHUxNngzMiwgbTE2eDMyKTsKKy1pbXBsX2Zyb21fY2FzdCEodTh4MzJbdGVzdF92MjU2XTogaTh4 MzIsIG04eDMyLCBpMTZ4MzIsIHUxNngzMiwgbTE2eDMyKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNr IShtOHgzMlt0ZXN0X3YyNTZdOiBpOHgzMiwgdTh4MzIsIGkxNngzMiwgdTE2eDMyLCBtMTZ4MzIp OworLQorLWltcGxfZnJvbV9jYXN0IShpMTZ4MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBt OHgxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Cist aW1wbF9mcm9tX2Nhc3QhKHUxNngxNlt0ZXN0X3YyNTZdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBp MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKKy1pbXBsX2Zy b21fY2FzdF9tYXNrIShtMTZ4MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2 eDE2LCB1MTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7CistCistaW1wbF9m cm9tX2Nhc3QhKAorLSAgICBpMzJ4OFt0ZXN0X3YyNTZdOiBpOHg4LAorLSAgICB1OHg4LAorLSAg ICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICB1MzJ4 OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCist ICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0g ICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1MzJ4OFt0ZXN0X3YyNTZd OiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgs CistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAg ICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNp emV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3Qh KAorLSAgICBmMzJ4OFt0ZXN0X3YyNTZdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAor LSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAg dTMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4 LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4 OAorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG0zMng4W3Rlc3RfdjI1Nl06IGk4 eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0g ICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIGk2 NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4 LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEo CistICAgIGk2NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCist ICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1 MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQs CistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAor LSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zy b21fY2FzdCEoCistICAgIHU2NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCistICAgIHU4eDQsCistICAg IG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0 LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0g ICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAg bTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsK Ky1pbXBsX2Zyb21fY2FzdCEoCistICAgIGY2NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCistICAgIHU4 eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCist ICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBp NjR4NCwKKy0gICAgdTY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4 NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6 ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTY0eDRbdGVzdF92MjU2XTog aTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAor LSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAg bTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIGkxMjh4 NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpl eDQsCistICAgIG1zaXpleDQKKy0pOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTEyOHgy W3Rlc3RfdjI1Nl06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAor LSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAg ZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgy LAorLSAgICBtNjR4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIs CistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0g ICAgdTEyOHgyW3Rlc3RfdjI1Nl06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAg IGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4 MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCist ICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICBtMTI4eDIsCistICAg IGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9j YXN0X21hc2shKAorLSAgICBtMTI4eDJbdGVzdF92MjU2XTogaTh4MiwKKy0gICAgdTh4MiwKKy0g ICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMy eDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAor LSAgICB1NjR4MiwKKy0gICAgbTY0eDIsCistICAgIGY2NHgyLAorLSAgICBpMTI4eDIsCistICAg IHUxMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7 CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpc2l6ZXg0W3Rlc3RfdjI1Nl06IGk4eDQsCist ICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2 eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAor LSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAg aTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgdXNpemV4NCwKKy0gICAg bXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1c2l6ZXg0W3Rlc3RfdjI1Nl06 IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwK Ky0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAg IG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4 NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4 NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG1zaXpl eDRbdGVzdF92MjU2XTogaTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQs CistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAg ICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0 eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0 LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0CistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MzIucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MzIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjMy LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMzIgKzAsMCBAQAorLS8vISBgRnJvbUNhc3RgIGFu ZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMzItYml0IHdpZGUgdmVj dG9ycworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9t X2Nhc3QhKAorLSAgICBpOHg0W3Rlc3RfdjMyXTogdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2 eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAor LSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAg ZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEy OHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1p bXBsX2Zyb21fY2FzdCEoCistICAgIHU4eDRbdGVzdF92MzJdOiBpOHg0LAorLSAgICBtOHg0LAor LSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAg dTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0 LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAor LSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQK Ky0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtOHg0W3Rlc3RfdjMyXTogaTh4NCwK Ky0gICAgdTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAg aTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0 LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCist ICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAor LSAgICBtc2l6ZXg0CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkxNngyW3Rlc3Rf djMyXTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgdTE2eDIsCistICAgIG0x NngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwK Ky0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAg IGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAg IHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTE2 eDJbdGVzdF92MzJdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwK Ky0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAg IG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4 MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4 MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFz ayEoCistICAgIG0xNngyW3Rlc3RfdjMyXTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwK Ky0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAg IGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4 MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIs CistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y1MTIucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NTEyLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9jYXN0L3Y1MTIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIwOSArMCwwIEBACist Ly8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJs ZSA1MTItYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3JhdGU6 Oio7CistCistaW1wbF9mcm9tX2Nhc3QhKGk4eDY0W3Rlc3RfdjUxMl06IHU4eDY0LCBtOHg2NCk7 CistaW1wbF9mcm9tX2Nhc3QhKHU4eDY0W3Rlc3RfdjUxMl06IGk4eDY0LCBtOHg2NCk7CistaW1w bF9mcm9tX2Nhc3RfbWFzayEobTh4NjRbdGVzdF92NTEyXTogaTh4NjQsIHU4eDY0KTsKKy0KKy1p bXBsX2Zyb21fY2FzdCEoaTE2eDMyW3Rlc3RfdjUxMl06IGk4eDMyLCB1OHgzMiwgbTh4MzIsIHUx NngzMiwgbTE2eDMyKTsKKy1pbXBsX2Zyb21fY2FzdCEodTE2eDMyW3Rlc3RfdjUxMl06IGk4eDMy LCB1OHgzMiwgbTh4MzIsIGkxNngzMiwgbTE2eDMyKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISht MTZ4MzJbdGVzdF92NTEyXTogaTh4MzIsIHU4eDMyLCBtOHgzMiwgaTE2eDMyLCB1MTZ4MzIpOwor LQorLWltcGxfZnJvbV9jYXN0IShpMzJ4MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgx NiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7CistaW1w bF9mcm9tX2Nhc3QhKHUzMngxNlt0ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4 MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKKy1pbXBsX2Zyb21f Y2FzdCEoZjMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2 eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJvbV9jYXN0X21h c2shKG0zMngxNlt0ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngx NiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2KTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEo CistICAgIGk2NHg4W3Rlc3RfdjUxMl06IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCist ICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1 MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgs CistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4 CistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHU2NHg4W3Rlc3RfdjUxMl06IGk4eDgsCist ICAgIHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2 eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAor LSAgICBpNjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAg ICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGY2 NHg4W3Rlc3RfdjUxMl06IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4 LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0g ICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIG02 NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy1p bXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTY0eDhbdGVzdF92NTEyXTogaTh4OCwKKy0gICAg dTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwK Ky0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAg IGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVz aXpleDgsCistICAgIG1zaXpleDgKKy0pOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTEy OHg0W3Rlc3RfdjUxMl06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0 LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0g ICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2 NHg0LAorLSAgICBtNjR4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpl eDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLWltcGxfZnJvbV9jYXN0ISgK Ky0gICAgdTEyOHg0W3Rlc3RfdjUxMl06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCist ICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1 MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQs CistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICBtMTI4eDQsCist ICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLWltcGxfZnJv bV9jYXN0X21hc2shKAorLSAgICBtMTI4eDRbdGVzdF92NTEyXTogaTh4NCwKKy0gICAgdTh4NCwK Ky0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAg aTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0 LAorLSAgICB1NjR4NCwKKy0gICAgbTY0eDQsCistICAgIGY2NHg0LAorLSAgICBpMTI4eDQsCist ICAgIHUxMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAor LSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpc2l6ZXg4W3Rlc3RfdjUxMl06IGk4eDgs CistICAgIHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAg bTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4 LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0g ICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1 c2l6ZXg4W3Rlc3RfdjUxMl06IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCistICAgIGkx Nng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwK Ky0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAg IGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7Cist aW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG1zaXpleDhbdGVzdF92NTEyXTogaTh4OCwKKy0g ICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4 OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCist ICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBp c2l6ZXg4LAorLSAgICB1c2l6ZXg4CistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NjQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvY2FzdC92NjQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjY0LnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwyMDggKzAsMCBAQAorLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nh c3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNjQtYml0IHdpZGUgdmVjdG9ycworLSNb cnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2Nhc3QhKAor LSAgICBpOHg4W3Rlc3RfdjY0XTogdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAg IHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4 OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCist ICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4Cist KTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHU4eDhbdGVzdF92NjRdOiBpOHg4LAorLSAgICBt OHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwK Ky0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAg IHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVz aXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBt OHg4W3Rlc3RfdjY0XTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUxNng4 LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0g ICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02 NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy0K Ky1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkxNng0W3Rlc3RfdjY0XTogaTh4NCwKKy0gICAgdTh4 NCwKKy0gICAgbTh4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0g ICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2 NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0 LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpl eDQKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTE2eDRbdGVzdF92NjRdOiBpOHg0LAor LSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkz Mng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwK Ky0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAg ICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0g ICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG0xNng0W3Rlc3Rf djY0XTogaTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUx Nng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwK Ky0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAg IGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAg IHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAg aTMyeDJbdGVzdF92NjRdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4 MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCist ICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBt NjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNp emV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3Qh KAorLSAgICB1MzJ4Mlt0ZXN0X3Y2NF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCist ICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICBm MzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIs CistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAor LSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zy b21fY2FzdCEoCistICAgIGYzMngyW3Rlc3RfdjY0XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAg bTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIs CistICAgIHUzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAg ICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBt MTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOwor LWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtMzJ4Mlt0ZXN0X3Y2NF06IGk4eDIsCistICAg IHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIs CistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIGk2NHgyLAorLSAg ICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUx Mjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBt c2l6ZXgyCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvY21wLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvY21wLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNiArMCwwIEBACist Ly8hIEltcGxlbWVudCBjbXAgdHJhaXRzIGZvciB2ZWN0b3IgdHlwZXMKKy0KKy0jW21hY3JvX3Vz ZV0KKy1tb2QgcGFydGlhbF9lcTsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZXE7CistCistI1tt YWNyb191c2VdCistbW9kIHBhcnRpYWxfb3JkOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBvcmQ7 CistCistI1ttYWNyb191c2VdCistbW9kIHZlcnRpY2FsOworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvZXEucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL2VxLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvZXEucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDI3ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgRXFgIGZvciB2 ZWN0b3IgdHlwZXMuCistCistbWFjcm9fcnVsZXMhIGltcGxfY21wX2VxIHsKKy0gICAgKAorLSAg ICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICAgICRpZDpp ZGVudCB8ICR0ZXN0X3R0OnR0IHwKKy0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikK Ky0gICAgKSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpjbXA6OkVxIGZvciAkaWQge30KKy0g ICAgICAgIGltcGwgY3JhdGU6OmNtcDo6RXEgZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwk aWQ+IHt9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9jbXBfZXE+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gZXEoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgZm4gZm9vPEU6IGNyYXRlOjpjbXA6OkVxPihfOiBFKSB7fQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvbyhhKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9vcmQucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL29yZC5ycworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL29y ZC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDMgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBP cmRgIGZvciB2ZWN0b3IgdHlwZXMuCistCistbWFjcm9fcnVsZXMhIGltcGxfY21wX29yZCB7Cist ICAgICgKKy0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAg ICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhwciwgJGZh bHNlOmV4cHIpCistICAgICkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAg IC8vLyBSZXR1cm5zIGEgd3JhcHBlciB0aGF0IGltcGxlbWVudHMgYE9yZGAuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGxleF9vcmQoJnNlbGYpIC0+IExleGlj b2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+IHsKKy0gICAgICAgICAgICAgICAgTGV4aWNvZ3JhcGhp Y2FsbHlPcmRlcmVkKCpzZWxmKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIGltcGwgY3JhdGU6OmNtcDo6T3JkIGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlk PiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gY21wKCZzZWxmLCBv dGhlcjogJlNlbGYpIC0+IGNyYXRlOjpjbXA6Ok9yZGVyaW5nIHsKKy0gICAgICAgICAgICAgICAg bWF0Y2ggc2VsZi5wYXJ0aWFsX2NtcChvdGhlcikgeworLSAgICAgICAgICAgICAgICAgICAgU29t ZSh4KSA9PiB4LAorLSAgICAgICAgICAgICAgICAgICAgTm9uZSA9PiB1bnNhZmUgeyBjcmF0ZTo6 aGludDo6dW5yZWFjaGFibGVfdW5jaGVja2VkKCkgfSwKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAg ICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9vcmQ+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZXEoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgZm4gZm9vPEU6IGNyYXRlOjpjbXA6Ok9yZD4oXzogRSkge30K Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBmb28oYS5wYXJ0aWFsX2xleF9vcmQoKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgZm9vKGEubGV4X29yZCgpKTsKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2NtcC9wYXJ0aWFsX2VxLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2NtcC9wYXJ0aWFsX2VxLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFydGlhbF9lcS5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsNjUgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBQYXJ0aWFsRXFgIGZv ciB2ZWN0b3IgdHlwZXMuCistCistbWFjcm9fcnVsZXMhIGltcGxfY21wX3BhcnRpYWxfZXEgewor LSAgICAoCistICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgorLSAg ICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAorLSAgICAgICAgKCR0cnVlOmV4cHIsICRm YWxzZTpleHByKQorLSAgICApID0+IHsKKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcnVzdC1jbGlwcHkvaXNzdWVzLzI4OTIKKy0gICAgICAg ICNbYWxsb3coY2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCistICAgICAgICBpbXBsIGNyYXRl OjpjbXA6OlBhcnRpYWxFcTwkaWQ+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAg ICAgICAgICAgICAkaWQ6OmVxKCpzZWxmLCAqb3RoZXIpLmFsbCgpCistICAgICAgICAgICAgfQor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjog JlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAkaWQ6Om5lKCpzZWxmLCAqb3RoZXIp LmFueSgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgLy8gRklYTUU6 IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9ydXN0LWNsaXBweS9pc3N1ZXMv Mjg5MgorLSAgICAgICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KKy0gICAg ICAgIGltcGwgY3JhdGU6OmNtcDo6UGFydGlhbEVxPExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwk aWQ+PiBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4geworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wg eworLSAgICAgICAgICAgICAgICBzZWxmLjAgPT0gb3RoZXIuMAorLSAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZT ZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgc2VsZi4wICE9IG90aGVyLjAKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAg ICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAg ICAgcHViIG1vZCBbPCRpZCBfY21wX1BhcnRpYWxFcT5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gcGFydGlhbF9lcSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYSA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg YiA9ICRpZDo6c3BsYXQoJHRydWUpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEoYSAhPSBiKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSA9PSBiKSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhID09IGEpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoIShhICE9IGEpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxzZSkucmVwbGFjZSgwLCAkdHJ1ZSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCgkdHJ1ZSk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSAhPSBiKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISghKGEgPT0gYikpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKGEgPT0gYSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEoIShhICE9IGEpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9jbXAvcGFydGlhbF9vcmQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvY21wL3BhcnRpYWxfb3JkLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFydGlhbF9vcmQu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIzMCArMCwwIEBACistLy8hIEltcGxlbWVudHMgYFBh cnRpYWxPcmRgIGZvciB2ZWN0b3IgdHlwZXMuCistLy8hCistLy8hIFRoaXMgaW1wbGVtZW50cyBh IGxleGljb2dyYXBoaWNhbCBvcmRlci4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9jbXBfcGFydGlh bF9vcmQgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlk ZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAg ICAvLy8gUmV0dXJucyBhIHdyYXBwZXIgdGhhdCBpbXBsZW1lbnRzIGBQYXJ0aWFsT3JkYC4KKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gcGFydGlhbF9sZXhfb3Jk KCZzZWxmKSAtPiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPiB7CistICAgICAgICAgICAg ICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZCgqc2VsZikKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpjbXA6OlBhcnRpYWxPcmQ8TGV4aWNvZ3Jh cGhpY2FsbHlPcmRlcmVkPCRpZD4+IGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPiB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gcGFydGlhbF9jbXAoJnNl bGYsIG90aGVyOiAmU2VsZikgLT4gT3B0aW9uPGNyYXRlOjpjbXA6Ok9yZGVyaW5nPiB7CistICAg ICAgICAgICAgICAgIGlmIFBhcnRpYWxFcTo6ZXEoc2VsZiwgb3RoZXIpIHsKKy0gICAgICAgICAg ICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKQorLSAgICAgICAgICAg ICAgICB9IGVsc2UgaWYgUGFydGlhbE9yZDo6bHQoc2VsZiwgb3RoZXIpIHsKKy0gICAgICAgICAg ICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpCistICAgICAgICAgICAg ICAgIH0gZWxzZSBpZiBQYXJ0aWFsT3JkOjpndChzZWxmLCBvdGhlcikgeworLSAgICAgICAgICAg ICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikKKy0gICAgICAgICAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgIE5vbmUKKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBsdCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg bGV0IG1fbHQgPSBzZWxmLjAubHQob3RoZXIuMCk7CistICAgICAgICAgICAgICAgIGxldCBtX2Vx ID0gc2VsZi4wLmVxKG90aGVyLjApOworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6 OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgaWYgbV9lcS5leHRyYWN0KGkpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2x0LmV4dHJhY3QoaSk7CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgZmFsc2UKKy0gICAgICAgICAgICB9CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbGUoJnNlbGYsIG90aGVyOiAmU2VsZikg LT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHNlbGYubHQob3RoZXIpIHwgUGFydGlhbEVxOjpl cShzZWxmLCBvdGhlcikKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gZ2UoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAg ICAgICAgICAgIHNlbGYuZ3Qob3RoZXIpIHwgUGFydGlhbEVxOjplcShzZWxmLCBvdGhlcikKKy0g ICAgICAgICAgICB9CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZ3Qo JnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBtX2d0 ID0gc2VsZi4wLmd0KG90aGVyLjApOworLSAgICAgICAgICAgICAgICBsZXQgbV9lcSA9IHNlbGYu MC5lcShvdGhlci4wKTsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIG1fZXEuZXh0cmFjdChpKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICByZXR1cm4gbV9ndC5leHRyYWN0KGkpOworLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIGZhbHNlCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgdGVzdF9jbXBfcGFydGlhbF9vcmRfaW50IHsKKy0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0KSA9PiB7CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoK Ky0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9jbXBfUGFydGlhbE9yZD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBwYXJ0aWFsX2xleF9vcmQoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjp0ZXN0aW5nOjp1dGlsczo6e3Rl c3RfY21wfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdGFudCB2YWx1ZXMKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoMCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KDEpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3Jk KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpP cmRlcmluZzo6TGVzcykpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFy dGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFy dGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShj cmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVx dWFsKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOiBh ID0gWzAsIDEsIDIsIDNdOyBiID0gWzMsIDIsIDEsIDBdCistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCgwKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGIgPSAkaWQ6OnNwbGF0KDApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBp IGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBh LnJlcGxhY2UoaSwgaSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGIgPSBiLnJlcGxhY2UoaSwgKCRpZDo6bGFuZXMoKSAtIGkpIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAo YS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5w YXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21l KGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5n OjpFcXVhbCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9s ZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2YWx1ZXM6IGEgPSBbMCwgMSwgMiwgM107IGIg PSBbMCwgMSwgMiwgNF0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSBhOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRpZDo6bGFuZXMoKSAtIDEsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGEuZXh0cmFjdCgkaWQ6OmxhbmVzKCkgLSAxKSArIDEgYXMgJGVsZW1fdHkKKy0gICAgICAg ICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEu cGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFy dGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShj cmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAg IHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6 RXF1YWwpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4 X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMiB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlcyBhID0gWzAsIDEsIDAsIDBdOyBiID0gWzAsIDEs IDIsIDNdCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gYTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCgwKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZSgxLCAxIGFzICRlbGVtX3R5KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwg Yi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29y ZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpj bXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6 OkVxdWFsKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlh bF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7CistCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlczogYSA9IFswLCAx LCAyLCAzXTsgYiA9IFswLCAxLCAzLCAyXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGIgPSBhOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNl KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwgYS5leHRyYWN0KCRpZDo6bGFu ZXMoKSAtIDEpICsgMSBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29y ZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9s ZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3Jh dGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRl cmluZzo6RXF1YWwpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5w YXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQor LQorLW1hY3JvX3J1bGVzISB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9tYXNrIHsKKy0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBf UGFydGlhbE9yZD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistICAgICAgICAgICAgICAgICAgICBmbiBwYXJ0aWFsX2xleF9vcmQoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjp0ZXN0aW5nOjp1dGlsczo6e3Rlc3RfY21wfTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNtcDo6T3JkZXJpbmc7CistCist ICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3RhbnQgdmFsdWVzCistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQodHJ1ZSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpMZXNzKSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwg YS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9j bXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9s ZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmlu Zzo6RXF1YWwpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2YWx1 ZXM6CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSA9IFtmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZV07CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYiA9IFtmYWxzZSwgZmFsc2Us IGZhbHNlLCB0cnVlXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxh dChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gJGlkOjpzcGxh dChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgkaWQ6Omxh bmVzKCkgLSAxLCB0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBh cnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxlc3MpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0 ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29y ZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlczoKKy0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBhID0gW3RydWUsIHRydWUsIHRydWUsIGZhbHNlXTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBiID0gW3RydWUsIHRydWUsIHRydWUsIHRydWVdCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYSA9IGEucmVwbGFjZSgkaWQ6OmxhbmVzKCkgLSAxLCBmYWxzZSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFs X2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVy aW5nOjpMZXNzKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFs X2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCks IGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAk aWQ6OmxhbmVzKCkgPiAyIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFi bGUgdmFsdWVzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgPSBbZmFsc2UsIHRy dWUsIGZhbHNlLCBmYWxzZV07CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGIgPSBb ZmFsc2UsIHRydWUsIHRydWUsIHRydWVdCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IGIgPSAkaWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhID0gYS5yZXBsYWNlKDEsIHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiID0gYi5yZXBsYWNlKDAsIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVzcykpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgp LCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFs KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhf b3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRpY2FsLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC92ZXJ0aWNhbC5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21w L3ZlcnRpY2FsLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMTQgKzAsMCBAQAorLS8vISBWZXJ0 aWNhbCAobGFuZS13aXNlKSB2ZWN0b3IgY29tcGFyaXNvbnMgcmV0dXJuaW5nIHZlY3RvciBtYXNr cy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9jbXBfdmVydGljYWwgeworLSAgICAoCistICAgICAg ICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgorLSAgICAgICAgJGlkOmlkZW50 LAorLSAgICAgICAgJG1hc2tfdHk6aWRlbnQsCistICAgICAgICAkaXNfbWFzazpleHByLCgkdHJ1 ZTpleHByLCAkZmFsc2U6ZXhwcikgfCAkdGVzdF90dDp0dAorLSAgICApID0+IHsKKy0gICAgICAg IGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGVxdWFsaXR5IGNvbXBhcmlz b24uCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGVxKHNlbGYs IG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 bGx2bTo6c2ltZF9lcTsKKy0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2VxKHNl bGYuMCwgb3RoZXIuMCkgfSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIExh bmUtd2lzZSBpbmVxdWFsaXR5IGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGZuIG5lKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Cist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9uZTsKKy0gICAgICAgICAgICAg ICAgU2ltZCh1bnNhZmUgeyBzaW1kX25lKHNlbGYuMCwgb3RoZXIuMCkgfSkKKy0gICAgICAgICAg ICB9CistCistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBsZXNzLXRoYW4gY29tcGFyaXNvbi4K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbHQoc2VsZiwgb3Ro ZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt Ojp7c2ltZF9ndCwgc2ltZF9sdH07CistICAgICAgICAgICAgICAgIGlmICRpc19tYXNrIHsKKy0g ICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9ndChzZWxmLjAsIG90aGVyLjAp IH0pCistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICBTaW1k KHVuc2FmZSB7IHNpbWRfbHQoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgbGVzcy10aGFu LW9yLWVxdWFscyBjb21wYXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBsZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Omxsdm06OntzaW1kX2dlLCBzaW1kX2xlfTsKKy0gICAgICAgICAg ICAgICAgaWYgJGlzX21hc2sgeworLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBz aW1kX2dlKHNlbGYuMCwgb3RoZXIuMCkgfSkKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9sZShzZWxmLjAsIG90aGVyLjAp IH0pCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAg Ly8vIExhbmUtd2lzZSBncmVhdGVyLXRoYW4gY29tcGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZ3Qoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNr X3R5IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjp7c2ltZF9ndCwgc2ltZF9s dH07CistICAgICAgICAgICAgICAgIGlmICRpc19tYXNrIHsKKy0gICAgICAgICAgICAgICAgICAg IFNpbWQodW5zYWZlIHsgc2ltZF9sdChzZWxmLjAsIG90aGVyLjApIH0pCistICAgICAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfZ3Qo c2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZ3JlYXRlci10aGFuLW9yLWVxdWFscyBjb21w YXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBnZShz ZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Omxsdm06OntzaW1kX2dlLCBzaW1kX2xlfTsKKy0gICAgICAgICAgICAgICAgaWYgJGlzX21h c2sgeworLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2xlKHNlbGYuMCwg b3RoZXIuMCkgfSkKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAg ICAgIFNpbWQodW5zYWZlIHsgc2ltZF9nZShzZWxmLjAsIG90aGVyLjApIH0pCistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lmIXsK Ky0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAg ICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfdmVydGljYWw+XSB7CistICAgICAgICAg ICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAg Zm4gY21wKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgk ZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCgkdHJ1 ZSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmx0KGIpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBlID0gJG1hc2tfdHk6OnNwbGF0KHRydWUpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgciA9IGEubGUoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShy ID09IGUpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJG1hc2tfdHk6OnNw bGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEuZ3QoYik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCByID0gYS5nZShiKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKHIgPT0gZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmVxKGIpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IGEgPSBhOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgYiA9IGI7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gZTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoaSwgJHRydWUpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZSA9IGUucmVwbGFjZShpLCB0cnVlKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGEgPSBhLnJlcGxhY2UoaSwgJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYiA9IGIucmVwbGFjZShpLCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZSA9IGUucmVwbGFjZShpLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHIgPSBhLmx0KGIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo ciA9PSBlKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2RlZmF1bHQucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZGVmYXVsdC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZGVmYXVsdC5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsMzAgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBEZWZh dWx0YCBmb3IgdmVjdG9yIHR5cGVzLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX2RlZmF1bHQgewor LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRl c3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgRGVmYXVsdCBmb3IgJGlkIHsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7CistICAg ICAgICAgICAgICAgIFNlbGY6OnNwbGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRl c3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgLy8g Q29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCist ICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQorLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9kZWZhdWx0Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGRlZmF1bHQoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OmRlZmF1bHQoKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGEuZXh0cmFjdChpKSwgJGVsZW1fdHk6OmRl ZmF1bHQoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvZm10LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvZm10LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMiArMCwwIEBACistLy8h IEltcGxlbWVudHMgZm9ybWF0dGluZyBBUElzCistCistI1ttYWNyb191c2VdCistbW9kIGRlYnVn OworLSNbbWFjcm9fdXNlXQorLW1vZCBsb3dlcl9oZXg7CistI1ttYWNyb191c2VdCistbW9kIHVw cGVyX2hleDsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgb2N0YWw7CistI1ttYWNyb191c2VdCistbW9k IGJpbmFyeTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvZm10L2JpbmFyeS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9m bXQvYmluYXJ5LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvYmluYXJ5LnJzCisrKysgL2Rldi9udWxsCitA QCAtMSw1NCArMCwwIEBACistLy8hIEltcGxlbWVudCBPY3RhbCBmb3JtYXR0aW5nCistCistbWFj cm9fcnVsZXMhIGltcGxfZm10X2JpbmFyeSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVt X2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1w bCBjcmF0ZTo6Zm10OjpCaW5hcnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1thbGxvdyhjbGlw cHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCistICAgICAgICAgICAgZm4gZm10 KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6 OlJlc3VsdCB7CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgk aWQpKT87CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAg ICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0 ZSEoZiwgIiwgIik/OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgd3JpdGUhKGYsICIpIikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg ICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFz dGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X2JpbmFyeT5d IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gYmluYXJ5KCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxb dTg7IDUxMl0+OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpX cml0ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGVsZW1f dHk6OmRlZmF1bHQoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlu eVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywg Ins6I2J9IiwgdikudW53cmFwKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0 ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkpKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRdPgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCksICIiKQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgiKSIsICIiKS5zcGxpdCgiLCIp CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20o di50cmltKCkpLnVud3JhcCgpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29sbGVj dCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjps YW5lcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5p bnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB3cml0ZSEoJm11dCBlLCAiezojYn0iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2RlYnVnLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvZm10L2RlYnVnLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2MCArMCwwIEBACistLy8hIElt cGxlbWVudCBkZWJ1ZyBmb3JtYXR0aW5nCistCistbWFjcm9fcnVsZXMhIGltcGxfZm10X2RlYnVn X3Rlc3RzIHsKKy0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVu dCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAg JHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfZm10X2RlYnVnPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAg ICAgICBmbiBkZWJ1ZygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgYXJyYXl2ZWM6 OntBcnJheVN0cmluZyxBcnJheVZlY307CistICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBU aW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OmRlZmF1bHQoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHMgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEo Jm11dCBzLCAiezo/fSIsIHYpLnVud3JhcCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgd3JpdGUhKCZtdXQgYmVnLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigp KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0 XT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigp LCAiIikKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoIikiLCAiIikuc3Bs aXQoIiwiKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5n Ojpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg LmNvbGxlY3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCks ICRpZDo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgc3Mp IGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6P30iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAo KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1t YWNyb19ydWxlcyEgaW1wbF9mbXRfZGVidWcgeworLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwg Y3JhdGU6OmZtdDo6RGVidWcgZm9yICRpZCB7CistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6 Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCistICAgICAgICAgICAgZm4gZm10KCZz ZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6OlJl c3VsdCB7CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgkaWQp KT87CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAg ICAgICAgICAgICAgIGlmIGkgPiAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEo ZiwgIiwgIik/OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg c2VsZi5leHRyYWN0KGkpLmZtdChmKT87CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgd3JpdGUhKGYsICIpIikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAg ICBpbXBsX2ZtdF9kZWJ1Z190ZXN0cyEoWyRlbGVtX3R5OyAkZWxlbV9jb3VudF06ICRpZCB8ICR0 ZXN0X3R0KTsKKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvZm10L2xvd2VyX2hleC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2xvd2VyX2hl eC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNTQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnQgYExv d2VySGV4YCBmb3JtYXR0aW5nCistCistbWFjcm9fcnVsZXMhIGltcGxfZm10X2xvd2VyX2hleCB7 CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAk dGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6Zm10OjpMb3dlckhleCBmb3Ig JGlkIHsKKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVi bGljX2l0ZW1zKV0KKy0gICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZt dDo6Rm9ybWF0dGVyPCdfPikgLT4gY3JhdGU6OmZtdDo6UmVzdWx0IHsKKy0gICAgICAgICAgICAg ICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpPzsKKy0gICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgaWYgaSA+IDAg eworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiLCAiKT87CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhY3QoaSkuZm10KGYp PzsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIikiKQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAg ICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9mbXRfbG93ZXJfaGV4Pl0geworLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAg ICAgICAgICAgICAgICBmbiBsb3dlcl9oZXgoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg dXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OworLSAgICAgICAgICAgICAgICAg ICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47CistCistICAg ICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRlOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZWxlbV90eTo6ZGVmYXVsdCgpKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezojeH0iLCB2KS51bndyYXAo KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJlZyA9IFRpbnlTdHJpbmc6 Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGJlZywgInt9KCIs IHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpLnJlcGxhY2UoIikiLCAiIikKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCIsIikKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0oKSkudW53cmFwKCkp CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVzKCkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVudW1lcmF0 ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gVGlueVN0cmlu Zzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGUsICJ7 OiN4fSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoc3MsIGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2ZtdC9vY3RhbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9mbXQvb2N0YWwucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9vY3RhbC5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsNTQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnQgT2N0YWwgZm9ybWF0dGlu ZworLQorLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9vY3RhbCB7CistICAgIChbJGVsZW1fdHk6aWRl bnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAg ICAgICAgaW1wbCBjcmF0ZTo6Zm10OjpPY3RhbCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KKy0gICAgICAgICAg ICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gY3Jh dGU6OmZtdDo6UmVzdWx0IHsKKy0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJp bmdpZnkhKCRpZCkpPzsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQg eworLSAgICAgICAgICAgICAgICAgICAgaWYgaSA+IDAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHdyaXRlIShmLCAiLCAiKT87CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICBzZWxmLmV4dHJhY3QoaSkuZm10KGYpPzsKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIikiKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRf b2N0YWw+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG9jdGFsX2hleCgp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxB cnJheVZlY307CistICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJy YXlTdHJpbmc8W3U4OyA1MTJdPjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmZtdDo6V3JpdGU7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNw bGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRl ISgmbXV0IHMsICJ7OiNvfSIsIHYpLnVud3JhcCgpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0 cigpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7 IDY0XT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0 cigpLCAiIikucmVwbGFjZSgiKSIsICIiKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAu c3BsaXQoIiwiKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3Ry aW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLmNvbGxlY3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVu KCksICRpZDo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwg c3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6I299Iiwgdi5leHRyYWN0KGluZGV4KSkudW53 cmFwKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC91cHBl cl9oZXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L3VwcGVy X2hleC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L3VwcGVyX2hleC5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsNTQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnQgYFVwcGVySGV4YCBmb3JtYXR0aW5nCistCist bWFjcm9fcnVsZXMhIGltcGxfZm10X3VwcGVyX2hleCB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAg ICAgaW1wbCBjcmF0ZTo6Zm10OjpVcHBlckhleCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KKy0gICAgICAgICAg ICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gY3Jh dGU6OmZtdDo6UmVzdWx0IHsKKy0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJp bmdpZnkhKCRpZCkpPzsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQg eworLSAgICAgICAgICAgICAgICAgICAgaWYgaSA+IDAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHdyaXRlIShmLCAiLCAiKT87CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICBzZWxmLmV4dHJhY3QoaSkuZm10KGYpPzsKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIikiKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRf dXBwZXJfaGV4Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB1cHBlcl9o ZXgoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJp bmcsQXJyYXlWZWN9OworLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9 IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47CistCistICAgICAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpmbXQ6OldyaXRlOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlk OjpzcGxhdCgkZWxlbV90eTo6ZGVmYXVsdCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHMgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3 cml0ZSEoJm11dCBzLCAiezojWH0iLCB2KS51bndyYXAoKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGJlZyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIHdyaXRlISgmbXV0IGJlZywgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFw KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5h c19zdHIoKSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgo IikiKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3Ry aW5nOyA2NF0+CistICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5h c19zdHIoKSwgIiIpLnJlcGxhY2UoIikiLCAiIikKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLnNwbGl0KCIsIikKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlu eVN0cmluZzo6ZnJvbSh2LnRyaW0oKSkudW53cmFwKCkpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC5jb2xsZWN0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShz LmxlbigpLCAkaWQ6OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5k ZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBlID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGUsICJ7OiNYfSIsIHYuZXh0cmFjdChpbmRleCkp LnVud3JhcCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBl KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9t LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20ucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2Zyb20ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDcgKzAsMCBAQAorLS8vISBJbXBs ZW1lbnRhdGlvbnMgb2YgdGhlIGBGcm9tYCBhbmQgYEludG9gIHRyYWl0cworLQorLSNbbWFjcm9f dXNlXQorLW1vZCBmcm9tX2FycmF5OworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBmcm9tX3ZlY3Rv cjsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJv bS9mcm9tX2FycmF5LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zy b20vZnJvbV9hcnJheS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX2FycmF5LnJzCisrKysgL2Rl di9udWxsCitAQCAtMSwxMjQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBGcm9tPFtUOyBOXT5g IGFuZCBgSW50bzxbVDsgTl0+YCBmb3IgdmVjdG9yIHR5cGVzLgorLQorLW1hY3JvX3J1bGVzISBp bXBsX2Zyb21fYXJyYXkgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHBy XTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQKKy0gICAgIHwgKCRub25fZGVmYXVsdF9hcnJheTpl eHByLCAkbm9uX2RlZmF1bHRfdmVjOmV4cHIpKSA9PiB7CistICAgICAgICBpbXBsIEZyb208WyRl bGVtX3R5OyAkZWxlbV9jb3VudF0+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuIGZyb20oYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICBh cnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0sCistICAgICAgICAgICAgICAgICAgICB2ZWM6 ICRpZCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBVIHsg YXJyYXkgfS52ZWMgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlt cGwgRnJvbTwkaWQ+IGZvciBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZnJvbSh2ZWM6ICRpZCkgLT4gU2VsZiB7CistICAg ICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxl bV90eTsgJGVsZW1fY291bnRdLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgVSB7IHZlYyB9LmFycmF5 IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICAvLyBGSVhNRTogYElu dG86OmludG9gIGlzIG5vdCBpbmxpbmUsIGJ1dCBkdWUgdG8KKy0gICAgICAgIC8vIHRoZSBibGFu a2V0IGltcGwgaW4gYHN0ZGAsIHdoaWNoIGlzIG5vdAorLSAgICAgICAgLy8gbWFya2VkIGBkZWZh dWx0YCwgd2UgY2Fubm90IG92ZXJyaWRlIGl0IGhlcmUgd2l0aAorLSAgICAgICAgLy8gc3BlY2lh bGl6YXRpb24uCistICAgICAgICAvKgorLSAgICAgICAgaW1wbCBJbnRvPFskZWxlbV90eTsgJGVs ZW1fY291bnRdPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBpbnRvKHNlbGYpIC0+IFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKKy0gICAgICAgICAg ICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICBhcnJheTogWyRlbGVtX3R5OyAk ZWxlbV9jb3VudF0sCistICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBVIHsgdmVjOiBzZWxmIH0uYXJyYXkg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgSW50bzwkaWQ+ IGZvciBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gaW50byhzZWxmKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICB1bmlv biBVIHsKKy0gICAgICAgICAgICAgICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50 XSwKKy0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyBhcnJheTogc2VsZiB9LnZlYyB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgKi8KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsK Ky0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAg ICAgICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFu dGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2Nt cCldCistICAgICAgICAgICAgICAgIG1vZCBbPCRpZCBfZnJvbT5dIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobWlyaSwgaWdub3JlKV0KKy0gICAgICAgICAgICAg ICAgICAgIGZuIGFycmF5KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWM6ICRp ZCA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogV29ya2Fyb3VuZCBmb3IgYXJyYXlzIHdpdGggbW9yZSB0aGFuIDMyCistICAgICAgICAg ICAgICAgICAgICAgICAgLy8gZWxlbWVudHMuCistICAgICAgICAgICAgICAgICAgICAgICAgLy8K Ky0gICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZlIGJlY2F1c2Ugd2UgbmV2ZXIgdGFrZSBh IHJlZmVyZW5jZSB0byBhbnkKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB1bmluaXRpYWxp emVkIGVsZW1lbnQuCistICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gVyB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXI6ICgpCistICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYXJyYXkgPSBXIHsgb3Ro ZXI6ICgpIH07CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291 bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdDogJGVsZW1fdHkg PSBEZWZhdWx0OjpkZWZhdWx0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5v dGU6IGFycmF5Lm90aGVyIGlzIHRoZSBhY3RpdmUgbWVtYmVyIGFuZAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBpbml0aWFsaXplZCBzbyB3ZSBjYW4gdGFrZSBhIHJlZmVyZW5jZSB0 byBpdDoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHAgPSB1bnNhZmUgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhcnJheS5vdGhlciBhcyAqbXV0ICgp IGFzICptdXQgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90ZTogZGVmYXVsdCBpcyBhIHZhbGlkIGJpdC1w YXR0ZXJuIGZvcgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAkZWxlbV90eToKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNyYXRlOjpwdHI6OndyaXRlKHAud3JhcHBpbmdfYWRkKGkpLCBkZWZhdWx0 KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiB0aGUgYXJyYXkgdmFyaWFu dCBvZiB0aGUgdW5pb24gaXMgcHJvcGVybHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBp bml0aWFsaXplZDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFycmF5ID0gdW5z YWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuYXJyYXkKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5WzBd ID0gJG5vbl9kZWZhdWx0X2FycmF5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMg PSB2ZWMucmVwbGFjZSgwLCAkbm9uX2RlZmF1bHRfdmVjKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdmVjX2Zyb21fYXJyYXkgPSAkaWQ6OmZyb20oYXJyYXkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjX2Zyb21fYXJyYXksIHZlYyk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGFycmF5X2Zyb21fdmVjCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gPFskZWxlbV90eTsgJGVsZW1fY291bnRdPjo6ZnJvbSh2ZWMpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIGZvciBhcnJheXMgd2l0aCBt b3JlIHRoYW4gMzIKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cy4KKy0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyYXlfZnJvbV92ZWNbaV0sIGFycmF5W2ld KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHZlY19mcm9tX2ludG9fYXJyYXk6ICRpZCA9IGFycmF5LmludG8oKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHZlY19mcm9tX2ludG9fYXJyYXksIHZlYyk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFycmF5X2Zyb21faW50b192ZWM6IFskZWxlbV90 eTsgJGVsZW1fY291bnRdCistICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gdmVjLmludG8o KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCBmb3IgYXJy YXlzIHdpdGggbW9yZSB0aGFuIDMyCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVu dHMuCistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFycmF5X2Zyb21faW50b192 ZWNbaV0sIGFycmF5W2ldKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV92 ZWN0b3IucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDY3ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50 cyBgRnJvbWAgYW5kIGBJbnRvYCBmb3IgdmVjdG9yIHR5cGVzLgorLQorLW1hY3JvX3J1bGVzISBp bXBsX2Zyb21fdmVjdG9yIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0CistICAgICB8ICRzb3VyY2U6aWRlbnQpID0+IHsK Ky0gICAgICAgIGltcGwgRnJvbTwkc291cmNlPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBmcm9tKHNvdXJjZTogJHNvdXJjZSkgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIGZuIHN0YXRpY19hc3NlcnRfc2FtZV9udW1iZXJfb2ZfbGFuZXM8VCwg VT4oKQorLSAgICAgICAgICAgICAgICB3aGVyZQorLSAgICAgICAgICAgICAgICAgICAgVDogY3Jh dGU6OnNlYWxlZDo6U2ltZCwKKy0gICAgICAgICAgICAgICAgICAgIFU6IGNyYXRlOjpzZWFsZWQ6 OlNpbWQ8TGFuZXNUeXBlID0gVDo6TGFuZXNUeXBlPiwKKy0gICAgICAgICAgICAgICAgeworLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9j YXN0OworLSAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0X3NhbWVfbnVtYmVyX29mX2xhbmVz Ojo8JGlkLCAkc291cmNlPigpOworLSAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRf Y2FzdChzb3VyY2UuMCkgfSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAg ICAvLyBGSVhNRTogYEludG86OmludG9gIGlzIG5vdCBpbmxpbmUsIGJ1dCBkdWUgdG8gdGhlIGJs YW5rZXQgaW1wbCBpbgorLSAgICAgICAgLy8gYHN0ZGAsIHdoaWNoIGlzIG5vdCBtYXJrZWQgYGRl ZmF1bHRgLCB3ZSBjYW5ub3Qgb3ZlcnJpZGUgaXQgaGVyZQorLSAgICAgICAgLy8gd2l0aCBzcGVj aWFsaXphdGlvbi4KKy0KKy0gICAgICAgIC8qCistICAgICAgICAgICBpbXBsIEludG88JGlkPiBm b3IgJHNvdXJjZSB7CistICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgICAg Zm4gaW50byhzZWxmKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBzaW1k X2Nhc3Qoc2VsZikgfQorLSAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgIH0KKy0gICAgICAg ICovCistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf ZnJvbV8gJHNvdXJjZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJv bSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRpZDo6bGFuZXMoKSwg JHNvdXJjZTo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNvdXJjZTog JHNvdXJjZSA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdmVjOiAkaWQgPSBEZWZhdWx0OjpkZWZhdWx0KCk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGUgPSAkaWQ6OmZyb20oc291cmNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGUsIHZlYyk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGU6 ICRpZCA9IHNvdXJjZS5pbnRvKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShlLCB2ZWMpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEg aW1wbF9mcm9tX3ZlY3RvcnMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQKKy0gICAgIHwgJCgkc291cmNlOmlkZW50KSwq KSA9PiB7CistICAgICAgICAkKAorLSAgICAgICAgICAgIGltcGxfZnJvbV92ZWN0b3IhKAorLSAg ICAgICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XTogJGlkIHwgJHRlc3RfdHQgfCAk c291cmNlCistICAgICAgICAgICAgKTsKKy0gICAgICAgICkqCistICAgIH0KKy19CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2hhc2gucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaGFzaC5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaGFz aC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDkgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBI YXNoYCBmb3IgdmVjdG9yIHR5cGVzLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX2hhc2ggeworLSAg ICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3Rf dHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Omhhc2g6Okhhc2ggZm9yICRpZCB7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gaGFzaDxIOiBjcmF0ZTo6aGFz aDo6SGFzaGVyPigmc2VsZiwgc3RhdGU6ICZtdXQgSCkgeworLSAgICAgICAgICAgICAgICB1bnNh ZmUgeworLSAgICAgICAgICAgICAgICAgICAgdW5pb24gQSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YTogWyRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAg ICAgICAgIHZlYzogJGlkLAorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgQSB7IHZlYzogKnNlbGYgfS5kYXRhLmhhc2goc3RhdGUpCistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7Cist ICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAg ICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfaGFzaD5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBoYXNoKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aGFzaDo6e0hhc2gsIEhhc2hl cn07CistICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhkZXByZWNhdGVkKV0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omhhc2g6OntTaXBIYXNoZXIxM307CistICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZSBBID0gWyRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhOiBBID0gWzQyIGFzICRlbGVtX3R5OyAkaWQ6 OmxhbmVzKCldOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjxBPigpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8JGlkPigpCistICAg ICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93 KGRlcHJlY2F0ZWQpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYV9oYXNoID0g U2lwSGFzaGVyMTM6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdl9o YXNoID0gYV9oYXNoLmNsb25lKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYS5oYXNoKCZt dXQgYV9oYXNoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnRlZ2VyIHdpdGhp biBtYW50aXNzYV4xIHJhbmdlLgorLSAgICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coY2xp cHB5OjpmbG9hdF9jbXApXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpz cGxhdCg0MiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdi5oYXNoKCZt dXQgdl9oYXNoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFfaGFzaC5m aW5pc2goKSwgdl9oYXNoLmZpbmlzaCgpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0 cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2ludG9fYml0cy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNTkgKzAsMCBA QAorLS8vISBJbXBsZW1lbnRhdGlvbiBvZiBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgLgorLQor LS8vLyBTYWZlIGxvc3NsZXNzIGJpdHdpc2UgY29udmVyc2lvbiBmcm9tIGBUYCB0byBgU2VsZmAu CistI1tjZmdfYXR0cihkb2NfY2ZnLCBkb2MoY2ZnKGZlYXR1cmUgPSAiaW50b19iaXRzIikpKV0K Ky1wdWIgdHJhaXQgRnJvbUJpdHM8VD46IGNyYXRlOjptYXJrZXI6OlNpemVkIHsKKy0gICAgLy8v IFNhZmUgbG9zc2xlc3MgYml0d2lzZSB0cmFuc211dGUgZnJvbSBgVGAgdG8gYFNlbGZgLgorLSAg ICBmbiBmcm9tX2JpdHModDogVCkgLT4gU2VsZjsKKy19CistCistLy8vIFNhZmUgbG9zc2xlc3Mg Yml0d2lzZSBjb252ZXJzaW9uIGZyb20gYFNlbGZgIHRvIGBUYC4KKy0jW2NmZ19hdHRyKGRvY19j ZmcsIGRvYyhjZmcoZmVhdHVyZSA9ICJpbnRvX2JpdHMiKSkpXQorLXB1YiB0cmFpdCBJbnRvQml0 czxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgeworLSAgICAvLy8gU2FmZSBsb3NzbGVzcyBiaXR3 aXNlIHRyYW5zbXV0ZSBmcm9tIGBzZWxmYCB0byBgVGAuCistICAgIGZuIGludG9fYml0cyhzZWxm KSAtPiBUOworLX0KKy0KKy0vLy8gYEZyb21CaXRzYCBpbXBsaWVzIGBJbnRvQml0c2AuCistaW1w bDxULCBVPiBJbnRvQml0czxVPiBmb3IgVAorLXdoZXJlCistICAgIFU6IEZyb21CaXRzPFQ+LAor LXsKKy0gICAgI1tpbmxpbmVdCistICAgIGZuIGludG9fYml0cyhzZWxmKSAtPiBVIHsKKy0gICAg ICAgIGRlYnVnX2Fzc2VydCEoY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+KCkgPT0gY3JhdGU6 Om1lbTo6c2l6ZV9vZjo6PFU+KCkpOworLSAgICAgICAgVTo6ZnJvbV9iaXRzKHNlbGYpCistICAg IH0KKy19CistCistLy8vIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgYXJlIHJlZmxleGl2ZQor LWltcGw8VD4gRnJvbUJpdHM8VD4gZm9yIFQgeworLSAgICAjW2lubGluZV0KKy0gICAgZm4gZnJv bV9iaXRzKHQ6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgdAorLSAgICB9CistfQorLQorLSNb bWFjcm9fdXNlXQorLW1vZCBtYWNyb3M7CistCistbW9kIHYxNjsKKy1wdWIgdXNlIHNlbGY6OnYx Njo6KjsKKy0KKy1tb2QgdjMyOworLXB1YiB1c2Ugc2VsZjo6djMyOjoqOworLQorLW1vZCB2NjQ7 CistcHViIHVzZSBzZWxmOjp2NjQ6Oio7CistCistbW9kIHYxMjg7CistcHViIHVzZSBzZWxmOjp2 MTI4OjoqOworLQorLW1vZCB2MjU2OworLXB1YiB1c2Ugc2VsZjo6djI1Njo6KjsKKy0KKy1tb2Qg djUxMjsKKy1wdWIgdXNlIHNlbGY6OnY1MTI6Oio7CistCistbW9kIGFyY2hfc3BlY2lmaWM7Cist cHViIHVzZSBzZWxmOjphcmNoX3NwZWNpZmljOjoqOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvYXJjaF9zcGVjaWZpYy5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvYXJjaF9zcGVjaWZp Yy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDM0NSArMCwwIEBACistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgYmV0 d2VlbiBwb3J0YWJsZSB2ZWN0b3IgdHlwZXMgYW5kIHRoZQorLS8vISBhcmNoaXRlY3R1cmUtc3Bl Y2lmaWMgdmVjdG9yIHR5cGVzLgorLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy0vLyBGSVhNRTogTUlQ UyBGcm9tQml0cy9JbnRvQml0cworLQorLSNbYWxsb3codW51c2VkKV0KKy11c2UgY3JhdGU6Oio7 CistCistLy8vIFRoaXMgbWFjcm8gaW1wbGVtZW50cyBGcm9tQml0cyBmb3IgdGhlIHBvcnRhYmxl IGFuZCB0aGUgYXJjaGl0ZWN0dXJlCistLy8vIHNwZWNpZmljIHZlY3RvciB0eXBlcy4KKy0vLy8K Ky0vLy8gVGhlICJsZWFmIiBjYXNlIGlzIGF0IHRoZSBib3R0b20sIGFuZCB0aGUgbW9zdCBnZW5l cmljIGNhc2UgaXMgYXQgdGhlIHRvcC4KKy0vLy8gVGhlIGdlbmVyaWMgY2FzZSBpcyBzcGxpdCBp bnRvIHNtYWxsZXIgY2FzZXMgcmVjdXJzaXZlbHkuCistbWFjcm9fcnVsZXMhIGltcGxfYXJjaCB7 CistICAgIChbJGFyY2hfaGVhZF9pOmlkZW50WyRhcmNoX2hlYWRfdHQ6dHRdOiAkKCRhcmNoX2hl YWRfdHk6aWRlbnQpLCpdLAorLSAgICAgJChbJGFyY2hfdGFpbF9pOmlkZW50WyRhcmNoX3RhaWxf dHQ6dHRdOiAkKCRhcmNoX3RhaWxfdHk6aWRlbnQpLCpdKSwqIHwKKy0gICAgIGZyb206ICQoJGZy b21fdHk6aWRlbnQpLCogfCBpbnRvOiAkKCRpbnRvX3R5OmlkZW50KSwqIHwKKy0gICAgIHRlc3Q6 ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsX2FyY2ghKAorLSAgICAgICAgICAgIFsk YXJjaF9oZWFkX2lbJGFyY2hfaGVhZF90dF06ICQoJGFyY2hfaGVhZF90eSksKl0gfAorLSAgICAg ICAgICAgIGZyb206ICQoJGZyb21fdHkpLCogfAorLSAgICAgICAgICAgIGludG86ICQoJGludG9f dHkpLCogfAorLSAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAg ICAgaW1wbF9hcmNoISgKKy0gICAgICAgICAgICAkKFskYXJjaF90YWlsX2lbJGFyY2hfdGFpbF90 dF06ICQoJGFyY2hfdGFpbF90eSksKl0pLCogfAorLSAgICAgICAgICAgIGZyb206ICQoJGZyb21f dHkpLCogfAorLSAgICAgICAgICAgIGludG86ICQoJGludG9fdHkpLCogfAorLSAgICAgICAgICAg IHRlc3Q6ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICB9OworLSAgICAoWyRhcmNoOmlkZW50 WyRhcmNoX3R0OnR0XTogJCgkYXJjaF90eTppZGVudCksKl0gfAorLSAgICAgZnJvbTogJCgkZnJv bV90eTppZGVudCksKiB8IGludG86ICQoJGludG9fdHk6aWRlbnQpLCogfAorLSAgICAgdGVzdDog JHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIC8vIG5vdGU6IGlmIHRhcmdldCBpcyAiYXJtIiwg Iit2NywrbmVvbiIgbXVzdCBiZSBlbmFibGVkCistICAgICAgICAvLyBhbmQgdGhlIHN0ZCBsaWJy YXJ5IG11c3QgYmUgcmVjb21waWxlZCB3aXRoIHRoZW0KKy0gICAgICAgICNbY2ZnKGFueSgKKy0g ICAgICAgICAgICBub3QodGFyZ2V0X2FyY2ggPSAiYXJtIiksCistICAgICAgICAgICAgYWxsKHRh cmdldF9mZWF0dXJlID0gInY3IiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsCistICAgICAgICAg ICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVfbmVvbikpKQorLSAgICAg ICAgKV0KKy0gICAgICAgIC8vIG5vdGU6IGlmIHRhcmdldCBpcyAicG93ZXJwYyIsICJhbHRpdmVj IiBtdXN0IGJlIGVuYWJsZWQKKy0gICAgICAgIC8vIGFuZCB0aGUgc3RkIGxpYnJhcnkgbXVzdCBi ZSByZWNvbXBpbGVkIHdpdGggaXQKKy0gICAgICAgICNbY2ZnKGFueSgKKy0gICAgICAgICAgICBu b3QodGFyZ2V0X2FyY2ggPSAicG93ZXJwYyIpLAorLSAgICAgICAgICAgIGFsbCh0YXJnZXRfZmVh dHVyZSA9ICJhbHRpdmVjIiwgZmVhdHVyZSA9ICJjb3JlX2FyY2giKSwKKy0gICAgICAgICkpXQor LSAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAkYXJjaF90dCldCistICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6OiRhcmNoOjp7CistICAgICAgICAgICAgJCgkYXJjaF90eSksKgorLSAgICAgICAg fTsKKy0KKy0gICAgICAgICNbY2ZnKGFueSgKKy0gICAgICAgICAgICBub3QodGFyZ2V0X2FyY2gg PSAiYXJtIiksCistICAgICAgICAgICAgYWxsKHRhcmdldF9mZWF0dXJlID0gInY3IiwgdGFyZ2V0 X2ZlYXR1cmUgPSAibmVvbiIsCistICAgICAgICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVf YXJjaCIsIGxpYmNvcmVfbmVvbikpKQorLSAgICAgICAgKV0KKy0gICAgICAgICNbY2ZnKGFueSgK Ky0gICAgICAgICAgICBub3QodGFyZ2V0X2FyY2ggPSAicG93ZXJwYyIpLAorLSAgICAgICAgICAg IGFsbCh0YXJnZXRfZmVhdHVyZSA9ICJhbHRpdmVjIiwgZmVhdHVyZSA9ICJjb3JlX2FyY2giKSwK Ky0gICAgICAgICkpXQorLSAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAkYXJjaF90dCldCist ICAgICAgICBpbXBsX2FyY2ghKCQoJGFyY2hfdHkpLCogfCAkKCRmcm9tX3R5KSwqIHwgJCgkaW50 b190eSksKiB8CistICAgICAgICAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0KTsKKy0gICAgfTsK Ky0gICAgKCRhcmNoX2hlYWQ6aWRlbnQsICQoJGFyY2hfdGFpbDppZGVudCksKiB8ICQoJGZyb21f dHk6aWRlbnQpLCoKKy0gICAgIHwgJCgkaW50b190eTppZGVudCksKiB8IHRlc3Q6ICR0ZXN0X3R0 OnR0KSA9PiB7CistICAgICAgICBpbXBsX2FyY2ghKCRhcmNoX2hlYWQgfCAkKCRmcm9tX3R5KSwq IHwgJCgkaW50b190eSksKiB8CistICAgICAgICAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0KTsK Ky0gICAgICAgIGltcGxfYXJjaCEoJCgkYXJjaF90YWlsKSwqIHwgJCgkZnJvbV90eSksKiB8ICQo JGludG9fdHkpLCogfAorLSAgICAgICAgICAgICAgICAgICB0ZXN0OiAkdGVzdF90dCk7CistICAg IH07CistICAgICgkYXJjaF9oZWFkOmlkZW50IHwgJCgkZnJvbV90eTppZGVudCksKiB8ICQoJGlu dG9fdHk6aWRlbnQpLCogfAorLSAgICAgdGVzdDogJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAg IGltcGxfZnJvbV9iaXRzISgkYXJjaF9oZWFkWyR0ZXN0X3R0XTogJCgkZnJvbV90eSksKik7Cist ICAgICAgICBpbXBsX2ludG9fYml0cyEoJGFyY2hfaGVhZFskdGVzdF90dF06ICQoJGludG9fdHkp LCopOworLSAgICB9OworLX0KKy0KKy0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLS8vIEltcGxl bWVudGF0aW9ucyBmb3IgdGhlIDY0LWJpdCB3aWRlIHZlY3RvciB0eXBlczoKKy0KKy0vLyBGSVhN RTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHR5cGVzCistLy8gRklYTUU6IGFybS9hYXJjaCBmbG9h dDE2eDRfdCBtaXNzaW5nCistaW1wbF9hcmNoISgKKy0gICAgWworLSAgICAgICAgYXJtWyJhcm0i XTogaW50OHg4X3QsCistICAgICAgICB1aW50OHg4X3QsCistICAgICAgICBwb2x5OHg4X3QsCist ICAgICAgICBpbnQxNng0X3QsCistICAgICAgICB1aW50MTZ4NF90LAorLSAgICAgICAgcG9seTE2 eDRfdCwKKy0gICAgICAgIGludDMyeDJfdCwKKy0gICAgICAgIHVpbnQzMngyX3QsCistICAgICAg ICBmbG9hdDMyeDJfdCwKKy0gICAgICAgIGludDY0eDFfdCwKKy0gICAgICAgIHVpbnQ2NHgxX3QK Ky0gICAgXSwKKy0gICAgWworLSAgICAgICAgYWFyY2g2NFsiYWFyY2g2NCJdOiBpbnQ4eDhfdCwK Ky0gICAgICAgIHVpbnQ4eDhfdCwKKy0gICAgICAgIHBvbHk4eDhfdCwKKy0gICAgICAgIGludDE2 eDRfdCwKKy0gICAgICAgIHVpbnQxNng0X3QsCistICAgICAgICBwb2x5MTZ4NF90LAorLSAgICAg ICAgaW50MzJ4Ml90LAorLSAgICAgICAgdWludDMyeDJfdCwKKy0gICAgICAgIGZsb2F0MzJ4Ml90 LAorLSAgICAgICAgaW50NjR4MV90LAorLSAgICAgICAgdWludDY0eDFfdCwKKy0gICAgICAgIGZs b2F0NjR4MV90CistICAgIF0gfCBmcm9tOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAor LSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4MiwKKy0gICAg dTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiB8IGludG86IGk4eDgsCistICAgIHU4eDgs CistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAg ICBmMzJ4MiB8IHRlc3Q6IHRlc3RfdjY0CistKTsKKy0KKy0vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v LworLS8vIEltcGxlbWVudGF0aW9ucyBmb3IgdGhlIDEyOC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXM6 CistCistLy8gRklYTUU6IGFybS9hYXJjaCBmbG9hdDE2eDhfdCBtaXNzaW5nCistLy8gRklYTUU6 IHBwYyB2ZWN0b3JfcGl4ZWwgbWlzc2luZworLS8vIEZJWE1FOiBwcGM2NCB2ZWN0b3JfRmxvYXQx NiBtaXNzaW5nCistLy8gRklYTUU6IHBwYzY0IHZlY3Rvcl9zaWduZWRfbG9uZ19sb25nIG1pc3Np bmcKKy0vLyBGSVhNRTogcHBjNjQgdmVjdG9yX3Vuc2lnbmVkX2xvbmdfbG9uZyBtaXNzaW5nCist Ly8gRklYTUU6IHBwYzY0IHZlY3Rvcl9ib29sX2xvbmdfbG9uZyBtaXNzaW5nCistLy8gRklYTUU6 IHBwYzY0IHZlY3Rvcl9zaWduZWRfX19pbnQxMjggbWlzc2luZworLS8vIEZJWE1FOiBwcGM2NCB2 ZWN0b3JfdW5zaWduZWRfX19pbnQxMjggbWlzc2luZworLWltcGxfYXJjaCEoCistICAgIFt4ODZb Ing4NiJdOiBfX20xMjgsIF9fbTEyOGksIF9fbTEyOGRdLAorLSAgICBbeDg2XzY0WyJ4ODZfNjQi XTogX19tMTI4LCBfX20xMjhpLCBfX20xMjhkXSwKKy0gICAgWworLSAgICAgICAgYXJtWyJhcm0i XTogaW50OHgxNl90LAorLSAgICAgICAgdWludDh4MTZfdCwKKy0gICAgICAgIHBvbHk4eDE2X3Qs CistICAgICAgICBpbnQxNng4X3QsCistICAgICAgICB1aW50MTZ4OF90LAorLSAgICAgICAgcG9s eTE2eDhfdCwKKy0gICAgICAgIGludDMyeDRfdCwKKy0gICAgICAgIHVpbnQzMng0X3QsCistICAg ICAgICBmbG9hdDMyeDRfdCwKKy0gICAgICAgIGludDY0eDJfdCwKKy0gICAgICAgIHVpbnQ2NHgy X3QKKy0gICAgXSwKKy0gICAgWworLSAgICAgICAgYWFyY2g2NFsiYWFyY2g2NCJdOiBpbnQ4eDE2 X3QsCistICAgICAgICB1aW50OHgxNl90LAorLSAgICAgICAgcG9seTh4MTZfdCwKKy0gICAgICAg IGludDE2eDhfdCwKKy0gICAgICAgIHVpbnQxNng4X3QsCistICAgICAgICBwb2x5MTZ4OF90LAor LSAgICAgICAgaW50MzJ4NF90LAorLSAgICAgICAgdWludDMyeDRfdCwKKy0gICAgICAgIGZsb2F0 MzJ4NF90LAorLSAgICAgICAgaW50NjR4Ml90LAorLSAgICAgICAgdWludDY0eDJfdCwKKy0gICAg ICAgIGZsb2F0NjR4Ml90CistICAgIF0sCistICAgIFsKKy0gICAgICAgIHBvd2VycGNbInBvd2Vy cGMiXTogdmVjdG9yX3NpZ25lZF9jaGFyLAorLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2NoYXIs CistICAgICAgICB2ZWN0b3Jfc2lnbmVkX3Nob3J0LAorLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVk X3Nob3J0LAorLSAgICAgICAgdmVjdG9yX3NpZ25lZF9pbnQsCistICAgICAgICB2ZWN0b3JfdW5z aWduZWRfaW50LAorLSAgICAgICAgdmVjdG9yX2Zsb2F0CistICAgIF0sCistICAgIFsKKy0gICAg ICAgIHBvd2VycGM2NFsicG93ZXJwYzY0Il06IHZlY3Rvcl9zaWduZWRfY2hhciwKKy0gICAgICAg IHZlY3Rvcl91bnNpZ25lZF9jaGFyLAorLSAgICAgICAgdmVjdG9yX3NpZ25lZF9zaG9ydCwKKy0g ICAgICAgIHZlY3Rvcl91bnNpZ25lZF9zaG9ydCwKKy0gICAgICAgIHZlY3Rvcl9zaWduZWRfaW50 LAorLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2ludCwKKy0gICAgICAgIHZlY3Rvcl9mbG9hdCwK Ky0gICAgICAgIHZlY3Rvcl9zaWduZWRfbG9uZywKKy0gICAgICAgIHZlY3Rvcl91bnNpZ25lZF9s b25nLAorLSAgICAgICAgdmVjdG9yX2RvdWJsZQorLSAgICBdIHwgZnJvbTogaTh4MTYsCistICAg IHU4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4 OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCist ICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBp MTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxIHwgaW50bzogaTh4MTYsCistICAgIHU4 eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwK Ky0gICAgZjMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAg IGkxMjh4MSwKKy0gICAgdTEyOHgxIHwgdGVzdDogdGVzdF92MTI4CistKTsKKy0KKy1pbXBsX2Fy Y2ghKAorLSAgICBbcG93ZXJwY1sicG93ZXJwYyJdOiB2ZWN0b3JfYm9vbF9jaGFyXSwKKy0gICAg W3Bvd2VycGM2NFsicG93ZXJwYzY0Il06IHZlY3Rvcl9ib29sX2NoYXJdIHwgZnJvbTogbTh4MTYs CistICAgIG0xNng4LAorLSAgICBtMzJ4NCwKKy0gICAgbTY0eDIsCistICAgIG0xMjh4MSB8IGlu dG86IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBp MzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIs CistICAgIGY2NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgLy8gTWFza3M6 CistICAgIG04eDE2IHwgdGVzdDogdGVzdF92MTI4CistKTsKKy0KKy1pbXBsX2FyY2ghKAorLSAg ICBbcG93ZXJwY1sicG93ZXJwYyJdOiB2ZWN0b3JfYm9vbF9zaG9ydF0sCistICAgIFtwb3dlcnBj NjRbInBvd2VycGM2NCJdOiB2ZWN0b3JfYm9vbF9zaG9ydF0gfCBmcm9tOiBtMTZ4OCwKKy0gICAg bTMyeDQsCistICAgIG02NHgyLAorLSAgICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwKKy0gICAgdTh4 MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAor LSAgICBmMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAg aTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIC8vIE1hc2tzOgorLSAgICBtOHgxNiwKKy0gICAg bTE2eDggfCB0ZXN0OiB0ZXN0X3YxMjgKKy0pOworLQorLWltcGxfYXJjaCEoCistICAgIFtwb3dl cnBjWyJwb3dlcnBjIl06IHZlY3Rvcl9ib29sX2ludF0sCistICAgIFtwb3dlcnBjNjRbInBvd2Vy cGM2NCJdOiB2ZWN0b3JfYm9vbF9pbnRdIHwgZnJvbTogbTMyeDQsCistICAgIG02NHgyLAorLSAg ICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIGkxNng4LAorLSAgICB1 MTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgaTY0eDIs CistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCist ICAgIC8vIE1hc2tzOgorLSAgICBtOHgxNiwKKy0gICAgbTE2eDgsCistICAgIG0zMng0IHwgdGVz dDogdGVzdF92MTI4CistKTsKKy0KKy1pbXBsX2FyY2ghKAorLSAgICBbcG93ZXJwYzY0WyJwb3dl cnBjNjQiXTogdmVjdG9yX2Jvb2xfbG9uZ10gfCBmcm9tOiBtNjR4MiwKKy0gICAgbTEyOHgxIHwg aW50bzogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAg IGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4 MiwKKy0gICAgZjY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICAvLyBNYXNr czoKKy0gICAgbTh4MTYsCistICAgIG0xNng4LAorLSAgICBtMzJ4NCwKKy0gICAgbTY0eDIgfCB0 ZXN0OiB0ZXN0X3YxMjgKKy0pOworLQorLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCistLy8gSW1w bGVtZW50YXRpb25zIGZvciB0aGUgMjU2LWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLWltcGxf YXJjaCEoCistICAgIFt4ODZbIng4NiJdOiBfX20yNTYsIF9fbTI1NmksIF9fbTI1NmRdLAorLSAg ICBbeDg2XzY0WyJ4ODZfNjQiXTogX19tMjU2LCBfX20yNTZpLCBfX20yNTZkXSB8IGZyb206IGk4 eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2 LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCist ICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBt NjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiB8IGludG86IGk4 eDMyLAorLSAgICB1OHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAgIGkzMng4 LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0g ICAgZjY0eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyIHwgdGVzdDogdGVzdF92MjU2Cist KTsKKy0KKy0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLS8vIEZJWE1FOiBJbXBsZW1lbnRhdGlv bnMgZm9yIHRoZSA1MTItYml0IHdpZGUgdmVjdG9yIHR5cGVzCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9tYWNyb3MucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNzQgKzAs MCBAQAorLS8vISBNYWNyb3MgaW1wbGVtZW50aW5nIGBGcm9tQml0c2AKKy0KKy1tYWNyb19ydWxl cyEgaW1wbF9mcm9tX2JpdHNfIHsKKy0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICRmcm9t X3R5OmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjphcGk6OmludG9fYml0czo6RnJv bUJpdHM8JGZyb21fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIGZyb21fYml0cyh4OiAkZnJvbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZSh4KSB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX2Zyb21fYml0c18gJGZyb21fdHk+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgIGZuIHRlc3QoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjp7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cjo6e3JlYWRfdW5hbGlnbmVkfSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtOjp7c2l6ZV9vZiwgemVyb2VkfQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpJbnRvQml0czsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNpemVfb2Y6 OjwkaWQ+KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX29mOjo8 JGZyb21fdHk+KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc2FmZSBi ZWNhdXNlIHdlIG5ldmVyIGNyZWF0ZSBhIHJlZmVyZW5jZSB0bworLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5OgorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBhOiAkZnJvbV90eSA9IHVuc2FmZSB7IHplcm9lZCgpIH07CistCistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGJfMDogJGlkID0gY3JhdGU6OkZyb21CaXRzOjpmcm9tX2JpdHMoYSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJfMTogJGlkID0gYS5pbnRvX2JpdHMoKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZXNlIGFyZSBieXRl LXdpc2UgZXF1YWwsIHRoYXQgaXMsCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCB0 aGUgYml0IHBhdHRlcm5zIGFyZSBpZGVudGljYWw6CistICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uc2l6ZV9vZjo6PCRpZD4oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHdlIG9ubHkgcmVhZCBpbml0aWFsaXplZAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtZW1vcnkgaW4gYm91bmRzLiBBbHNvLCB0YWtp bmcgYSByZWZlcmVuY2UgdG8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGJfaWAg aXMgb2sgYmVjYXVzZSB0aGUgZmllbGRzIGFyZSBpbml0aWFsaXplZC4KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBiXzBfdjogdTggPSByZWFkX3VuYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoJmJfMCBhcyAqY29uc3QgJGlkIGFzICpjb25zdCB1OCkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLndyYXBwaW5nX2FkZChpKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBiXzFfdjogdTggPSByZWFkX3VuYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoJmJfMSBhcyAqY29uc3QgJGlkIGFzICpjb25zdCB1OCkKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLndyYXBwaW5nX2FkZChpKQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoYl8wX3YsIGJfMV92KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9iaXRzIHsKKy0gICAgKCRp ZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCopID0+IHsKKy0gICAgICAg ICQoCistICAgICAgICAgICAgaW1wbF9mcm9tX2JpdHNfISgkaWRbJHRlc3RfdHRdOiAkZnJvbV90 eSk7CistICAgICAgICApKgorLSAgICB9CistfQorLQorLSNbYWxsb3codW51c2VkKV0KKy1tYWNy b19ydWxlcyEgaW1wbF9pbnRvX2JpdHMgeworLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTog JCgkZnJvbV90eTppZGVudCksKikgPT4geworLSAgICAgICAgJCgKKy0gICAgICAgICAgICBpbXBs X2Zyb21fYml0c18hKCRmcm9tX3R5WyR0ZXN0X3R0XTogJGlkKTsKKy0gICAgICAgICkqCistICAg IH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ludG9fYml0cy92MTI4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ludG9fYml0cy92MTI4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsMjMyICswLDAgQEAKKy0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRz YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDEyOC1iaXQgd2lkZSB2ZWN0b3JzCistI1ty dXN0Zm10Ojpza2lwXQorLQorLSNbYWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0 CistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTh4MTZbdGVzdF92 MTI4XTogdTh4MTYsCistICAgIG04eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAg IG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4 NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCist ICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEKKy0pOworLWltcGxfZnJvbV9i aXRzISgKKy0gICAgdTh4MTZbdGVzdF92MTI4XTogaTh4MTYsCistICAgIG04eDE2LAorLSAgICBp MTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQs CistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAg ICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICBt MTI4eDEKKy0pOworLWltcGxfZnJvbV9iaXRzIShtOHgxNlt0ZXN0X3YxMjhdOiBtMTZ4OCwgbTMy eDQsIG02NHgyLCBtMTI4eDEpOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTE2eDhbdGVz dF92MTI4XTogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgdTE2eDgsCist ICAgIG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBt MzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIs CistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEKKy0pOworLWltcGxfZnJv bV9iaXRzISgKKy0gICAgdTE2eDhbdGVzdF92MTI4XTogaTh4MTYsCistICAgIHU4eDE2LAorLSAg ICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMy eDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAor LSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAg ICBtMTI4eDEKKy0pOworLWltcGxfZnJvbV9iaXRzIShtMTZ4OFt0ZXN0X3YxMjhdOiBtMzJ4NCwg bTY0eDIsIG0xMjh4MSk7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpMzJ4NFt0ZXN0X3Yx MjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04eDE2LAorLSAgICBpMTZ4OCwKKy0gICAg dTE2eDgsCistICAgIG0xNng4LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0 LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0g ICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIG0xMjh4MQorLSk7CistaW1wbF9mcm9tX2Jp dHMhKAorLSAgICB1MzJ4NFt0ZXN0X3YxMjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04 eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4NCwK Ky0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAg IGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIG0x Mjh4MQorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBmMzJ4NFt0ZXN0X3YxMjhdOiBpOHgx NiwKKy0gICAgdTh4MTYsCistICAgIG04eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCist ICAgIG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIG0zMng0LAorLSAgICBp NjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgx LAorLSAgICB1MTI4eDEsCistICAgIG0xMjh4MQorLSk7CistaW1wbF9mcm9tX2JpdHMhKG0zMng0 W3Rlc3RfdjEyOF06IG02NHgyLCBtMTI4eDEpOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAg aTY0eDJbdGVzdF92MTI4XTogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBtOHgxNiwKKy0gICAg aTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0 LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0g ICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEKKy0pOwor LWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTY0eDJbdGVzdF92MTI4XTogaTh4MTYsCistICAgIHU4 eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwK Ky0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAg IGk2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEy OHgxLAorLSAgICBtMTI4eDEKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgZjY0eDJbdGVz dF92MTI4XTogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCist ICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBm MzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgbTY0eDIs CistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEKKy0pOworLWltcGxfZnJv bV9iaXRzIShtNjR4Mlt0ZXN0X3YxMjhdOiBtMTI4eDEpOworLQorLWltcGxfZnJvbV9iaXRzISgK Ky0gICAgaTEyOHgxW3Rlc3RfdjEyOF06IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYs CistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAg ICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0 eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEK Ky0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTEyOHgxW3Rlc3RfdjEyOF06IGk4eDE2LAor LSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAg bTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0 LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0g ICAgaTEyOHgxLAorLSAgICBtMTI4eDEKKy0pOworLS8vIG5vdGU6IG0xMjh4MSBjYW5ub3QgYmUg Y29uc3RydWN0ZWQgZnJvbSBhbGwgdGhlIG90aGVyIG1hc2tzIGJpdCBwYXR0ZXJucyBpbgorLS8v IGhlcmUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv aW50b19iaXRzL3YxNi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9p bnRvX2JpdHMvdjE2LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjE2LnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSw5ICswLDAgQEAKKy0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBs ZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDE2LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6 OnNraXBdCistCistI1thbGxvdyh1bnVzZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKKy11c2Ug Y3JhdGU6Oio7CistCistaW1wbF9mcm9tX2JpdHMhKGk4eDJbdGVzdF92MTZdOiB1OHgyLCBtOHgy KTsKKy1pbXBsX2Zyb21fYml0cyEodTh4Mlt0ZXN0X3YxNl06IGk4eDIsIG04eDIpOworLS8vIG5v dGU6IG04eDIgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYWxsIGk4eDIgb3IgdTh4MiBiaXQg cGF0dGVybnMKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvaW50b19iaXRzL3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvaW50b19iaXRzL3YyNTYucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MjU2LnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwyMzIgKzAsMCBAQAorLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0Jp dHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMjU2LWJpdCB3aWRlIHZlY3RvcnMKKy0j W3J1c3RmbXQ6OnNraXBdCistCistI1thbGxvdyh1bnVzZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rl c3QKKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpOHgzMlt0ZXN0 X3YyNTZdOiB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAor LSAgICBtMTZ4MTYsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAg IG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4 NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MgorLSk7CistaW1wbF9m cm9tX2JpdHMhKAorLSAgICB1OHgzMlt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgbTh4MzIsCist ICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4LAorLSAg ICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0 eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIs CistICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKG04eDMyW3Rlc3RfdjI1Nl06IG0x NngxNiwgbTMyeDgsIG02NHg0LCBtMTI4eDIpOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAg aTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAg IHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYz Mng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwK Ky0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0p OworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAg ICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBp MzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQs CistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0g ICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0pOworLWltcGxfZnJvbV9iaXRzIShtMTZ4MTZbdGVz dF92MjU2XTogbTMyeDgsIG02NHg0LCBtMTI4eDIpOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0g ICAgaTMyeDhbdGVzdF92MjU2XTogaTh4MzIsCistICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0g ICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwKKy0gICAgdTMyeDgsCistICAg IGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4 NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIK Ky0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTMyeDhbdGVzdF92MjU2XTogaTh4MzIsCist ICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAg IG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0 eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwK Ky0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAg ZjMyeDhbdGVzdF92MjU2XTogaTh4MzIsCistICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0gICAg aTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUz Mng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwK Ky0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0p OworLWltcGxfZnJvbV9iaXRzIShtMzJ4OFt0ZXN0X3YyNTZdOiBtNjR4NCwgbTEyOHgyKTsKKy0K Ky1pbXBsX2Zyb21fYml0cyEoCistICAgIGk2NHg0W3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICB1 OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAorLSAgICBtMTZ4 MTYsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAor LSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAg IHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIHU2NHg0 W3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngx NiwKKy0gICAgdTE2eDE2LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwK Ky0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAgZjY0eDQsCistICAg IG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1p bXBsX2Zyb21fYml0cyEoCistICAgIGY2NHg0W3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICB1OHgz MiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAorLSAgICBtMTZ4MTYs CistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAg ICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUx Mjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEobTY0eDRbdGVzdF92MjU2 XTogbTEyOHgyKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkxMjh4Mlt0ZXN0X3YyNTZd OiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUx NngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4 LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0g ICAgbTY0eDQsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0 cyEoCistICAgIHUxMjh4Mlt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04 eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4 OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCist ICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0gICAg bTEyOHgyCistKTsKKy0vLyBub3RlOiBtMTI4eDIgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20g YWxsIHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0dGVybnMgaW4KKy0vLyBoZXJlCitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MzIucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YzMi5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvaW50b19iaXRzL3YzMi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAs MCBAQAorLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3Ig cG9ydGFibGUgMzItYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy0jW2Fs bG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAorLXVzZSBjcmF0ZTo6KjsKKy0KKy1p bXBsX2Zyb21fYml0cyEoaTh4NFt0ZXN0X3YzMl06IHU4eDQsIG04eDQsIGkxNngyLCB1MTZ4Miwg bTE2eDIpOworLWltcGxfZnJvbV9iaXRzISh1OHg0W3Rlc3RfdjMyXTogaTh4NCwgbTh4NCwgaTE2 eDIsIHUxNngyLCBtMTZ4Mik7CistaW1wbF9mcm9tX2JpdHMhKG04eDRbdGVzdF92MzJdOiBtMTZ4 Mik7CistCistaW1wbF9mcm9tX2JpdHMhKGkxNngyW3Rlc3RfdjMyXTogaTh4NCwgdTh4NCwgbTh4 NCwgdTE2eDIsIG0xNngyKTsKKy1pbXBsX2Zyb21fYml0cyEodTE2eDJbdGVzdF92MzJdOiBpOHg0 LCB1OHg0LCBtOHg0LCBpMTZ4MiwgbTE2eDIpOworLS8vIG5vdGU6IG0xNngyIGNhbm5vdCBiZSBj b25zdHJ1Y3RlZCBmcm9tIGFsbCBtOHg0IGJpdCBwYXR0ZXJucworZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjUxMi5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjUxMi5ycworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvaW50b19iaXRzL3Y1MTIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIzMiArMCwwIEBA CistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0 YWJsZSA1MTItYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy0jW2FsbG93 KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBs X2Zyb21fYml0cyEoCistICAgIGk4eDY0W3Rlc3RfdjUxMl06IHU4eDY0LAorLSAgICBtOHg2NCwK Ky0gICAgaTE2eDMyLAorLSAgICB1MTZ4MzIsCistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAor LSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwKKy0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0g ICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1 MTI4eDQsCistICAgIG0xMjh4NAorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICB1OHg2NFt0 ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngzMiwKKy0gICAgdTE2eDMy LAorLSAgICBtMTZ4MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2LAorLSAgICBmMzJ4MTYs CistICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0g ICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOwor LWltcGxfZnJvbV9iaXRzIShtOHg2NFt0ZXN0X3Y1MTJdOiBtMTZ4MzIsIG0zMngxNiwgbTY0eDgs IG0xMjh4NCk7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpMTZ4MzJbdGVzdF92NTEyXTog aTh4NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4 MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngx NiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCist ICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9i aXRzISgKKy0gICAgdTE2eDMyW3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1OHg2NCwKKy0gICAg bTh4NjQsCistICAgIGkxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICBpMzJ4MTYsCistICAgIHUz MngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAgIGk2NHg4LAorLSAgICB1NjR4 OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwK Ky0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEobTE2eDMyW3Rlc3RfdjUxMl06IG0z MngxNiwgbTY0eDgsIG0xMjh4NCk7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpMzJ4MTZb dGVzdF92NTEyXTogaTh4NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMy LAorLSAgICB1MTZ4MzIsCistICAgIG0xNngzMiwKKy0gICAgdTMyeDE2LAorLSAgICBmMzJ4MTYs CistICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0g ICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOwor LWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTMyeDE2W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1 OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngzMiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4 MzIsCistICAgIGkzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAgIGk2NHg4 LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpMTI4eDQsCist ICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGYz MngxNlt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0LAorLSAgICBp MTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICBpMzJ4MTYsCistICAgIHUz MngxNiwKKy0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4 LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NAor LSk7CistaW1wbF9mcm9tX2JpdHMhKG0zMngxNlt0ZXN0X3Y1MTJdOiBtNjR4OCwgbTEyOHg0KTsK Ky0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGk2NHg4W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAg ICB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngzMiwKKy0gICAgdTE2eDMyLAorLSAgICBt MTZ4MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0z MngxNiwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0 LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NAorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAg ICB1NjR4OFt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0LAorLSAg ICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICBpMzJ4MTYsCistICAg IHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAgIGk2NHg4LAorLSAgICBm NjR4OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4 eDQKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgZjY0eDhbdGVzdF92NTEyXTogaTh4NjQs CistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAorLSAgICB1MTZ4MzIsCist ICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwKKy0g ICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIG02NHg4LAorLSAgICBp MTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEo bTY0eDhbdGVzdF92NTEyXTogbTEyOHg0KTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkx Mjh4NFt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0LAorLSAgICBp MTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICBpMzJ4MTYsCistICAgIHUz MngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAgIGk2NHg4LAorLSAgICB1NjR4 OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NAor LSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICB1MTI4eDRbdGVzdF92NTEyXTogaTh4NjQsCist ICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAorLSAgICB1MTZ4MzIsCistICAg IG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwKKy0gICAg bTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4 OCwKKy0gICAgaTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLS8vIG5vdGU6IG0xMjh4NCBjYW5u b3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwgdGhlIG90aGVyIG1hc2tzIGJpdCBwYXR0ZXJucyBp bgorLS8vIGhlcmUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvaW50b19iaXRzL3Y2NC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9pbnRvX2JpdHMvdjY0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjY0LnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwxOCArMCwwIEBACistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0 c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSA2NC1iaXQgd2lkZSB2ZWN0b3JzCistI1ty dXN0Zm10Ojpza2lwXQorLQorLSNbYWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0 CistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9iaXRzIShpOHg4W3Rlc3RfdjY0XTogdTh4 OCwgbTh4OCwgaTE2eDQsIHUxNng0LCBtMTZ4NCwgaTMyeDIsIHUzMngyLCBmMzJ4MiwgbTMyeDIp OworLWltcGxfZnJvbV9iaXRzISh1OHg4W3Rlc3RfdjY0XTogaTh4OCwgbTh4OCwgaTE2eDQsIHUx Nng0LCBtMTZ4NCwgaTMyeDIsIHUzMngyLCBmMzJ4MiwgbTMyeDIpOworLWltcGxfZnJvbV9iaXRz IShtOHg4W3Rlc3RfdjY0XTogbTE2eDQsIG0zMngyKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoaTE2 eDRbdGVzdF92NjRdOiBpOHg4LCB1OHg4LCBtOHg4LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4 MiwgZjMyeDIsIG0zMngyKTsKKy1pbXBsX2Zyb21fYml0cyEodTE2eDRbdGVzdF92NjRdOiBpOHg4 LCB1OHg4LCBtOHg4LCBpMTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsK Ky1pbXBsX2Zyb21fYml0cyEobTE2eDRbdGVzdF92NjRdOiBtMzJ4Mik7CistCistaW1wbF9mcm9t X2JpdHMhKGkzMngyW3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwgbTh4OCwgaTE2eDQsIHUxNng0LCBt MTZ4NCwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7CistaW1wbF9mcm9tX2JpdHMhKHUzMngyW3Rlc3Rf djY0XTogaTh4OCwgdTh4OCwgbTh4OCwgaTE2eDQsIHUxNng0LCBtMTZ4NCwgaTMyeDIsIGYzMngy LCBtMzJ4Mik7CistaW1wbF9mcm9tX2JpdHMhKGYzMngyW3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwg bTh4OCwgaTE2eDQsIHUxNng0LCBtMTZ4NCwgaTMyeDIsIHUzMngyLCBtMzJ4Mik7CistLy8gbm90 ZTogbTMyeDIgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYWxsIG0xNng0IG9yIG04eDggYml0 IHBhdHRlcm5zCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL21hdGgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWF0aC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNCArMCwwIEBACist Ly8hIEltcGxlbWVudHMgdmVydGljYWwgbWF0aCBvcGVyYXRpb25zCistCistI1ttYWNyb191c2Vd CistbW9kIGZsb2F0OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9tYXRoL2Zsb2F0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL21hdGgvZmxvYXQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDYxICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCBmbG9hdGluZy1w b2ludCBtYXRoIG9wZXJhdGlvbnMuCistCistI1ttYWNyb191c2VdCistbW9kIGFiczsKKy0KKy0j W21hY3JvX3VzZV0KKy1tb2QgY29uc3RzOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBjb3M7Cist CistI1ttYWNyb191c2VdCistbW9kIGV4cDsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgcG93ZjsK Ky0KKy0jW21hY3JvX3VzZV0KKy1tb2QgbG47CistCistI1ttYWNyb191c2VdCistbW9kIG11bF9h ZGQ7CistCistI1ttYWNyb191c2VdCistbW9kIG11bF9hZGRlOworLQorLSNbbWFjcm9fdXNlXQor LW1vZCByZWNwcmU7CistCistI1ttYWNyb191c2VdCistbW9kIHJzcXJ0ZTsKKy0KKy0jW21hY3Jv X3VzZV0KKy1tb2Qgc2luOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBzcXJ0OworLQorLSNbbWFj cm9fdXNlXQorLW1vZCBzcXJ0ZTsKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mbG9hdF9jYXRlZ29y eSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQs ICRtYXNrX3R5OmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGlzX25hbihzZWxmKSAtPiAkbWFza190eSB7 CistICAgICAgICAgICAgICAgIHNlbGYubmUoc2VsZikKKy0gICAgICAgICAgICB9CistCistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGlzX2luZmluaXRlKHNlbGYp IC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgc2VsZi5lcShTZWxmOjpJTkZJTklUWSkg fCBzZWxmLmVxKFNlbGY6Ok5FR19JTkZJTklUWSkKKy0gICAgICAgICAgICB9CistCistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGlzX2Zpbml0ZShzZWxmKSAtPiAk bWFza190eSB7CistICAgICAgICAgICAgICAgICEoc2VsZi5pc19uYW4oKSB8IHNlbGYuaXNfaW5m aW5pdGUoKSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Fi cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Fi cy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDMxICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGlu Zy1wb2ludCBgYWJzYC4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X2FicyB7Cist ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBBYnNv bHV0ZSB2YWx1ZS4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4g YWJzKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46 Om1hdGg6OmZsb2F0OjphYnM6OkFiczsKKy0gICAgICAgICAgICAgICAgQWJzOjphYnMoc2VsZikK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAg ICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX2Ficz5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBhYnMoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5hYnMoKSk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vID0gJGlkOjpzcGxhdCgtMSBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBtby5hYnMoKSk7 CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2NvbnN0cy5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2NvbnN0cy5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9jb25zdHMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDc0ICswLDAgQEAK Ky1tYWNyb19ydWxlcyEgaW1wbF9mbG9hdF9jb25zdHMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7 CistICAgICAgICAgICAgLy8vIE1hY2hpbmUgZXBzaWxvbiB2YWx1ZS4KKy0gICAgICAgICAgICBw dWIgY29uc3QgRVBTSUxPTjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6RVBTSUxP Tik7CistCistICAgICAgICAgICAgLy8vIFNtYWxsZXN0IGZpbml0ZSB2YWx1ZS4KKy0gICAgICAg ICAgICBwdWIgY29uc3QgTUlOOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5OjpNSU4p OworLQorLSAgICAgICAgICAgIC8vLyBTbWFsbGVzdCBwb3NpdGl2ZSBub3JtYWwgdmFsdWUuCist ICAgICAgICAgICAgcHViIGNvbnN0IE1JTl9QT1NJVElWRTogJGlkID0gJGlkOjpzcGxhdChjb3Jl OjokZWxlbV90eTo6TUlOX1BPU0lUSVZFKTsKKy0KKy0gICAgICAgICAgICAvLy8gTGFyZ2VzdCBm aW5pdGUgdmFsdWUuCistICAgICAgICAgICAgcHViIGNvbnN0IE1BWDogJGlkID0gJGlkOjpzcGxh dChjb3JlOjokZWxlbV90eTo6TUFYKTsKKy0KKy0gICAgICAgICAgICAvLy8gTm90IGEgTnVtYmVy IChOYU4pLgorLSAgICAgICAgICAgIHB1YiBjb25zdCBOQU46ICRpZCA9ICRpZDo6c3BsYXQoY29y ZTo6JGVsZW1fdHk6Ok5BTik7CistCistICAgICAgICAgICAgLy8vIEluZmluaXR5ICjiiJ4pLgor LSAgICAgICAgICAgIHB1YiBjb25zdCBJTkZJTklUWTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjok ZWxlbV90eTo6SU5GSU5JVFkpOworLQorLSAgICAgICAgICAgIC8vLyBOZWdhdGl2ZSBpbmZpbml0 eSAoLeKInikuCistICAgICAgICAgICAgcHViIGNvbnN0IE5FR19JTkZJTklUWTogJGlkID0gJGlk OjpzcGxhdChjb3JlOjokZWxlbV90eTo6TkVHX0lORklOSVRZKTsKKy0KKy0gICAgICAgICAgICAv Ly8gQXJjaGltZWRlcycgY29uc3RhbnQgKM+AKQorLSAgICAgICAgICAgIHB1YiBjb25zdCBQSTog JGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpQSSk7CistCistICAgICAg ICAgICAgLy8vIM+ALzIKKy0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19QSV8yOiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfMik7CistCistICAgICAg ICAgICAgLy8vIM+ALzMKKy0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19QSV8zOiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfMyk7CistCistICAgICAg ICAgICAgLy8vIM+ALzQKKy0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19QSV80OiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfNCk7CistCistICAgICAg ICAgICAgLy8vIM+ALzYKKy0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19QSV82OiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfNik7CistCistICAgICAg ICAgICAgLy8vIM+ALzgKKy0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19QSV84OiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfOCk7CistCistICAgICAg ICAgICAgLy8vIDEvz4AKKy0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ18xX1BJOiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfMV9QSSk7CistCistICAgICAg ICAgICAgLy8vIDIvz4AKKy0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ18yX1BJOiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfMl9QSSk7CistCistICAgICAg ICAgICAgLy8vIDIvc3FydCjPgCkKKy0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ18yX1NRUlRf UEk6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18yX1NRUlRf UEkpOworLQorLSAgICAgICAgICAgIC8vLyBzcXJ0KDIpCistICAgICAgICAgICAgcHViIGNvbnN0 IFNRUlRfMjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpTUVJUXzIp OworLQorLSAgICAgICAgICAgIC8vLyAxL3NxcnQoMikKKy0gICAgICAgICAgICBwdWIgY29uc3Qg RlJBQ18xX1NRUlRfMjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpG UkFDXzFfU1FSVF8yKTsKKy0KKy0gICAgICAgICAgICAvLy8gRXVsZXIncyBudW1iZXIgKGUpCist ICAgICAgICAgICAgcHViIGNvbnN0IEU6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6 OmNvbnN0czo6RSk7CistCistICAgICAgICAgICAgLy8vIGxvZzxzdWI+Mjwvc3ViPihlKQorLSAg ICAgICAgICAgIHB1YiBjb25zdCBMT0cyX0U6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1f dHk6OmNvbnN0czo6TE9HMl9FKTsKKy0KKy0gICAgICAgICAgICAvLy8gbG9nPHN1Yj4xMDwvc3Vi PihlKQorLSAgICAgICAgICAgIHB1YiBjb25zdCBMT0cxMF9FOiAkaWQgPSAkaWQ6OnNwbGF0KGNv cmU6OiRlbGVtX3R5Ojpjb25zdHM6OkxPRzEwX0UpOworLQorLSAgICAgICAgICAgIC8vLyBsbigy KQorLSAgICAgICAgICAgIHB1YiBjb25zdCBMTl8yOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRl bGVtX3R5Ojpjb25zdHM6OkxOXzIpOworLQorLSAgICAgICAgICAgIC8vLyBsbigxMCkKKy0gICAg ICAgICAgICBwdWIgY29uc3QgTE5fMTA6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6 OmNvbnN0czo6TE5fMTApOworLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9jb3MucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9jb3MucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQvY29zLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw0NCArMCww IEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQg YGNvc2AuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9jb3MgeworLSAgICAoWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQp ID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gQ29zaW5lLgorLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBjb3Moc2VsZikgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OmNv czo6Q29zOworLSAgICAgICAgICAgICAgICBDb3M6OmNvcyhzZWxmKQorLSAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAvLy8gQ29zaW5lIG9mIGBzZWxmICogUElgLgorLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBjb3NfcGkoc2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OmNvc19waTo6 Q29zUGk7CistICAgICAgICAgICAgICAgIENvc1BpOjpjb3NfcGkoc2VsZikKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVz dF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9tYXRoX2Nvcz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBjb3MoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpQSTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwID0gJGlkOjpzcGxhdChQSSBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBoID0gJGlkOjpzcGxhdChQSSBhcyAk ZWxlbV90eSAvIDIuKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgel9yID0gJGlkOjpz cGxhdCgoUEkgYXMgJGVsZW1fdHkgLyAyLikuY29zKCkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBvX3IgPSAkaWQ6OnNwbGF0KChQSSBhcyAkZWxlbV90eSkuY29zKCkpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgei5jb3MoKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6X3IsIHBoLmNvcygpKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG9fciwgcC5jb3MoKSk7CistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9tYXRoL2Zsb2F0L2V4cC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9tYXRoL2Zsb2F0L2V4cC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9leHAucnMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDMzICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFu ZS13aXNlKSBmbG9hdGluZy1wb2ludCBgZXhwYC4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXRo X2Zsb2F0X2V4cCB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAg ICAgICAgIC8vLyBSZXR1cm5zIHRoZSBleHBvbmVudGlhbCBmdW5jdGlvbiBvZiBgc2VsZmA6IGBl XihzZWxmKWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGV4 cChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjpt YXRoOjpmbG9hdDo6ZXhwOjpFeHA7CistICAgICAgICAgICAgICAgIEV4cDo6ZXhwKHNlbGYpCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAg ICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9leHA+XSB7CistICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMy Iiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZXhwKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB6LmV4cCgpKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9ICRpZDo6c3BsYXQoY3JhdGU6OmY2 NDo6Y29uc3RzOjpFIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg dG9sID0gJGlkOjpzcGxhdCgyLjRlLTQgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoKGUgLSBvLmV4cCgpKS5hYnMoKS5sZSh0b2wpLmFsbCgpKTsKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbG4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9sbi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9s bi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzMgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZl cnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBsbmAuCistCistbWFjcm9fcnVsZXMh IGltcGxfbWF0aF9mbG9hdF9sbiB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50 OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQg eworLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiBgc2Vs ZmAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGxuKHNlbGYp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZs b2F0Ojpsbjo6TG47CistICAgICAgICAgICAgICAgIExuOjpsbihzZWxmKQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0 X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBt b2QgWzwkaWQgX21hdGhfbG4+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbG4oKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIG8ubG4oKSk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGUgPSAkaWQ6OnNwbGF0KGNyYXRlOjpmNjQ6OmNvbnN0czo6RSBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRpZDo6c3Bs YXQoMi40ZS00IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KChvIC0gZS5sbigpKS5hYnMoKS5sZSh0b2wpLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21hdGgvZmxvYXQvbXVsX2FkZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbXVsX2Fk ZC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZl cnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBtdWxfYWRkYC4KKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9tYXRoX2Zsb2F0X211bF9hZGQgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAg IGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gRnVzZWQgbXVsdGlwbHkgYWRkOiBgc2VsZiAq IHkgKyB6YAorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBtdWxf YWRkKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjptdWxfYWRkOjpNdWxBZGQ7CistICAgICAg ICAgICAgICAgIE11bEFkZDo6bXVsX2FkZChzZWxmLCB5LCB6KQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0Ogor LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX21hdGhfbXVsX2FkZD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBtdWxfYWRkKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0MyA9ICRpZDo6c3BsYXQoMyBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMg JGVsZW1fdHkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwgei5t dWxfYWRkKHosIHopKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8u bXVsX2FkZChvLCB6KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBv Lm11bF9hZGQoeiwgbykpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywg ei5tdWxfYWRkKG8sIG8pKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQsIG8ubXVsX2FkZChvLCBvKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0LCBvLm11bF9hZGQodCwgeikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodCwgdC5tdWxfYWRkKG8sIHopKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGYsIHQubXVsX2FkZCh0LCB6KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShmLCB0Lm11bF9hZGQobywgdCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodDMsIHQubXVsX2FkZChvLCBvKSk7CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo L2Zsb2F0L211bF9hZGRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21hdGgvZmxvYXQvbXVsX2FkZGUucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZGUu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ4ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0 aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgbXVsX2FkZGVgLgorLQorLW1hY3JvX3J1 bGVzISBpbXBsX21hdGhfZmxvYXRfbXVsX2FkZGUgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAg IGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gRnVzZWQgbXVsdGlwbHkgYWRkIGVzdGltYXRl OiB+PSBgc2VsZiAqIHkgKyB6YAorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBX aGlsZSBmdXNlZCBtdWx0aXBseS1hZGQgKGBmbWFgKSBoYXMgaW5maW5pdGUgcHJlY2lzaW9uLAor LSAgICAgICAgICAgIC8vLyBgbXVsX2FkZGVgIGhhcyBfYXQgd29yc3RfIHRoZSBzYW1lIHByZWNp c2lvbiBvZiBhIG11bHRpcGx5IGZvbGxvd2VkIGJ5IGFuIGFkZC4KKy0gICAgICAgICAgICAvLy8g VGhpcyBtaWdodCBiZSBtb3JlIGVmZmljaWVudCBvbiBhcmNoaXRlY3R1cmVzIHRoYXQgZG8gbm90 IGhhdmUgYW4gYGZtYWAgaW5zdHJ1Y3Rpb24uCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgcHViIGZuIG11bF9hZGRlKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjptdWxf YWRkZTo6TXVsQWRkRTsKKy0gICAgICAgICAgICAgICAgTXVsQWRkRTo6bXVsX2FkZGUoc2VsZiwg eSwgeikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsK Ky0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAg ICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX211bF9hZGRlPl0geworLSAgICAgICAg ICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIG11bF9hZGRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpz cGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRp ZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQg PSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB0MyA9ICRpZDo6c3BsYXQoMyBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoeiwgei5tdWxfYWRkZSh6LCB6KSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLm11bF9hZGRlKG8sIHopKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ubXVsX2FkZGUoeiwgbykpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgei5tdWxfYWRkZShvLCBvKSk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCBvLm11bF9hZGRlKG8sIG8pKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIG8ubXVsX2FkZGUodCwgeikpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgdC5tdWxfYWRkZShvLCB6KSk7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLCB0Lm11bF9hZGRlKHQs IHopKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYsIHQubXVsX2FkZGUo bywgdCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodDMsIHQubXVsX2Fk ZGUobywgbykpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9wb3dmLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcG93Zi5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvbWF0aC9mbG9hdC9wb3dmLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNiArMCww IEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQg YHBvd2ZgLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfcG93ZiB7CistICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0 dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBSYWlzZXMgYHNl bGZgIG51bWJlciB0byB0aGUgZmxvYXRpbmcgcG9pbnQgcG93ZXIgb2YgYHhgLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBwb3dmKHNlbGYsIHg6IFNlbGYpIC0+ IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0 Ojpwb3dmOjpQb3dmOworLSAgICAgICAgICAgICAgICBQb3dmOjpwb3dmKHNlbGYsIHgpCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAg ICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAg ICAgcHViIG1vZCBbPCRpZCBfbWF0aF9wb3dmPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHBvd2YoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVt X3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAk ZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLnBvd2Yo eikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgdC5wb3dmKHopKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ucG93ZihvKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCB0LnBvd2YobykpOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYsIHQucG93Zih0KSk7CistICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JlY3ByZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JlY3ByZS5ycworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9m bG9hdC9yZWNwcmUucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDM2ICswLDAgQEAKKy0vLyEgSW1w bGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgcmVjcHJlYC4KKy0K Ky1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3JlY3ByZSB7CistICAgIChbJGVsZW1fdHk6 aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewor LSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBSZWNpcHJvY2FsIGVzdGltYXRl OiBgfj0gMS4gLyBzZWxmYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gRklY TUU6IFRoZSBwcmVjaXNpb24gb2YgdGhlIGVzdGltYXRlIGlzIGN1cnJlbnRseSB1bnNwZWNpZmll ZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gcmVjcHJlKHNl bGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KDEuKSAvIHNlbGYKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAg ICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX3JlY3ByZT5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiByZWNwcmUo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40ZS00 IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3Bs YXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0g KG8gLSBvLnJlY3ByZSgpKS5hYnMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KGVycm9yLmxlKHRvbCkuYWxsKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0 ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZSA9IDAuNTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAoZSAtIHQu cmVjcHJlKCkpLmFicygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3Iu bGUodG9sKS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0 ZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDQwICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9h dGluZy1wb2ludCBgcnNxcnRlYC4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3Jz cXJ0ZSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRl bnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAg IC8vLyBSZWNpcHJvY2FsIHNxdWFyZS1yb290IGVzdGltYXRlOiBgfj0gMS4gLyBzZWxmLnNxcnQo KWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIEZJWE1FOiBUaGUgcHJlY2lz aW9uIG9mIHRoZSBlc3RpbWF0ZSBpcyBjdXJyZW50bHkgdW5zcGVjaWZpZWQuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHJzcXJ0ZShzZWxmKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6bGx2bTo6c2ltZF9mc3FydDsKKy0gICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMS4p IC8gU2ltZChzaW1kX2ZzcXJ0KHNlbGYuMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBw dWIgbW9kIFs8JGlkIF9tYXRoX3JzcXJ0ZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBz dXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiByc3FydGUoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpTUVJU XzI7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40ZS00 IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3Bs YXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0g KG8gLSBvLnJzcXJ0ZSgpKS5hYnMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KGVycm9yLmxlKHRvbCkuYWxsKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0 ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZSA9IDEuIC8gU1FSVF8yOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9 IChlIC0gdC5yc3FydGUoKSkuYWJzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv c2luLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv c2luLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsNTAgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0 aW5nLXBvaW50IGBzaW5gLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfc2luIHsK Ky0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFNp bmUuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHNpbihzZWxm KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpm bG9hdDo6c2luOjpTaW47CistICAgICAgICAgICAgICAgIFNpbjo6c2luKHNlbGYpCistICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBTaW5lIG9mIGBzZWxmICogUElgLgorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBzaW5fcGkoc2VsZikgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnNp bl9waTo6U2luUGk7CistICAgICAgICAgICAgICAgIFNpblBpOjpzaW5fcGkoc2VsZikKKy0gICAg ICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFNpbmUgYW5kIGNvc2luZSBvZiBgc2VsZiAq IFBJYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc2luX2Nv c19waShzZWxmKSAtPiAoU2VsZiwgU2VsZikgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpzaW5fY29zX3BpOjpTaW5Db3NQaTsKKy0gICAgICAgICAg ICAgICAgU2luQ29zUGk6OnNpbl9jb3NfcGkoc2VsZikKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9t YXRoX3Npbj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBzaW4oKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpQSTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHAgPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgcGggPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5IC8gMi4pOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvX3IgPSAkaWQ6OnNwbGF0KChQSSBhcyAkZWxl bV90eSAvIDIuKS5zaW4oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHpfciA9ICRp ZDo6c3BsYXQoKFBJIGFzICRlbGVtX3R5KS5zaW4oKSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6LCB6LnNpbigpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG9fciwgcGguc2luKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoel9yLCBwLnNpbigpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3Fy dC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Nx cnQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydC5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsMzUgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0 aW5nLXBvaW50IGBzcXJ0YC4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3NxcnQg eworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc3FydChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6c3FydDo6U3FydDsKKy0g ICAgICAgICAgICAgICAgU3FydDo6c3FydChzZWxmKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21h dGhfc3FydD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBzcXJ0KCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6U1FSVF8yOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCB6LnNxcnQoKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLnNxcnQoKSk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBlID0gJGlkOjpzcGxhdChTUVJUXzIpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZSwgdC5zcXJ0KCkpOworLQorLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9zcXJ0ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9tYXRoL2Zsb2F0L3NxcnRlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3NxcnRlLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw0NCArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGlj YWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYHNxcnRlYC4KKy0KKy1tYWNyb19ydWxlcyEg aW1wbF9tYXRoX2Zsb2F0X3NxcnRlIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRp ZCB7CistICAgICAgICAgICAgLy8vIFNxdWFyZS1yb290IGVzdGltYXRlLgorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyBGSVhNRTogVGhlIHByZWNpc2lvbiBvZiB0aGUgZXN0aW1h dGUgaXMgY3VycmVudGx5IHVuc3BlY2lmaWVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHB1YiBmbiBzcXJ0ZShzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6c3FydGU6OlNxcnRlOworLSAgICAgICAg ICAgICAgICBTcXJ0ZTo6c3FydGUoc2VsZikKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAg ICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX3Nx cnRlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgIGZuIHNxcnRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6U1FSVF8yOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxlbV90eSk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9ICh6IC0gei5zcXJ0ZSgpKS5hYnMo KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCkuYWxsKCkp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAobyAtIG8uc3Fy dGUoKSkuYWJzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0 b2wpLmFsbCgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3Bs YXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkaWQ6 OnNwbGF0KFNRUlRfMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGVycm9yID0gKGUgLSB0LnNxcnRlKCkpLmFicygpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07 CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t aW5pbWFsLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwu cnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL21pbmltYWwucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDYgKzAsMCBA QAorLSNbbWFjcm9fdXNlXQorLW1vZCBpdWY7CistI1ttYWNyb191c2VdCistbW9kIG1hc2s7Cist I1ttYWNyb191c2VdCistbW9kIHB0cjsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9pdWYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9pdWYucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvaXVmLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSwxNjkgKzAsMCBAQAorLS8vISBNaW5pbWFsIEFQSSBvZiBz aWduZWQgaW50ZWdlciwgdW5zaWduZWQgaW50ZWdlciwgYW5kIGZsb2F0aW5nLXBvaW50CistLy8h IHZlY3RvcnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWluaW1hbF9pdWYgeworLSAgICAoWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJGllbGVtX3R5Omlk ZW50IHwKKy0gICAgICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9uYW1lOmlkZW50KSwrIHwgJCgjWyRk b2M6bWV0YV0pKikgPT4geworLQorLSAgICAgICAgJCgjWyRkb2NdKSoKKy0gICAgICAgIHB1YiB0 eXBlICRpZCA9IFNpbWQ8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+OworLQorLSAgICAgICAgaW1w bCBzZWFsZWQ6OlNpbWQgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBFbGVtZW50ID0gJGVs ZW1fdHk7CistICAgICAgICAgICAgY29uc3QgTEFORVM6IHVzaXplID0gJGVsZW1fY291bnQ7Cist ICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9jb3VudF07CistICAgICAg ICB9CistCistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIENyZWF0ZXMgYSBu ZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIHZlY3RvciBlbGVtZW50cyBpbml0aWFsaXplZAorLSAgICAg ICAgICAgIC8vLyB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZXMuCistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnRvb19tYW55X2FyZ3VtZW50cyldCist ICAgICAgICAgICAgcHViIGNvbnN0IGZuIG5ldygkKCRlbGVtX25hbWU6ICRlbGVtX3R5KSwqKSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCgkZWxlbV9uYW1l IGFzICRpZWxlbV90eSksKikpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBS ZXR1cm5zIHRoZSBudW1iZXIgb2YgdmVjdG9yIGxhbmVzLgorLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBsYW5lcygpIC0+IHVzaXplIHsKKy0gICAgICAg ICAgICAgICAgJGVsZW1fY291bnQKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8v IENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIGVsZW1lbnQgaW5pdGlhbGl6ZWQg dG8KKy0gICAgICAgICAgICAvLy8gYHZhbHVlYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgY29uc3QgZm4gc3BsYXQodmFsdWU6ICRlbGVtX3R5KSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCh7CistICAgICAgICAgICAgICAg ICAgICAjW2FsbG93KG5vbl9jYW1lbF9jYXNlX3R5cGVzLCBkZWFkX2NvZGUpXQorLSAgICAgICAg ICAgICAgICAgICAgc3RydWN0ICRlbGVtX25hbWU7CistICAgICAgICAgICAgICAgICAgICB2YWx1 ZSBhcyAkaWVsZW1fdHkKKy0gICAgICAgICAgICAgICAgfSksKikpCistICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBleHRyYWN0KHNlbGYsIGluZGV4OiB1 c2l6ZSkgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVs ZW1fY291bnQpOworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBzZWxmLmV4dHJhY3RfdW5jaGVj a2VkKGluZGV4KSB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBFeHRyYWN0 cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4 ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBleHRyYWN0X3VuY2hlY2tl ZChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpsbHZtOjpzaW1kX2V4dHJhY3Q7CistICAgICAgICAgICAgICAgIGxldCBlOiAkaWVs ZW1fdHkgPSBzaW1kX2V4dHJhY3Qoc2VsZi4wLCBpbmRleCBhcyB1MzIpOworLSAgICAgICAgICAg ICAgICBlIGFzICRlbGVtX3R5CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBS ZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNl ZCBieSBgbmV3X3ZhbHVlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQ YW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNl bGY6OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbbXVz dF91c2UgPSAicmVwbGFjZSBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0 aGUgdmFsdWUgYXQgYGluZGV4YCBcCistICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNl ZCBieSBgbmV3X3ZhbHVlYGQiCistICAgICAgICAgICAgXQorLSAgICAgICAgICAgIHB1YiBmbiBy ZXBsYWNlKHNlbGYsIGluZGV4OiB1c2l6ZSwgbmV3X3ZhbHVlOiAkZWxlbV90eSkgLT4gU2VsZiB7 CistICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7CistICAgICAg ICAgICAgICAgIHVuc2FmZSB7IHNlbGYucmVwbGFjZV91bmNoZWNrZWQoaW5kZXgsIG5ld192YWx1 ZSkgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2 ZWN0b3Igd2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkgYG5ld192YWx1 ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYCB0 aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFjZV91bmNoZWNrZWQgZG9lcyBub3QgbW9kaWZ5IHRo ZSBvcmlnaW5hbCB2YWx1ZSAtIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIGl0IHJldHVy bnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAgXAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgorLSAgICAgICAgICAgIF0K Ky0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHJlcGxhY2VfdW5jaGVja2VkKAorLSAgICAgICAg ICAgICAgICBzZWxmLAorLSAgICAgICAgICAgICAgICBpbmRleDogdXNpemUsCistICAgICAgICAg ICAgICAgIG5ld192YWx1ZTogJGVsZW1fdHksCistICAgICAgICAgICAgKSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2luc2VydDsKKy0gICAgICAgICAg ICAgICAgU2ltZChzaW1kX2luc2VydChzZWxmLjAsIGluZGV4IGFzIHUzMiwgbmV3X3ZhbHVlIGFz ICRpZWxlbV90eSkpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVz dF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKKy0gICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0 aGluIG1hbnRpc3NhXjEgcmFuZ2UuCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojpm bG9hdF9jbXApXQorLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9taW5pbWFsPl0gewor LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBtaW5pbWFsKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGxhbmVzOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoJGVsZW1fY291bnQsICRpZDo6bGFuZXMoKSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gc3BsYXQgYW5kIGV4dHJhY3QgLyBleHRyYWN0X3VuY2hlY2tlZDoKKy0gICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBWQUw6ICRlbGVtX3R5ID0gNyBhcyAkZWxlbV90eTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWRUM6ICRpZCA9ICRpZDo6c3BsYXQoVkFMKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTCwgVkVDLmV4dHJhY3QoaSkp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVkFMLCB1bnNhZmUgeyBWRUMuZXh0cmFjdF91bmNoZWNrZWQo aSkgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIC8gcmVwbGFj ZV91bmNoZWNrZWQKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IFZFQy5y ZXBsYWNlKDAsIDQyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBp ID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISg0MiBh cyAkZWxlbV90eSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoVkFMLCBuZXdfdmVjLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBuZXdfdmVjID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVD LnJlcGxhY2VfdW5jaGVja2VkKDAsIDQyIGFzICRlbGVtX3R5KQorLSAgICAgICAgICAgICAgICAg ICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5l cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoNDIgYXMgJGVsZW1fdHksIG5ld192 ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTCwgbmV3X3ZlYy5l eHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hv dWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCist ICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAg IGZuIGV4dHJhY3RfcGFuaWNfb29iKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IFZBTDogJGVsZW1fdHkgPSA3IGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IFZFQzogJGlkID0gJGlkOjpzcGxhdChWQUwpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBfID0gVkVDLmV4dHJhY3QoJGlkOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBk b2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8g I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAg ICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10K Ky0gICAgICAgICAgICAgICAgICAgIGZuIHJlcGxhY2VfcGFuaWNfb29iKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IFZBTDogJGVsZW1fdHkgPSA3IGFzICRlbGVtX3R5OworLSAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZFQzogJGlkID0gJGlkOjpzcGxhdChWQUwpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLnJlcGxhY2UoJGlkOjpsYW5lcygp LCA0MiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0KKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvbWFzay5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL21hc2sucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21pbmltYWwvbWFzay5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTc2ICswLDAg QEAKKy0vLyEgTWluaW1hbCBBUEkgb2YgbWFzayB2ZWN0b3JzLgorLQorLW1hY3JvX3J1bGVzISBp bXBsX21pbmltYWxfbWFzayB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4 cHJdOiAkaWQ6aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQKKy0gICAgfCAkdGVzdF90dDp0dCB8ICQo JGVsZW1fbmFtZTppZGVudCksKyB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKKy0gICAgICAgICQo I1skZG9jXSkqCistICAgICAgICBwdWIgdHlwZSAkaWQgPSBTaW1kPFskZWxlbV90eTsgJGVsZW1f Y291bnRdPjsKKy0KKy0gICAgICAgIGltcGwgc2VhbGVkOjpTaW1kIGZvciAkaWQgeworLSAgICAg ICAgICAgIHR5cGUgRWxlbWVudCA9ICRlbGVtX3R5OworLSAgICAgICAgICAgIGNvbnN0IExBTkVT OiB1c2l6ZSA9ICRlbGVtX2NvdW50OworLSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBlID0gW3Uz MjsgJGVsZW1fY291bnRdOworLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCAkaWQgeworLSAg ICAgICAgICAgIC8vLyBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCB2ZWN0b3IgZWxl bWVudHMgaW5pdGlhbGl6ZWQKKy0gICAgICAgICAgICAvLy8gd2l0aCB0aGUgcHJvdmlkZWQgdmFs dWVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5 Ojp0b29fbWFueV9hcmd1bWVudHMpXQorLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBuZXcoJCgk ZWxlbV9uYW1lOiBib29sKSwqKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgU2ltZChjb2Rl Z2VuOjokaWQoJChTZWxmOjpib29sX3RvX2ludGVybmFsKCRlbGVtX25hbWUpKSwqKSkKKy0gICAg ICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENvbnZlcnRzIGEgYm9vbGVhbiB0eXBlIGlu dG8gdGhlIHR5cGUgb2YgdGhlIHZlY3RvciBsYW5lcy4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6aW5kZXhpbmdfc2xpY2luZyldCistICAgICAg ICAgICAgY29uc3QgZm4gYm9vbF90b19pbnRlcm5hbCh4OiBib29sKSAtPiAkaWVsZW1fdHkgewor LSAgICAgICAgICAgICAgICBbMCBhcyAkaWVsZW1fdHksICEoMCBhcyAkaWVsZW1fdHkpXVt4IGFz IHVzaXplXQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUg bnVtYmVyIG9mIHZlY3RvciBsYW5lcy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBwdWIgY29uc3QgZm4gbGFuZXMoKSAtPiB1c2l6ZSB7CistICAgICAgICAgICAgICAgICRl bGVtX2NvdW50CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDb25zdHJ1Y3Rz IGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCBlbGVtZW50IGluaXRpYWxpemVkIHRvCistICAgICAg ICAgICAgLy8vIGB2YWx1ZWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGNvbnN0IGZuIHNwbGF0KHZhbHVlOiBib29sKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAg ICAgU2ltZChjb2RlZ2VuOjokaWQoJCh7CistICAgICAgICAgICAgICAgICAgICAjW2FsbG93KG5v bl9jYW1lbF9jYXNlX3R5cGVzLCBkZWFkX2NvZGUpXQorLSAgICAgICAgICAgICAgICAgICAgc3Ry dWN0ICRlbGVtX25hbWU7CistICAgICAgICAgICAgICAgICAgICBTZWxmOjpib29sX3RvX2ludGVy bmFsKHZhbHVlKQorLSAgICAgICAgICAgICAgICB9KSwqKSkKKy0gICAgICAgICAgICB9CistCist ICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBgaW5kZXhgLgorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGV4dHJhY3Qoc2VsZiwgaW5kZXg6IHVzaXpl KSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50 KTsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgc2VsZi5leHRyYWN0X3VuY2hlY2tlZChpbmRl eCkgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZh bHVlIGF0IGBpbmRleGAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2Fm ZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxm OjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gZXh0cmFjdF91bmNoZWNrZWQoc2VsZiwg aW5kZXg6IHVzaXplKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt OjpzaW1kX2V4dHJhY3Q7CistICAgICAgICAgICAgICAgIGxldCB4OiAkaWVsZW1fdHkgPSBzaW1k X2V4dHJhY3Qoc2VsZi4wLCBpbmRleCBhcyB1MzIpOworLSAgICAgICAgICAgICAgICB4ICE9IDAK Ky0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9y IHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5CistICAgICAgICAgICAg Ly8vIGBuZXdfdmFsdWVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBh bmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2Vs Zjo6bGFuZXMoKWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1ttdXN0 X3VzZSA9ICJyZXBsYWNlIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCist ICAgICAgICAgICAgICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRo ZSB2YWx1ZSBhdCBgaW5kZXhgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2Vk IGJ5IGBuZXdfdmFsdWVgZCIKKy0gICAgICAgICAgICBdCistICAgICAgICAgICAgcHViIGZuIHJl cGxhY2Uoc2VsZiwgaW5kZXg6IHVzaXplLCBuZXdfdmFsdWU6IGJvb2wpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOworLSAgICAgICAgICAg ICAgICB1bnNhZmUgeyBzZWxmLnJlcGxhY2VfdW5jaGVja2VkKGluZGV4LCBuZXdfdmFsdWUpIH0K Ky0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9y IHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5CistICAgICAgICAgICAg Ly8vIGBuZXdfdmFsdWVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNh ZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2Vs Zjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICAjW211c3RfdXNlID0gInJlcGxhY2VfdW5jaGVja2VkIGRvZXMg bm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCistICAgICAgICAgICAgICAgICAgICAg ICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIFwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgZCIKKy0g ICAgICAgICAgICBdCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiByZXBsYWNlX3VuY2hlY2tl ZCgKKy0gICAgICAgICAgICAgICAgc2VsZiwKKy0gICAgICAgICAgICAgICAgaW5kZXg6IHVzaXpl LAorLSAgICAgICAgICAgICAgICBuZXdfdmFsdWU6IGJvb2wsCistICAgICAgICAgICAgKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2luc2VydDsKKy0g ICAgICAgICAgICAgICAgU2ltZChzaW1kX2luc2VydChzZWxmLjAsIGluZGV4IGFzIHUzMiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxmOjpib29sX3RvX2ludGVybmFsKG5l d192YWx1ZSkpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3Rf aWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7 CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21pbmltYWw+XSB7CistICAgICAgICAg ICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIG1pbmltYWwoKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVE9ETzogdGVzdCBuZXcKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBs YW5lczoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRlbGVtX2NvdW50LCAk aWQ6OmxhbmVzKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwbGF0IGFuZCBl eHRyYWN0IC8gZXh0cmFjdF91bmNoZWNrZWQ6CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHZlYyA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0cnVlLCB2ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodHJ1ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgeyB2ZWMuZXh0cmFjdF91bmNoZWNrZWQoaSkgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyByZXBsYWNlIC8gcmVwbGFjZV91bmNoZWNrZWQKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IHZlYy5yZXBsYWNlKDAsIGZhbHNlKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShmYWxzZSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodHJ1ZSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZlYy5yZXBsYWNlX3VuY2hlY2tlZCgwLCBmYWxzZSkKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRp ZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMCB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZhbHNlLCBuZXdfdmVj LmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0cnVlLCBuZXdfdmVjLmV4 dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91 bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAg ICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5p Y10KKy0gICAgICAgICAgICAgICAgICAgIGZuIGV4dHJhY3RfcGFuaWNfb29iKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgXyA9IHZlYy5leHRyYWN0KCRpZDo6bGFuZXMoKSk7CistICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1i aW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAg ICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0K Ky0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gcmVwbGFjZV9wYW5pY19vb2IoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHZlYyA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBf ID0gdmVjLnJlcGxhY2UoJGlkOjpsYW5lcygpLCB0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWluaW1hbC9wdHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWlu aW1hbC9wdHIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvcHRyLnJzCisrKysgL2Rldi9udWxsCitA QCAtMSwxMzczICswLDAgQEAKKy0vLyEgTWluaW1hbCBBUEkgb2YgcG9pbnRlciB2ZWN0b3JzLgor LQorLW1hY3JvX3J1bGVzISBpbXBsX21pbmltYWxfcCB7CistICAgIChbJGVsZW1fdHk6dHk7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50LAorLSAgICAgJHVzaXpl X3R5OmlkZW50LCAkaXNpemVfdHk6aWRlbnQgfCAkcmVmOmlkZW50IHwgJHRlc3RfdHQ6dHQKKy0g ICAgIHwgJCgkZWxlbV9uYW1lOmlkZW50KSwrIHwgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKSB8 CistICAgICAkKCNbJGRvYzptZXRhXSkqKSA9PiB7CistCistICAgICAgICAkKCNbJGRvY10pKgor LSAgICAgICAgcHViIHR5cGUgJGlkPFQ+ID0gU2ltZDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT47 CistCistICAgICAgICBpbXBsPFQ+IHNlYWxlZDo6U2ltZCBmb3IgJGlkPFQ+IHsKKy0gICAgICAg ICAgICB0eXBlIEVsZW1lbnQgPSAkZWxlbV90eTsKKy0gICAgICAgICAgICBjb25zdCBMQU5FUzog dXNpemUgPSAkZWxlbV9jb3VudDsKKy0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7 ICRlbGVtX2NvdW50XTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsK Ky0gICAgICAgICAgICAvLy8gQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggdmVjdG9y IGVsZW1lbnRzIGluaXRpYWxpemVkCistICAgICAgICAgICAgLy8vIHdpdGggdGhlIHByb3ZpZGVk IHZhbHVlcy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW2FsbG93KGNs aXBweTo6dG9vX21hbnlfYXJndW1lbnRzKV0KKy0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbmV3 KCQoJGVsZW1fbmFtZTogJGVsZW1fdHkpLCopIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBT aW1kKGNvZGVnZW46OiRpZCgkKCRlbGVtX25hbWUpLCopKQorLSAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHZlY3RvciBsYW5lcy4KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbGFuZXMoKSAtPiB1 c2l6ZSB7CistICAgICAgICAgICAgICAgICRlbGVtX2NvdW50CistICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgIC8vLyBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCBlbGVt ZW50IGluaXRpYWxpemVkIHRvCistICAgICAgICAgICAgLy8vIGB2YWx1ZWAuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGNvbnN0IGZuIHNwbGF0KHZhbHVlOiAkZWxl bV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlkKCQoewor LSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhub25fY2FtZWxfY2FzZV90eXBlcywgZGVhZF9j b2RlKV0KKy0gICAgICAgICAgICAgICAgICAgIHN0cnVjdCAkZWxlbV9uYW1lOworLSAgICAgICAg ICAgICAgICAgICAgdmFsdWUKKy0gICAgICAgICAgICAgICAgfSksKikpCistICAgICAgICAgICAg fQorLQorLSAgICAgICAgICAgIC8vLyBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFj aCBlbGVtZW50IGluaXRpYWxpemVkIHRvCistICAgICAgICAgICAgLy8vIGBudWxsYC4KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbnVsbCgpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICBTZWxmOjpzcGxhdChjcmF0ZTo6cHRyOjpudWxsX211dCgp IGFzICRlbGVtX3R5KQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJu cyBhIG1hc2sgdGhhdCBzZWxlY3RzIHRob3NlIGxhbmVzIHRoYXQgY29udGFpbiBgbnVsbGAKKy0g ICAgICAgICAgICAvLy8gcG9pbnRlcnMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgcHViIGZuIGlzX251bGwoc2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAg ICBzZWxmLmVxKFNlbGY6Om51bGwoKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAg Ly8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBgaW5kZXhgLgorLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGZuIGV4dHJhY3Qoc2VsZiwgaW5kZXg6IHVzaXplKSAtPiAkZWxlbV90 eSB7CistICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7CistICAg ICAgICAgICAgICAgIHVuc2FmZSB7IHNlbGYuZXh0cmFjdF91bmNoZWNrZWQoaW5kZXgpIH0KKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBg aW5kZXhgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMo KWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGV4dHJhY3RfdW5jaGVja2VkKHNlbGYsIGluZGV4OiB1 c2l6ZSkgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfZXh0cmFjdDsKKy0gICAgICAgICAgICAgICAgc2ltZF9leHRyYWN0KHNlbGYuMCwgaW5kZXgg YXMgdTMyKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5l dyB2ZWN0b3Igd2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkKKy0gICAg ICAgICAgICAvLy8gYG5ld192YWx1ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRl eCA+PSBTZWxmOjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICAjW211c3RfdXNlID0gInJlcGxhY2UgZG9lcyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1 ZSAtIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9y IHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg cmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgorLSAgICAgICAgICAgIF0KKy0gICAgICAgICAgICAj W2FsbG93KGNsaXBweTo6bm90X3Vuc2FmZV9wdHJfYXJnX2RlcmVmKV0KKy0gICAgICAgICAgICBw dWIgZm4gcmVwbGFjZShzZWxmLCBpbmRleDogdXNpemUsIG5ld192YWx1ZTogJGVsZW1fdHkpIC0+ IFNlbGYgeworLSAgICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOwor LSAgICAgICAgICAgICAgICB1bnNhZmUgeyBzZWxmLnJlcGxhY2VfdW5jaGVja2VkKGluZGV4LCBu ZXdfdmFsdWUpIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMg YSBuZXcgdmVjdG9yIHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5IGBu ZXdfdmFsdWVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQor LSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFu ZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICAjW211c3RfdXNlID0gInJlcGxhY2VfdW5jaGVja2VkIGRvZXMgbm90IG1v ZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCistICAgICAgICAgICAgICAgICAgICAgICAgICBp dCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIFwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgZCIKKy0gICAgICAg ICAgICBdCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiByZXBsYWNlX3VuY2hlY2tlZCgKKy0g ICAgICAgICAgICAgICAgc2VsZiwKKy0gICAgICAgICAgICAgICAgaW5kZXg6IHVzaXplLAorLSAg ICAgICAgICAgICAgICBuZXdfdmFsdWU6ICRlbGVtX3R5LAorLSAgICAgICAgICAgICkgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9pbnNlcnQ7CistICAg ICAgICAgICAgICAgIFNpbWQoc2ltZF9pbnNlcnQoc2VsZi4wLCBpbmRleCBhcyB1MzIsIG5ld192 YWx1ZSkpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLQorLSAgICAgICAgdGVzdF9p ZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK Ky0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWluaW1hbD5dIHsKKy0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgZm4gbWluaW1hbCgpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBsYW5lczoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRlbGVt X2NvdW50LCAkaWQ6OjxpMzI+OjpsYW5lcygpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBzcGxhdCBhbmQgZXh0cmFjdCAvIGV4dHJhY3RfdW5jaGVja2VkOgorLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBWQUw3OiA8JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVu dAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRyZWYhKDcpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBWQUw0MjogPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1l bnQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkcmVmISg0Mik7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IFZFQzogJGlkPGkzMj4gPSAkaWQ6OnNwbGF0KFZBTDcpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDcsIFZFQy5leHRyYWN0 KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFZBTDcsIHVuc2FmZSB7IFZFQy5leHRyYWN0X3VuY2hl Y2tlZChpKSB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAg ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgLyBy ZXBsYWNlX3VuY2hlY2tlZAorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfdmVjID0g VkVDLnJlcGxhY2UoMCwgVkFMNDIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShW QUw0MiwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFM NywgbmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bmV3X3ZlYyA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFQy5yZXBs YWNlX3VuY2hlY2tlZCgwLCBWQUw0MikKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUw0MiwgbmV3X3ZlYy5leHRyYWN0KGkpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMNywgbmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG4gPSAkaWQ6OjxpMzI+OjpudWxs KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMy Pjo6c3BsYXQodW5zYWZlIHsgY3JhdGU6Om1lbTo6emVyb2VkKCkgfSkKKy0gICAgICAgICAgICAg ICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEobi5pc19udWxs KCkuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIG4gPSBuLnJlcGxhY2UoCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0 ZSgxX2lzaXplKSB9CistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKCFuLmlzX251bGwoKS5hbGwoKSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgaWYgJGlkOjo8aTMyPjo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKG4uaXNfbnVsbCgpLmFueSgpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFu LmlzX251bGwoKS5hbnkoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmlu ZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAg ICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld CistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCist ICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAg IGZuIGV4dHJhY3RfcGFuaWNfb29iKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBW QUw6IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gJHJlZiEoNyk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZF QzogJGlkPGkzMj4gPSAkaWQ6OnNwbGF0KFZBTCk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IF8gPSBWRUMuZXh0cmFjdCgkaWQ6OjxpMzI+OjpsYW5lcygpKTsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4t dGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAg ICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAg ICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiBy ZXBsYWNlX3BhbmljX29vYigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMOiA8 JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9ICRyZWYhKDcpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWQUw0Mjog PCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAkcmVmISg0Mik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZFQzog JGlkPGkzMj4gPSAkaWQ6OnNwbGF0KFZBTCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IF8gPSBWRUMucmVwbGFjZSgkaWQ6OjxpMzI+OjpsYW5lcygpLCBWQUw0Mik7CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICBpbXBsPFQ+IGNyYXRlOjpmbXQ6OkRlYnVnIGZvciAkaWQ8VD4gewor LSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRl bXMpXQorLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6Zm10OjpGb3Jt YXR0ZXI8J18+KQorLSAgICAgICAgICAgICAgICAgICAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewor LSAgICAgICAgICAgICAgICB3cml0ZSEoCistICAgICAgICAgICAgICAgICAgICBmLAorLSAgICAg ICAgICAgICAgICAgICAgInt9PHt9PigiLAorLSAgICAgICAgICAgICAgICAgICAgc3RyaW5naWZ5 ISgkaWQpLAorLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6OmludHJpbnNpY3M6OnR5cGVfbmFt ZTo6PFQ+KCkKKy0gICAgICAgICAgICAgICAgKT87CistICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/OworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAg JHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfZm10X2RlYnVnPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAg ICAgICBmbiBkZWJ1ZygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgYXJyYXl2ZWM6 OntBcnJheVN0cmluZyxBcnJheVZlY307CistICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBU aW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OjxpMzI+OjpkZWZhdWx0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAg d3JpdGUhKCZtdXQgcywgIns6P30iLCB2KS51bndyYXAoKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGJlZyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIHdyaXRlISgmbXV0IGJlZywgInt9PGkzMj4oIiwgc3RyaW5naWZ5ISgkaWQpKS51 bndyYXAoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJzID0ge30gKHNob3VsZCBzdGFydCB3aXRoID0ge30pIiwgcywg YmVnCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRdPgorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCksICIiKQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAucmVwbGFjZSgiKSIsICIiKS5zcGxpdCgiLCIpCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29sbGVjdCgpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjo8aTMyPjo6bGFuZXMoKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51 bWVyYXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55 U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQg ZSwgIns6P30iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gRGVmYXVsdCBmb3IgJGlkPFQ+ IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBkZWZhdWx0KCkgLT4g U2VsZiB7CistICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBwdHJzIGRvIG5vdCBpbXBsZW1lbnQg ZGVmYXVsdAorLSAgICAgICAgICAgICAgICBTZWxmOjpudWxsKCkKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoK Ky0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9kZWZhdWx0Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBkZWZh dWx0KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6ZGVm YXVsdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46 OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5leHRyYWN0KGkpLCB1bnNhZmUgeyBjcmF0 ZTo6bWVtOjp6ZXJvZWQoKSB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDxU PiAkaWQ8VD4geworLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZXF1YWxpdHkgY29tcGFyaXNv bi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZXEoc2VsZiwg b3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0g ICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9lcTsKKy0gICAgICAgICAg ICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7 CistICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKG90aGVyKTsKKy0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9lcShhLjAsIGIu MCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAg Ly8vIExhbmUtd2lzZSBpbmVxdWFsaXR5IGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgcHViIGZuIG5lKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190 eSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6Omxsdm06OnNpbWRfbmU7CistICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXpl X3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAg bGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7CistICAgICAg ICAgICAgICAgICAgICBTaW1kKHNpbWRfbmUoYS4wLCBiLjApKQorLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgbGVzcy10aGFu IGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZu IGx0KHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfbHQ7Cist ICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRl OjptZW06OnRyYW5zbXV0ZShvdGhlcik7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHNpbWRf bHQoYS4wLCBiLjApKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgIC8vLyBMYW5lLXdpc2UgbGVzcy10aGFuLW9yLWVxdWFscyBjb21wYXJpc29uLgor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBsZShzZWxmLCBvdGhl cjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAg ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2xlOworLSAgICAgICAgICAgICAg ICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0g ICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211 dGUob3RoZXIpOworLSAgICAgICAgICAgICAgICAgICAgU2ltZChzaW1kX2xlKGEuMCwgYi4wKSkK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8g TGFuZS13aXNlIGdyZWF0ZXItdGhhbiBjb21wYXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiBmbiBndChzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkg eworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjpsbHZtOjpzaW1kX2d0OworLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6ZV90 eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgIGxl dCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOworLSAgICAgICAg ICAgICAgICAgICAgU2ltZChzaW1kX2d0KGEuMCwgYi4wKSkKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGdyZWF0ZXItdGhh bi1vci1lcXVhbHMgY29tcGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBwdWIgZm4gZ2Uoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6 c2ltZF9nZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXpl X3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKKy0gICAgICAgICAgICAgICAgICAg IFNpbWQoc2ltZF9nZShhLjAsIGIuMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVz dF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9jbXBfdmVydGljYWw+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgIGZuIGNtcCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkz Mj46Om51bGwoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6PGkzMj46 OnNwbGF0KHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06 OnRyYW5zbXV0ZSgxX2lzaXplKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5sdChiKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgZSA9ICRtYXNrX3R5OjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIg PSBhLmxlKGIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9ICRtYXNrX3R5OjpzcGxhdChmYWxzZSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmd0KGIpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgciA9IGEuZ2UoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5lcShiKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhID0gYTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSBi OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IGU7CistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYSA9IGEucmVwbGFjZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7 IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgwX2lzaXplKSB9CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVw bGFjZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0 ZSgxX2lzaXplKSB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZSA9IGUucmVwbGFjZShpLCB0cnVlKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGEgPSBhLnJlcGxhY2UoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBj cmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkgfQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxh Y2UoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUo MF9pc2l6ZSkgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGUgPSBlLnJlcGxhY2UoaSwgZmFsc2UpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5sdChiKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICAjW2Fs bG93KGNsaXBweTo6cGFydGlhbGVxX25lX2ltcGwpXQorLSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6 Y21wOjpQYXJ0aWFsRXE8JGlkPFQ+PiBmb3IgJGlkPFQ+IHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBlcSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0g ICAgICAgICAgICAgICAgJGlkOjo8VD46OmVxKCpzZWxmLCAqb3RoZXIpLmFsbCgpCistICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG5lKCZzZWxm LCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAkaWQ6OjxUPjo6bmUo KnNlbGYsICpvdGhlcikuYW55KCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3J1c3Qt Y2xpcHB5L2lzc3Vlcy8yODkyCistICAgICAgICAjW2FsbG93KGNsaXBweTo6cGFydGlhbGVxX25l X2ltcGwpXQorLSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6Y21wOjpQYXJ0aWFsRXE8TGV4aWNvZ3Jh cGhpY2FsbHlPcmRlcmVkPCRpZDxUPj4+CistICAgICAgICAgICAgZm9yIExleGljb2dyYXBoaWNh bGx5T3JkZXJlZDwkaWQ8VD4+CistICAgICAgICB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAg ICAgICAgICAgIHNlbGYuMCA9PSBvdGhlci4wCistICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJv b2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgIT0gb3RoZXIuMAorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX2NtcF9QYXJ0aWFsRXE+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIHBhcnRpYWxfZXEoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6 OjxpMzI+OjpudWxsKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6Ojxp MzI+OjpzcGxhdCh1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgIT0gYik7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISghKGEgPT0gYikpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEoYSA9PSBhKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSAh PSBhKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjo8aTMyPjo6bGFuZXMo KSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46 Om51bGwoKS5yZXBsYWNlKDAsIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjo8 aTMyPjo6c3BsYXQodW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy YXRlOjptZW06OnRyYW5zbXV0ZSgxX2lzaXplKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhICE9IGIpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSA9PSBiKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSA9PSBhKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISghKGEgIT0gYSkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6RXEgZm9y ICRpZDxUPiB7fQorLSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6Y21wOjpFcSBmb3IgTGV4aWNvZ3Jh cGhpY2FsbHlPcmRlcmVkPCRpZDxUPj4ge30KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAg ICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAg ICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9lcT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAg ICAgICAgICAgZm4gZXEoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgZm4gZm9vPEU6IGNy YXRlOjpjbXA6OkVxPihfOiBFKSB7fQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0g JGlkOjo8aTMyPjo6bnVsbCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvbyhhKTsKKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gRnJvbTxbJGVsZW1fdHk7ICRlbGVtX2Nv dW50XT4gZm9yICRpZDxUPiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg Zm4gZnJvbShhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0pIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHVubmVj ZXNzYXJ5IHplcm9pbmc7IGJldHRlciB0aGFuIFVCLgorLSAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB1OiBTZWxmID0gY3JhdGU6Om1lbTo6emVyb2VkKCk7CistICAgICAgICAgICAgICAgICAg ICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKAorLSAgICAgICAgICAgICAgICAgICAg ICAgICZhcnJheSBhcyAqY29uc3QgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gYXMgKmNvbnN0IHU4 LAorLSAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgdSBhcyAqbXV0IFNlbGYgYXMgKm11dCB1 OCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4o KQorLSAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgIHUKKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGw8 VD4gSW50bzxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT4gZm9yICRpZDxUPiB7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gaW50byhzZWxmKSAtPiBbJGVsZW1fdHk7ICRl bGVtX2NvdW50XSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAg ICAgICAvLyBGSVhNRTogdW5uZWNlc3NhcnkgemVyb2luZzsgYmV0dGVyIHRoYW4gVUIuCistICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHU6IFskZWxlbV90eTsgJGVsZW1fY291bnRdID0gY3Jh dGU6Om1lbTo6emVyb2VkKCk7CistICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5 X25vbm92ZXJsYXBwaW5nKAorLSAgICAgICAgICAgICAgICAgICAgICAgICZzZWxmIGFzICpjb25z dCAkaWQ8VD4gYXMgKmNvbnN0IHU4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgdSBh cyAqbXV0IFskZWxlbV90eTsgJGVsZW1fY291bnRdIGFzICptdXQgdTgsCistICAgICAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+KCkKKy0gICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICB1CistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAg ICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9mcm9tPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAg ICAgICBmbiBhcnJheSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWVzID0g WzFfaTMyOyAkZWxlbV9jb3VudF07CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCB2ZWM6ICRpZDxpMzI+ID0gRGVmYXVsdDo6ZGVmYXVsdCgpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgYXJyYXkgPSBbCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRp ZDo6PGkzMj46Om51bGwoKS5leHRyYWN0KDApOyAkZWxlbV9jb3VudAorLSAgICAgICAgICAgICAg ICAgICAgICAgIF07CistCistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVs ZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gJnZhbHVl c1tpXSBhcyAqY29uc3QgaTMyIGFzICptdXQgaTMyOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ZWMgPSB2ZWMucmVwbGFjZShpLCBwdHIpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhcnJheVtpXSA9IHB0cjsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZXJlIGlzIG5vIGltcGwgb2YgRnJvbTwk aWQ8VD4+IGZvciBbJGVsZW1fdHk7IE5dCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGV0 IGEwID0gRnJvbTo6ZnJvbSh2ZWMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2Vy dF9lcSEoYTAsIGFycmF5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVudXNl ZF9hc3NpZ25tZW50cyldCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhMSA9IGFy cmF5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGExID0gdmVjLmludG8oKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGExLCBhcnJheSk7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYwOiAkaWQ8aTMyPiA9IEZyb206OmZyb20oYXJyYXkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodjAsIHZlYyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHYxOiAkaWQ8aTMyPiA9IGFycmF5LmludG8oKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYxLCB2ZWMpOworLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAg ICAgaW1wbDxUPiAkaWQ8VD4geworLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcg dmVjdG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMg bm90IGFsaWduZWQKKy0gICAgICAgICAgICAvLy8gdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAg Ym91bmRhcnkuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGZy b21fc2xpY2VfYWxpZ25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4o KSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9 IHNsaWNlLmFzX3B0cigpOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGln bl9vZjo6PFNlbGY+KCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IDAKKy0gICAg ICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNl X2FsaWduZWRfdW5jaGVja2VkKHNsaWNlKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGgg dGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYHNs aWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgcHViIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkKHNsaWNlOiAmWyRlbGVtX3R5XSkg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAg ICAgIFNlbGY6OmZyb21fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlh dGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xp Y2VbMF1gIGlzIG5vdCBhbGlnbmVkCistICAgICAgICAgICAgLy8vIHRvIGFuIGBhbGlnbl9vZjo6 PFNlbGY+KClgIGJvdW5kYXJ5LCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gZnJvbV9zbGljZV9hbGln bmVkX3VuY2hlY2tlZChzbGljZTogJlskZWxlbV90eV0pCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KKy0gICAgICAgICAgICAg ICAgKihzbGljZS5hc19wdHIoKS5jYXN0KCkpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0aGUg YHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6 bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkX3VuY2hl Y2tlZCgKKy0gICAgICAgICAgICAgICAgc2xpY2U6ICZbJGVsZW1fdHldLAorLSAgICAgICAgICAg ICkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjpzaXplX29mOwor LSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX3B0cigpLmNhc3QoKTsK Ky0gICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gU2VsZjo6c3BsYXQoY3JhdGU6OnB0cjo6bnVs bF9tdXQoKSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgIGxldCBzZWxmX3B0ciA9ICZt dXQgeCBhcyAqbXV0IFNlbGYgYXMgKm11dCB1ODsKKy0gICAgICAgICAgICAgICAgY3JhdGU6OnB0 cjo6Y29weV9ub25vdmVybGFwcGluZygKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9wdHIs CistICAgICAgICAgICAgICAgICAgICBzZWxmX3B0ciwKKy0gICAgICAgICAgICAgICAgICAgIHNp emVfb2Y6OjxTZWxmPigpLAorLSAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICB4 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAg ICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2xpY2VfZnJvbV9zbGljZT5dIHsKKy0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 aXRlcjo6SXRlcmF0b3I7CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbm9uX251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkgKyAx CistICAgICAgICAgICAgICAgICAgICAgICAgXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1 bmFsaWduZWRbMF0gPSBudWxsOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAk aWQ6OjxpMzI+Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnVuYWxpZ25lZFsxLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5l bnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4ID09IDAg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBudWxsKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbm9uX251bGwpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRleCAtIDEpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJ WE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQor LSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAg ICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAg ICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAg ICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZF9mYWlsKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCAoX251bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMy Pik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVuYWxpZ25lZCA9IFtub25fbnVsbDsg JGlkOjo8aTMyPjo6bGFuZXMoKSArIDFdOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo ZSBzbGljZSBpcyBub3QgbGFyZ2UgZW5vdWdoID0+IHBhbmljCistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IF92ZWMgPSAkaWQ6OjxpMzI+Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnVuYWxpZ25lZFsyLi5dCistICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAg ICAgIHVuaW9uIEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFs8JGlkPGkzMj4g YXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgIF92 ZWM6ICRpZDxpMzI+LAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWdu ZWQoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBw dHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxp Z25lZCA9IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAq ICRpZDo6PGkzMj46OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgJGlkOjo8aTMyPjo6bGFuZXMoKS4uKDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhbGlnbmVkLmRhdGFbaV0gPSBub25fbnVsbDsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdmVjID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGlkOjo8aTMyPjo6ZnJvbV9zbGljZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmFsaWduZWQuZGF0YVskaWQ6OjxpMzI+OjpsYW5lcygpLi5dCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9Owor LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsICZiKSBpbiB1bnNhZmUgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbmVkLmRhdGEuaXRlcigpLmVudW1lcmF0ZSgp CistICAgICAgICAgICAgICAgICAgICAgICAgfSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGluZGV4IDwgJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG51bGwpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShiLCBub25fbnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIsIHZlYy5leHRy YWN0KGluZGV4IC0gJGlkOjo8aTMyPjo6bGFuZXMoKSkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3No b3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAg ICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3Bh bmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkX2ZhaWxfbGFu ZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChfbnVsbCwgbm9uX251bGwpID0g cHRyX3ZhbHMhKCRpZDxpMzI+KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25l ZCA9IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbm9uX251bGw7IDIg KiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGljZSBpcyBub3QgbGFyZ2UgZW5vdWdoID0+ IHBhbmljCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMgPSB1bnNhZmUgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+Ojpmcm9tX3NsaWNlX2FsaWduZWQo CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWxpZ25lZC5kYXRhWzIgKiAkaWQ6 OjxpMzI+OjpsYW5lcygpLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBv cnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAv LyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSld CistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3No b3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZF9m YWlsX2FsaWduKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwgX25vbl9udWxsKSA9IHB0cl92YWxzISgk aWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGlnbmVkID0gQSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6 PGkzMj46OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBv ZiBkYXRhCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSBhbGlnbmVkLmRh dGEuYXNfcHRyKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBwb2lu dGVyIGJ5IG9uZSBlbGVtZW50CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIg PSBwdHIud3JhcHBpbmdfYWRkKDEpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBwdHIuYWxpZ25fb2Zmc2V0KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jh dGU6Om1lbTo6YWxpZ25fb2Y6OjwkaWQ8aTMyPj4oKQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHBv aW50ZXIgaXMgcHJvcGVybHkgYWxpZ25lZCwgc28KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGZyb21fc2xpY2VfYWxpZ25lZCB3b24ndCBmYWlsIGhlcmUgKGUuZy4gdGhpcwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FuIGhhcHBlbiBmb3IgaTEyOHgx KS4gU28gd2UgcGFuaWMgdG8gbWFrZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdGhlICJzaG91bGRfZmFpbCIgdGVzdCBwYXNzOgorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGFuaWMhKCJvayIpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cist CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHNsaWNlIC0gdGhpcyBp cyBzYWZlLCBiZWNhdXNlIHRoZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVt ZW50cyBvZiB0aGUgc2xpY2UgZXhpc3QsIGFyZSBwcm9wZXJseQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBpbml0aWFsaXplZCwgYW5kIHByb3Blcmx5IGFsaWduZWQ6CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gc2xpY2U6OmZyb21fcmF3X3BhcnRzKAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLCAkaWQ6OjxpMzI+OjpsYW5lcygpCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRoZSBzbGljZQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQgZG9lcyBub3QgbWF0Y2ggdGhlIGFs aWdubWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVudHMgZm9y IHRoZSB2ZWN0b3IgdHlwZToKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMg PSAkaWQ6OjxpMzI+Ojpmcm9tX3NsaWNlX2FsaWduZWQocyk7CistICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4geworLSAg ICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xp Y2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5l cygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QKKy0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBh biBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeS4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBwdWIgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZChzZWxmLCBzbGljZTog Jm11dCBbJGVsZW1fdHldKSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfbXV0X3B0cigpOworLSAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0ISgKKy0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRf cHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgID09IDAKKy0gICAgICAgICAgICAgICAgICAgICk7CistICAg ICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3RvX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKHNs aWNlKTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAuCist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHdyaXRlX3RvX3NsaWNl X3VuYWxpZ25lZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49 ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfdG9fc2xpY2Vf dW5hbGlnbmVkX3VuY2hlY2tlZChzbGljZSk7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistCistICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0 b3IgdG8gdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMg U2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4o KSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5vdAorLSAgICAgICAgICAgIC8v LyBhbGlnbmVkIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LCB0aGUgYmVoYXZp b3IgaXMKKy0gICAgICAgICAgICAvLy8gdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF91bmNo ZWNrZWQoCistICAgICAgICAgICAgICAgIHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0sCist ICAgICAgICAgICAgKSB7CistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0 cl9hbGlnbm1lbnQpXQorLSAgICAgICAgICAgICAgICAqKHNsaWNlLmFzX211dF9wdHIoKS5jYXN0 KCkpID0gc2VsZjsKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFdyaXRlcyB0 aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1 bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2Fm ZSBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKAorLSAgICAgICAgICAgICAg ICBzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldLAorLSAgICAgICAgICAgICkgeworLSAgICAg ICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKS5jYXN0KCk7Cist ICAgICAgICAgICAgICAgIGxldCBzZWxmX3B0ciA9ICZzZWxmIGFzICpjb25zdCBTZWxmIGFzICpj b25zdCB1ODsKKy0gICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGlu ZygKKy0gICAgICAgICAgICAgICAgICAgIHNlbGZfcHRyLAorLSAgICAgICAgICAgICAgICAgICAg dGFyZ2V0X3B0ciwKKy0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjxT ZWxmPigpLAorLSAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NsaWNl X3dyaXRlX3RvX3NsaWNlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwor LSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjppdGVyOjpJdGVyYXRvcjsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVf dG9fc2xpY2VfdW5hbGlnbmVkKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVs bCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFtudWxsOyAkaWQ6OjxpMzI+OjpsYW5lcygpICsgMV07 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNwbGF0KG5v bl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfdW5h bGlnbmVkKCZtdXQgdW5hbGlnbmVkWzEuLl0pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZv ciAoaW5kZXgsICZiKSBpbiB1bmFsaWduZWQuaXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPT0gMCB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG51bGwpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShiLCBub25fbnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGIsIHZlYy5leHRyYWN0KGluZGV4IC0gMSkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0 IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAv LyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAg ICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAg ICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRl X3RvX3NsaWNlX3VuYWxpZ25lZF9mYWlsKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFtudWxsOyAkaWQ6OjxpMzI+OjpsYW5lcygp ICsgMV07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNw bGF0KG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMg bm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53 cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCB1bmFsaWduZWRbMi4uXSk7CistICAgICAgICAg ICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBkYXRhOiBbPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1l bnQ7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiAkaWQ6OjxpMzI+OjpsYW5l cygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBfdmVjOiAkaWQ8aTMyPiwKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgpIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFtudWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMo KV0sCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6c3BsYXQobm9uX251bGwpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0 ZV90b19zbGljZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11 dCBhbGlnbmVkLmRhdGFbJGlkOjo8aTMyPjo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zYWZlIHsgYWxpZ25lZC5kYXRhLml0ZXIoKS5lbnVtZXJhdGUoKSB9IHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPCAkaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbnVsbCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAkaWQ6OjxpMzI+OjpsYW5lcygpKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2Vz IG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAg ICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAg ICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19z bGljZV9hbGlnbmVkX2ZhaWxfbGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IChudWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAorLSAgICAgICAgICAg ICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6 PGkzMj46OnNwbGF0KG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUg c2xpY2UgaXMgbm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYworLSAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19z bGljZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGln bmVkLmRhdGFbMiAqICRpZDo6PGkzMj46OmxhbmVzKCkuLl0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAg ICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRl c3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAg IC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAg ICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3Jp dGVfdG9fc2xpY2VfYWxpZ25lZF9mYWlsX2FsaWduKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE6IFtudWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH07CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBhIHBv aW50ZXIgdG8gdGhlIGZyb250IG9mIGRhdGEKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHB0ciA9IGFsaWduZWQuZGF0YS5hc19tdXRfcHRyKCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIG9mZnNldCBwb2ludGVyIGJ5IG9uZSBlbGVtZW50CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBwdHIgPSBwdHIud3JhcHBpbmdfYWRkKDEpOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBwdHIuYWxpZ25fb2Zmc2V0KAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjwkaWQ8aTMyPj4oKQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICApID09IDAgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdGhlIHBvaW50ZXIgaXMgcHJvcGVybHkgYWxpZ25lZCwgc28KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlX3RvX3NsaWNlX2FsaWduZWQg d29uJ3QgZmFpbCBoZXJlIChlLmcuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyB0aGlzIGNhbiBoYXBwZW4gZm9yIGkxMjh4MSkuIFNvIHdlIHBhbmljIHRvCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHRoZSAic2hvdWxkX2ZhaWwiIHRlc3QgcGFz czoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmljISgib2siKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBjcmVhdGUgYSBzbGljZSAtIHRoaXMgaXMgc2FmZSwgYmVjYXVzZSB0aGUKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMgb2YgdGhlIHNsaWNlIGV4aXN0LCBhcmUg cHJvcGVybHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQsIGFu ZCBwcm9wZXJseSBhbGlnbmVkOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9 IHNsaWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwdHIsICRpZDo6PGkzMj46OmxhbmVzKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgYWx3YXlz IHBhbmljIGJlY2F1c2UgdGhlIHNsaWNlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IGFsaWdubWVudCBkb2VzIG5vdCBtYXRjaCB0aGUgYWxpZ25tZW50CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyBmb3IgdGhlIHZlY3RvciB0eXBlOgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6c3BsYXQobm9uX251 bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxp Z25lZChzKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCist ICAgICAgICBpbXBsPFQ+IGNyYXRlOjpoYXNoOjpIYXNoIGZvciAkaWQ8VD4geworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGhhc2g8SDogY3JhdGU6Omhhc2g6Okhhc2hl cj4oJnNlbGYsIHN0YXRlOiAmbXV0IEgpIHsKKy0gICAgICAgICAgICAgICAgbGV0IHM6ICR1c2l6 ZV90eSA9IHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgqc2VsZikgfTsKKy0gICAgICAg ICAgICAgICAgcy5oYXNoKHN0YXRlKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0g ICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBw YXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9oYXNoPl0gewor LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBoYXNoKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aGFzaDo6e0hhc2gsIEhhc2hlcn07CistICAgICAgICAg ICAgICAgICAgICAgICAgI1thbGxvdyhkZXByZWNhdGVkKV0KKy0gICAgICAgICAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6Omhhc2g6OntTaXBIYXNoZXIxM307CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHZhbHVlcyA9IFsxX2kzMjsgJGVsZW1fY291bnRdOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdmVjOiAkaWQ8aTMyPiA9IERlZmF1bHQ6OmRlZmF1bHQo KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFycmF5ID0gWworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+OjpudWxsKCkuZXh0cmFjdCgwKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1fY291bnQKKy0gICAgICAgICAgICAgICAgICAg ICAgICBdOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2Nv dW50IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9ICZ2YWx1ZXNbaV0g YXMgKmNvbnN0IGkzMiBhcyAqbXV0IGkzMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dmVjID0gdmVjLnJlcGxhY2UoaSwgcHRyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXJyYXlbaV0gPSBwdHI7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgICAgICAgICAgICAgICNbYWxsb3coZGVwcmVjYXRlZCldCistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCBhX2hhc2ggPSBTaXBIYXNoZXIxMzo6bmV3KCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB2X2hhc2ggPSBhX2hhc2guY2xvbmUoKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhcnJheS5oYXNoKCZtdXQgYV9oYXNoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB2ZWMuaGFzaCgmbXV0IHZfaGFzaCk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShhX2hhc2guZmluaXNoKCksIHZfaGFzaC5maW5pc2goKSk7CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7CistICAgICAgICAgICAgLy8vIENhbGN1 bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlci4KKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBgVGA7IGUuZy4gYSBjb3VudCBvZiBg M2AgcmVwcmVzZW50cyBhCistICAgICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICog c2l6ZV9vZjo6PFQ+KClgIGJ5dGVzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2Yg dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcworLSAg ICAgICAgICAgIC8vLyBVbmRlZmluZWQgQmVoYXZpb3I6CistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vICogQm90aCB0aGUgc3RhcnRpbmcgYW5kIHJlc3VsdGluZyBwb2ludGVyIG11 c3QgYmUgZWl0aGVyIGluCistICAgICAgICAgICAgLy8vIGJvdW5kcyBvciBvbmUgYnl0ZSBwYXN0 IHRoZSBlbmQgb2YgYW4gYWxsb2NhdGVkIG9iamVjdC4KKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gKiBUaGUgY29tcHV0ZWQgb2Zmc2V0LCBpbiBieXRlcywgY2Fubm90IG92ZXJm bG93IGFuIGBpc2l6ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICogVGhl IG9mZnNldCBiZWluZyBpbiBib3VuZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIK Ky0gICAgICAgICAgICAvLy8gdGhlIGFkZHJlc3Mgc3BhY2UuIFRoYXQgaXMsIHRoZSBpbmZpbml0 ZS1wcmVjaXNpb24gc3VtLCBpbiBieXRlcworLSAgICAgICAgICAgIC8vLyBtdXN0IGZpdCBpbiBh IGB1c2l6ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSBjb21waWxl ciBhbmQgc3RhbmRhcmQgbGlicmFyeSBnZW5lcmFsbHkgdHJpZXMgdG8gZW5zdXJlCistICAgICAg ICAgICAgLy8vIGFsbG9jYXRpb25zIG5ldmVyIHJlYWNoIGEgc2l6ZSB3aGVyZSBhbiBvZmZzZXQg aXMgYSBjb25jZXJuLiBGb3IKKy0gICAgICAgICAgICAvLy8gaW5zdGFuY2UsIGBWZWNgIGFuZCBg Qm94YCBlbnN1cmUgdGhleSBuZXZlciBhbGxvY2F0ZSBtb3JlIHRoYW4KKy0gICAgICAgICAgICAv Ly8gYGlzaXplOjpNQVhgIGJ5dGVzLCBzbyBgdmVjLmFzX3B0cigpLm9mZnNldCh2ZWMubGVuKCkg YXMgaXNpemUpYAorLSAgICAgICAgICAgIC8vLyBpcyBhbHdheXMgc2FmZS4KKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gTW9zdCBwbGF0Zm9ybXMgZnVuZGFtZW50YWxseSBjYW4n dCBldmVuIGNvbnN0cnVjdCBzdWNoIGFuCistICAgICAgICAgICAgLy8vIGFsbG9jYXRpb24uIEZv ciBpbnN0YW5jZSwgbm8ga25vd24gNjQtYml0IHBsYXRmb3JtIGNhbiBldmVyCistICAgICAgICAg ICAgLy8vIHNlcnZlIGEgcmVxdWVzdCBmb3IgMjYzIGJ5dGVzIGR1ZSB0byBwYWdlLXRhYmxlIGxp bWl0YXRpb25zIG9yCistICAgICAgICAgICAgLy8vIHNwbGl0dGluZyB0aGUgYWRkcmVzcyBzcGFj ZS4gSG93ZXZlciwgc29tZSAzMi1iaXQgYW5kIDE2LWJpdAorLSAgICAgICAgICAgIC8vLyBwbGF0 Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2ZSBhIHJlcXVlc3QgZm9yIG1vcmUgdGhhbgorLSAg ICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMgd2l0aCB0aGluZ3MgbGlrZSBQaHlzaWNh bCBBZGRyZXNzIEV4dGVuc2lvbi4KKy0gICAgICAgICAgICAvLy8gQXMgc3VjaCwgbWVtb3J5IGFj cXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2NhdG9ycyBvciBtZW1vcnkKKy0gICAgICAgICAgICAv Ly8gbWFwcGVkIGZpbGVzIG1heSBiZSB0b28gbGFyZ2UgdG8gaGFuZGxlIHdpdGggdGhpcyBmdW5j dGlvbi4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gQ29uc2lkZXIgdXNpbmcg YHdyYXBwaW5nX29mZnNldGAgaW5zdGVhZCBpZiB0aGVzZSBjb25zdHJhaW50cworLSAgICAgICAg ICAgIC8vLyBhcmUgZGlmZmljdWx0IHRvIHNhdGlzZnkuIFRoZSBvbmx5IGFkdmFudGFnZSBvZiB0 aGlzIG1ldGhvZCBpcworLSAgICAgICAgICAgIC8vLyB0aGF0IGl0IGVuYWJsZXMgbW9yZSBhZ2dy ZXNzaXZlIGNvbXBpbGVyIG9wdGltaXphdGlvbnMuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBvZmZzZXQoc2VsZiwgY291bnQ6ICRpc2l6ZV90eSkg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIExMVk0ncyBg YWRkIG5zdyBudXdgCistICAgICAgICAgICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0KGNvdW50 KQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgb2Zm c2V0IGZyb20gYSBwb2ludGVyIHVzaW5nIHdyYXBwaW5nIGFyaXRobWV0aWMuCistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgYFRgOyBlLmcu IGEgY291bnQgb2YgYDNgIHJlcHJlc2VudHMgYQorLSAgICAgICAgICAgIC8vLyBwb2ludGVyIG9m ZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRlcy4KKy0gICAgICAgICAgICAvLy8KKy0g ICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gVGhlIHJlc3VsdGluZyBwb2ludGVyIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYm91bmRzLCBi dXQgaXQgaXMKKy0gICAgICAgICAgICAvLy8gcG90ZW50aWFsbHkgaGF6YXJkb3VzIHRvIGRlcmVm ZXJlbmNlICh3aGljaCByZXF1aXJlcyB1bnNhZmUpLgorLSAgICAgICAgICAgIC8vLworLSAgICAg ICAgICAgIC8vLyBBbHdheXMgdXNlIGAub2Zmc2V0KGNvdW50KWAgaW5zdGVhZCB3aGVuIHBvc3Np YmxlLCBiZWNhdXNlCistICAgICAgICAgICAgLy8vIG9mZnNldCBhbGxvd3MgdGhlIGNvbXBpbGVy IHRvIG9wdGltaXplIGJldHRlci4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBwdWIgZm4gd3JhcHBpbmdfb2Zmc2V0KHNlbGYsIGNvdW50OiAkaXNpemVfdHkpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgbGV0IHg6 ICRpc2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAg ICAgICAgIC8vIG5vdGU6IHsrLCp9IGN1cnJlbnRseSBwZXJmb3JtcyBhIGB3cmFwcGluZ197YWRk LCBtdWx9YAorLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKAorLSAg ICAgICAgICAgICAgICAgICAgICAgIHggKyAoY291bnQgKiBjcmF0ZTo6bWVtOjpzaXplX29mOjo8 VD4oKSBhcyBpc2l6ZSkKKy0gICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgZGlz dGFuY2UgYmV0d2VlbiB0d28gcG9pbnRlcnMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBpbiB1bml0cyBvZiBgVGA6IHRoZSBkaXN0YW5j ZSBpbiBieXRlcyBpcworLSAgICAgICAgICAgIC8vLyBkaXZpZGVkIGJ5IGBtZW06OnNpemVfb2Y6 OjxUPigpYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhpcyBmdW5jdGlv biBpcyB0aGUgaW52ZXJzZSBvZiBvZmZzZXQuCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGFu eSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHZpb2xhdGVkLCB0aGUgcmVzdWx0IGlz CistICAgICAgICAgICAgLy8vIFVuZGVmaW5lZCBCZWhhdmlvcjoKKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gKiBCb3RoIHRoZSBzdGFydGluZyBhbmQgb3RoZXIgcG9pbnRlciBt dXN0IGJlIGVpdGhlciBpbiBib3VuZHMKKy0gICAgICAgICAgICAvLy8gb3Igb25lIGJ5dGUgcGFz dCB0aGUgZW5kIG9mIHRoZSBzYW1lIGFsbG9jYXRlZCBvYmplY3QuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vICogVGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIHBvaW50ZXJzLCBp biBieXRlcywgY2Fubm90IG92ZXJmbG93CistICAgICAgICAgICAgLy8vIGFuIGBpc2l6ZWAuCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICogVGhlIGRpc3RhbmNlIGJldHdlZW4g dGhlIHBvaW50ZXJzLCBpbiBieXRlcywgbXVzdCBiZSBhbiBleGFjdAorLSAgICAgICAgICAgIC8v LyBtdWx0aXBsZSBvZiB0aGUgc2l6ZSBvZiBgVGAuCistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vICogVGhlIGRpc3RhbmNlIGJlaW5nIGluIGJvdW5kcyBjYW5ub3QgcmVseSBvbiAi d3JhcHBpbmcgYXJvdW5kIgorLSAgICAgICAgICAgIC8vLyB0aGUgYWRkcmVzcyBzcGFjZS4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGNvbXBpbGVyIGFuZCBzdGFuZGFy ZCBsaWJyYXJ5IGdlbmVyYWxseSB0cnkgdG8gZW5zdXJlCistICAgICAgICAgICAgLy8vIGFsbG9j YXRpb25zIG5ldmVyIHJlYWNoIGEgc2l6ZSB3aGVyZSBhbiBvZmZzZXQgaXMgYSBjb25jZXJuLiBG b3IKKy0gICAgICAgICAgICAvLy8gaW5zdGFuY2UsIGBWZWNgIGFuZCBgQm94YCBlbnN1cmUgdGhl eSBuZXZlciBhbGxvY2F0ZSBtb3JlIHRoYW4KKy0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhg IGJ5dGVzLCBzbyBgcHRyX2ludG9fdmVjLm9mZnNldF9mcm9tKHZlYy5hc19wdHIoKSlgCistICAg ICAgICAgICAgLy8vIGlzIGFsd2F5cyBzYWZlLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBNb3N0IHBsYXRmb3JtcyBmdW5kYW1lbnRhbGx5IGNhbid0IGV2ZW4gY29uc3RydWN0 IHN1Y2ggYW4KKy0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbi4gRm9yIGluc3RhbmNlLCBubyBr bm93biA2NC1iaXQgcGxhdGZvcm0gY2FuIGV2ZXIKKy0gICAgICAgICAgICAvLy8gc2VydmUgYSBy ZXF1ZXN0IGZvciAyNjMgYnl0ZXMgZHVlIHRvIHBhZ2UtdGFibGUgbGltaXRhdGlvbnMgb3IKKy0g ICAgICAgICAgICAvLy8gc3BsaXR0aW5nIHRoZSBhZGRyZXNzIHNwYWNlLiBIb3dldmVyLCBzb21l IDMyLWJpdCBhbmQgMTYtYml0CistICAgICAgICAgICAgLy8vIHBsYXRmb3JtcyBtYXkgc3VjY2Vz c2Z1bGx5IHNlcnZlIGEgcmVxdWVzdCBmb3IgbW9yZSB0aGFuCistICAgICAgICAgICAgLy8vIGBp c2l6ZTo6TUFYYCBieXRlcyB3aXRoIHRoaW5ncyBsaWtlIFBoeXNpY2FsIEFkZHJlc3MgRXh0ZW5z aW9uLgorLSAgICAgICAgICAgIC8vLyBBcyBzdWNoLCBtZW1vcnkgYWNxdWlyZWQgZGlyZWN0bHkg ZnJvbSBhbGxvY2F0b3JzIG9yIG1lbW9yeQorLSAgICAgICAgICAgIC8vLyBtYXBwZWQgZmlsZXMg bWF5IGJlIHRvbyBsYXJnZSB0byBoYW5kbGUgd2l0aCB0aGlzIGZ1bmN0aW9uLgorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0 X2Zyb21gIGluc3RlYWQgaWYgdGhlc2UgY29uc3RyYWludHMKKy0gICAgICAgICAgICAvLy8gYXJl IGRpZmZpY3VsdCB0byBzYXRpc2Z5LiBUaGUgb25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2Qg aXMKKy0gICAgICAgICAgICAvLy8gdGhhdCBpdCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBjb21w aWxlciBvcHRpbWl6YXRpb25zLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IHB1YiB1bnNhZmUgZm4gb2Zmc2V0X2Zyb20oc2VsZiwgb3JpZ2luOiBTZWxmKSAtPiAkaXNpemVf dHkgeworLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHVzZSBMTFZNJ3MgYHN1YiBu c3cgbnV3YC4KKy0gICAgICAgICAgICAgICAgc2VsZi53cmFwcGluZ19vZmZzZXRfZnJvbShvcmln aW4pCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBk aXN0YW5jZSBiZXR3ZWVuIHR3byBwb2ludGVycy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAg ICAgICAvLy8gVGhlIHJldHVybmVkIHZhbHVlIGlzIGluIHVuaXRzIG9mIGBUYDogdGhlIGRpc3Rh bmNlIGluIGJ5dGVzIGlzCistICAgICAgICAgICAgLy8vIGRpdmlkZWQgYnkgYG1lbTo6c2l6ZV9v Zjo6PFQ+KClgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiB0aGUgYWRk cmVzcyBkaWZmZXJlbnQgYmV0d2VlbiB0aGUgdHdvIHBvaW50ZXJzIGlzIG5vdCBhCistICAgICAg ICAgICAgLy8vIG11bHRpcGxlIG9mIGBtZW06OnNpemVfb2Y6OjxUPigpYCB0aGVuIHRoZSByZXN1 bHQgb2YgdGhlCistICAgICAgICAgICAgLy8vIGRpdmlzaW9uIGlzIHJvdW5kZWQgdG93YXJkcyB6 ZXJvLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaG91Z2ggdGhpcyBtZXRo b2QgaXMgc2FmZSBmb3IgYW55IHR3byBwb2ludGVycywgbm90ZSB0aGF0IGl0cworLSAgICAgICAg ICAgIC8vLyByZXN1bHQgd2lsbCBiZSBtb3N0bHkgdXNlbGVzcyBpZiB0aGUgdHdvIHBvaW50ZXJz IGFyZW4ndCBpbnRvCistICAgICAgICAgICAgLy8vIHRoZSBzYW1lIGFsbG9jYXRlZCBvYmplY3Qs IGZvciBleGFtcGxlIGlmIHRoZXkgcG9pbnQgdG8gdHdvCistICAgICAgICAgICAgLy8vIGRpZmZl cmVudCBsb2NhbCB2YXJpYWJsZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgcHViIGZuIHdyYXBwaW5nX29mZnNldF9mcm9tKHNlbGYsIG9yaWdpbjogU2VsZikgLT4gJGlz aXplX3R5IHsKKy0gICAgICAgICAgICAgICAgbGV0IHg6ICRpc2l6ZV90eSA9IHVuc2FmZSB7IGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSB9OworLSAgICAgICAgICAgICAgICBsZXQgeTogJGlz aXplX3R5ID0gdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG9yaWdpbikgfTsKKy0gICAg ICAgICAgICAgICAgLy8gbm90ZTogey0sL30gY3VycmVudGx5IHBlcmZvcm0gd3JhcHBpbmdfe3N1 YiwgZGl2fQorLSAgICAgICAgICAgICAgICAoeSAtIHgpIC8gKGNyYXRlOjptZW06OnNpemVfb2Y6 OjxUPigpIGFzIGlzaXplKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ2Fs Y3VsYXRlcyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVyIChjb252ZW5pZW5jZSBmb3IKKy0gICAg ICAgICAgICAvLy8gYC5vZmZzZXQoY291bnQgYXMgaXNpemUpYCkuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgYFRgOyBlLmcuIGEgY291 bnQgb2YgMyByZXByZXNlbnRzIGEKKy0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2Yg YDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGFu eSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHZpb2xhdGVkLCB0aGUgcmVzdWx0IGlz CistICAgICAgICAgICAgLy8vIFVuZGVmaW5lZCBCZWhhdmlvcjoKKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gKiBCb3RoIHRoZSBzdGFydGluZyBhbmQgcmVzdWx0aW5nIHBvaW50 ZXIgbXVzdCBiZSBlaXRoZXIgaW4KKy0gICAgICAgICAgICAvLy8gYm91bmRzIG9yIG9uZSBieXRl IHBhc3QgdGhlIGVuZCBvZiBhbiBhbGxvY2F0ZWQgb2JqZWN0LgorLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyAqIFRoZSBjb21wdXRlZCBvZmZzZXQsIGluIGJ5dGVzLCBjYW5ub3Qg b3ZlcmZsb3cgYW4gYGlzaXplYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g KiBUaGUgb2Zmc2V0IGJlaW5nIGluIGJvdW5kcyBjYW5ub3QgcmVseSBvbiAid3JhcHBpbmcgYXJv dW5kIgorLSAgICAgICAgICAgIC8vLyB0aGUgYWRkcmVzcyBzcGFjZS4gVGhhdCBpcywgdGhlIGlu ZmluaXRlLXByZWNpc2lvbiBzdW0gbXVzdCBmaXQKKy0gICAgICAgICAgICAvLy8gaW4gYSBgdXNp emVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgY29tcGlsZXIgYW5k IHN0YW5kYXJkIGxpYnJhcnkgZ2VuZXJhbGx5IHRyaWVzIHRvIGVuc3VyZQorLSAgICAgICAgICAg IC8vLyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEg Y29uY2Vybi4gRm9yCistICAgICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBhbmQgYEJveGAg ZW5zdXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0aGFuCistICAgICAgICAgICAgLy8vIGBp c2l6ZTo6TUFYYCBieXRlcywgc28gYHZlYy5hc19wdHIoKS5hZGQodmVjLmxlbigpKWAgaXMgYWx3 YXlzCistICAgICAgICAgICAgLy8vIHNhZmUuCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vIE1vc3QgcGxhdGZvcm1zIGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qg c3VjaCBhbgorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtu b3duIDY0LWJpdCBwbGF0Zm9ybSBjYW4gZXZlcgorLSAgICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJl cXVlc3QgZm9yIDI2MyBieXRlcyBkdWUgdG8gcGFnZS10YWJsZSBsaW1pdGF0aW9ucyBvcgorLSAg ICAgICAgICAgIC8vLyBzcGxpdHRpbmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUg MzItYml0IGFuZCAxNi1iaXQKKy0gICAgICAgICAgICAvLy8gcGxhdGZvcm1zIG1heSBzdWNjZXNz ZnVsbHkgc2VydmUgYSByZXF1ZXN0IGZvciBtb3JlIHRoYW4KKy0gICAgICAgICAgICAvLy8gYGlz aXplOjpNQVhgIGJ5dGVzIHdpdGggdGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcyBFeHRlbnNp b24uCistICAgICAgICAgICAgLy8vIEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBm cm9tIGFsbG9jYXRvcnMgb3IgbWVtb3J5CistICAgICAgICAgICAgLy8vIG1hcHBlZCBmaWxlcyBt YXkgYmUgdG9vIGxhcmdlIHRvIGhhbmRsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGluZ19vZmZzZXRg IGluc3RlYWQgaWYgdGhlc2UgY29uc3RyYWludHMKKy0gICAgICAgICAgICAvLy8gYXJlIGRpZmZp Y3VsdCB0byBzYXRpc2Z5LiBUaGUgb25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXMKKy0g ICAgICAgICAgICAvLy8gdGhhdCBpdCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBjb21waWxlciBv cHRpbWl6YXRpb25zLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbYWxs b3coY2xpcHB5OjpzaG91bGRfaW1wbGVtZW50X3RyYWl0KV0KKy0gICAgICAgICAgICBwdWIgdW5z YWZlIGZuIGFkZChzZWxmLCBjb3VudDogJHVzaXplX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgc2VsZi5vZmZzZXQoY291bnQuY2FzdCgpKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVyIChjb252ZW5p ZW5jZSBmb3IKKy0gICAgICAgICAgICAvLy8gYC5vZmZzZXQoKGNvdW50IGFzIGlzaXplKS53cmFw cGluZ19uZWcoKSlgKS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gYGNvdW50 YCBpcyBpbiB1bml0cyBvZiBUOyBlLmcuIGEgYGNvdW50YCBvZiAzIHJlcHJlc2VudHMgYQorLSAg ICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRl cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9ucyBhcmUgdmlvbGF0ZWQsIHRoZSByZXN1bHQgaXMKKy0gICAgICAgICAgICAvLy8gVW5kZWZp bmVkIEJlaGF2aW9yOgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIEJvdGgg dGhlIHN0YXJ0aW5nIGFuZCByZXN1bHRpbmcgcG9pbnRlciBtdXN0IGJlIGVpdGhlciBpbgorLSAg ICAgICAgICAgIC8vLyBib3VuZHMgb3Igb25lIGJ5dGUgcGFzdCB0aGUgZW5kIG9mIGFuIGFsbG9j YXRlZCBvYmplY3QuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICogVGhlIGNv bXB1dGVkIG9mZnNldCBjYW5ub3QgZXhjZWVkIGBpc2l6ZTo6TUFYYCAqKmJ5dGVzKiouCistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICogVGhlIG9mZnNldCBiZWluZyBpbiBib3Vu ZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIKKy0gICAgICAgICAgICAvLy8gdGhl IGFkZHJlc3Mgc3BhY2UuIFRoYXQgaXMsIHRoZSBpbmZpbml0ZS1wcmVjaXNpb24gc3VtIG11c3Qg Zml0CistICAgICAgICAgICAgLy8vIGluIGEgdXNpemUuCistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vIFRoZSBjb21waWxlciBhbmQgc3RhbmRhcmQgbGlicmFyeSBnZW5lcmFsbHkg dHJpZXMgdG8gZW5zdXJlCistICAgICAgICAgICAgLy8vIGFsbG9jYXRpb25zIG5ldmVyIHJlYWNo IGEgc2l6ZSB3aGVyZSBhbiBvZmZzZXQgaXMgYSBjb25jZXJuLiBGb3IKKy0gICAgICAgICAgICAv Ly8gaW5zdGFuY2UsIGBWZWNgIGFuZCBgQm94YCBlbnN1cmUgdGhleSBuZXZlciBhbGxvY2F0ZSBt b3JlIHRoYW4KKy0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhgIGJ5dGVzLCBzbworLSAgICAg ICAgICAgIC8vLyBgdmVjLmFzX3B0cigpLmFkZCh2ZWMubGVuKCkpLnN1Yih2ZWMubGVuKCkpYCBp cyBhbHdheXMgc2FmZS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gTW9zdCBw bGF0Zm9ybXMgZnVuZGFtZW50YWxseSBjYW4ndCBldmVuIGNvbnN0cnVjdCBzdWNoIGFuCistICAg ICAgICAgICAgLy8vIGFsbG9jYXRpb24uIEZvciBpbnN0YW5jZSwgbm8ga25vd24gNjQtYml0IHBs YXRmb3JtIGNhbiBldmVyCistICAgICAgICAgICAgLy8vIHNlcnZlIGEgcmVxdWVzdCBmb3IgMjxz dXA+NjM8L3N1cD4gYnl0ZXMgZHVlIHRvIHBhZ2UtdGFibGUKKy0gICAgICAgICAgICAvLy8gbGlt aXRhdGlvbnMgb3Igc3BsaXR0aW5nIHRoZSBhZGRyZXNzIHNwYWNlLiBIb3dldmVyLCBzb21lIDMy LWJpdAorLSAgICAgICAgICAgIC8vLyBhbmQgMTYtYml0IHBsYXRmb3JtcyBtYXkgc3VjY2Vzc2Z1 bGx5IHNlcnZlIGEgcmVxdWVzdCBmb3IgbW9yZQorLSAgICAgICAgICAgIC8vLyB0aGFuIGBpc2l6 ZTo6TUFYYCBieXRlcyB3aXRoIHRoaW5ncyBsaWtlIFBoeXNpY2FsIEFkZHJlc3MKKy0gICAgICAg ICAgICAvLy8gRXh0ZW5zaW9uLiBBcyBzdWNoLCBtZW1vcnkgYWNxdWlyZWQgZGlyZWN0bHkgZnJv bSBhbGxvY2F0b3JzIG9yCistICAgICAgICAgICAgLy8vIG1lbW9yeSBtYXBwZWQgZmlsZXMgKm1h eSogYmUgdG9vIGxhcmdlIHRvIGhhbmRsZSB3aXRoIHRoaXMKKy0gICAgICAgICAgICAvLy8gZnVu Y3Rpb24uCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIENvbnNpZGVyIHVzaW5n IGB3cmFwcGluZ19vZmZzZXRgIGluc3RlYWQgaWYgdGhlc2UgY29uc3RyYWludHMKKy0gICAgICAg ICAgICAvLy8gYXJlIGRpZmZpY3VsdCB0byBzYXRpc2Z5LiBUaGUgb25seSBhZHZhbnRhZ2Ugb2Yg dGhpcyBtZXRob2QgaXMKKy0gICAgICAgICAgICAvLy8gdGhhdCBpdCBlbmFibGVzIG1vcmUgYWdn cmVzc2l2ZSBjb21waWxlciBvcHRpbWl6YXRpb25zLgorLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpzaG91bGRfaW1wbGVtZW50X3RyYWl0KV0KKy0g ICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHN1YihzZWxmLCBjb3VudDogJHVzaXplX3R5KSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgbGV0IHg6ICRpc2l6ZV90eSA9IGNvdW50LmNhc3QoKTsK Ky0gICAgICAgICAgICAgICAgLy8gbm90ZTogLSBpcyBjdXJyZW50bHkgd3JhcHBpbmdfbmVnCist ICAgICAgICAgICAgICAgIHNlbGYub2Zmc2V0KC14KQorLSAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVyIHVzaW5nIHdy YXBwaW5nIGFyaXRobWV0aWMuCistICAgICAgICAgICAgLy8vIChjb252ZW5pZW5jZSBmb3IgYC53 cmFwcGluZ19vZmZzZXQoY291bnQgYXMgaXNpemUpYCkKKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBUOyBlLmcuIGEgYGNvdW50YCBvZiAz IHJlcHJlc2VudHMgYQorLSAgICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNp emVfb2Y6OjxUPigpYCBieXRlcy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g IyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIHJlc3VsdGlu ZyBwb2ludGVyIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYm91bmRzLCBidXQgaXQgaXMKKy0gICAg ICAgICAgICAvLy8gcG90ZW50aWFsbHkgaGF6YXJkb3VzIHRvIGRlcmVmZXJlbmNlICh3aGljaCBy ZXF1aXJlcyBgdW5zYWZlYCkuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIEFs d2F5cyB1c2UgYC5hZGQoY291bnQpYCBpbnN0ZWFkIHdoZW4gcG9zc2libGUsIGJlY2F1c2UgYGFk ZGAKKy0gICAgICAgICAgICAvLy8gYWxsb3dzIHRoZSBjb21waWxlciB0byBvcHRpbWl6ZSBiZXR0 ZXIuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5n X2FkZChzZWxmLCBjb3VudDogJHVzaXplX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg c2VsZi53cmFwcGluZ19vZmZzZXQoY291bnQuY2FzdCgpKQorLSAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVyIHVzaW5n IHdyYXBwaW5nIGFyaXRobWV0aWMuCistICAgICAgICAgICAgLy8vIChjb252ZW5pZW5jZSBmb3Ig YC53cmFwcGluZ19vZmZzZXQoKGNvdW50IGFzCistICAgICAgICAgICAgLy8vIGlzaXplKS53cmFw cGluZ19zdWIoKSlgKQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBgY291bnRg IGlzIGluIHVuaXRzIG9mIFQ7IGUuZy4gYSBgY291bnRgIG9mIDMgcmVwcmVzZW50cyBhCistICAg ICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5dGVz LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgcmVzdWx0aW5nIHBvaW50ZXIgZG9lcyBub3Qg bmVlZCB0byBiZSBpbiBib3VuZHMsIGJ1dCBpdCBpcworLSAgICAgICAgICAgIC8vLyBwb3RlbnRp YWxseSBoYXphcmRvdXMgdG8gZGVyZWZlcmVuY2UgKHdoaWNoIHJlcXVpcmVzIGB1bnNhZmVgKS4K Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gQWx3YXlzIHVzZSBgLnN1Yihjb3Vu dClgIGluc3RlYWQgd2hlbiBwb3NzaWJsZSwgYmVjYXVzZSBgc3ViYAorLSAgICAgICAgICAgIC8v LyBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvIG9wdGltaXplIGJldHRlci4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gd3JhcHBpbmdfc3ViKHNlbGYsIGNvdW50OiAk dXNpemVfdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBsZXQgeDogJGlzaXplX3R5ID0g Y291bnQuY2FzdCgpOworLSAgICAgICAgICAgICAgICBzZWxmLndyYXBwaW5nX29mZnNldCgtMSAq IHgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDxUPiAkaWQ8 VD4geworLSAgICAgICAgICAgIC8vLyBTaHVmZmxlIHZlY3RvciBlbGVtZW50cyBhY2NvcmRpbmcg dG8gYGluZGljZXNgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBm biBzaHVmZmxlMV9keW48ST4oc2VsZiwgaW5kaWNlczogSSkgLT4gU2VsZgorLSAgICAgICAgICAg ICAgICB3aGVyZQorLSAgICAgICAgICAgICAgICBTZWxmOiBjb2RlZ2VuOjpzaHVmZmxlMV9keW46 OlNodWZmbGUxRHluPEluZGljZXMgPSBJPiwKKy0gICAgICAgICAgICB7CistICAgICAgICAgICAg ICAgIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW46OnNodWZmbGUxX2R5bihzZWxm LCBpbmRpY2VzKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3Rf aWYhIHsKKy0gICAgICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0 ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2h1ZmZsZTFfZHluPl0gewor LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlk PGkzMj4pOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsdGVybmF0aW5nID0gW25v bl9udWxsLCBudWxsLCBub25fbnVsbCwgbnVsbCwgLi4uXQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYWx0ZXJuYXRpbmcgPSAkaWQ6OjxpMzI+OjpzcGxhdChudWxsKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZyA9IGFsdGVybmF0aW5nLnJlcGxhY2UoaSwg bm9uX251bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9 IDwkaWQ8aTMyPgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBjb2RlZ2VuOjpzaHVm ZmxlMV9keW46OlNodWZmbGUxRHluPjo6SW5kaWNlczsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBldmVuID0gWzAsIDAsIDIsIDIsIDQsIDQsIC4uXQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBldmVuID0geworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYg PSBJbmRpY2VzOjpzcGxhdCgwKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRvKCkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTggLSAxKS5pbnRvKCkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAgICAgICB9Owor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9kZCA9IFsxLCAxLCAzLCAzLCA1LCA1LCAuLi5d CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9kZCA9IHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCkuaW50bygp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCArIDEp LmludG8oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdgorLSAg ICAgICAgICAgICAgICAgICAgICAgIH07CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcuc2h1ZmZs ZTFfZHluKGV2ZW4pLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+Ojpz cGxhdChub25fbnVsbCkKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGlmICRpZDo6PGkzMj46OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFsdGVybmF0aW5nLnNodWZmbGUxX2R5bihvZGQpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGlkOjo8aTMyPjo6c3BsYXQobnVsbCkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzLnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9vcHMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDMyICswLDAgQEAKKy0v LyEgSW1wbGVtZW50YXRpb24gb2YgdGhlIGBvcHNgIHRyYWl0cworLSNbbWFjcm9fdXNlXQorLW1v ZCB2ZWN0b3JfbWFza19iaXR3aXNlOworLSNbbWFjcm9fdXNlXQorLW1vZCBzY2FsYXJfbWFza19i aXR3aXNlOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB2ZWN0b3JfYXJpdGhtZXRpYzsKKy0jW21h Y3JvX3VzZV0KKy1tb2Qgc2NhbGFyX2FyaXRobWV0aWM7CistCistI1ttYWNyb191c2VdCistbW9k IHZlY3Rvcl9iaXR3aXNlOworLSNbbWFjcm9fdXNlXQorLW1vZCBzY2FsYXJfYml0d2lzZTsKKy0K Ky0jW21hY3JvX3VzZV0KKy1tb2QgdmVjdG9yX3NoaWZ0czsKKy0jW21hY3JvX3VzZV0KKy1tb2Qg c2NhbGFyX3NoaWZ0czsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgdmVjdG9yX3JvdGF0ZXM7Cist CistI1ttYWNyb191c2VdCistbW9kIHZlY3Rvcl9uZWc7CistCistI1ttYWNyb191c2VdCistbW9k IHZlY3Rvcl9pbnRfbWluX21heDsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgdmVjdG9yX2Zsb2F0 X21pbl9tYXg7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL29wcy9zY2FsYXJfYXJpdGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9vcHMvc2NhbGFyX2FyaXRobWV0aWMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2Fs YXJfYXJpdGhtZXRpYy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjAzICswLDAgQEAKKy0vLyEg VmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXNjYWxhciAvIHNjYWxhci12ZWN0b3IgYXJpdGht ZXRpYyBvcGVyYXRpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2FsYXJfYXJpdGht ZXRpYyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRl bnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGQ8JGVs ZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBhZGQoc2VsZiwgb3RoZXI6ICRlbGVt X3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiArICRpZDo6c3BsYXQob3RoZXIp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpB ZGQ8JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGFkZChzZWxmLCBvdGhlcjog JGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpICsgb3RoZXIK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6 OlN1YjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxm OworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHN1YihzZWxmLCBvdGhl cjogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmIC0gJGlkOjpzcGxh dChvdGhlcikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRl OjpvcHM6OlN1YjwkaWQ+IGZvciAkZWxlbV90eSB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQg PSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc3ViKHNlbGYs IG90aGVyOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikg LSBvdGhlcgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3Jh dGU6Om9wczo6TXVsPCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1 dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbXVsKHNl bGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgKiAk aWQ6OnNwbGF0KG90aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGlt cGwgY3JhdGU6Om9wczo6TXVsPCRpZD4gZm9yICRlbGVtX3R5IHsKKy0gICAgICAgICAgICB0eXBl IE91dHB1dCA9ICRpZDsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBt dWwoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxh dChzZWxmKSAqIG90aGVyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAg aW1wbCBjcmF0ZTo6b3BzOjpEaXY8JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5 cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biBkaXYoc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg c2VsZiAvICRpZDo6c3BsYXQob3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpEaXY8JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAg ICAgIHR5cGUgT3V0cHV0ID0gJGlkOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIGRpdihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAk aWQ6OnNwbGF0KHNlbGYpIC8gb3RoZXIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCist ICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbTwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAg ICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIHJlbShzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICBzZWxmICUgJGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbTwkaWQ+IGZvciAkZWxlbV90eSB7Cist ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gcmVtKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAg ICAgICAgICRpZDo6c3BsYXQoc2VsZikgJSBvdGhlcgorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkQXNzaWduPCRlbGVtX3R5PiBmb3Ig JGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBhZGRfYXNzaWdu KCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7CistICAgICAgICAgICAgICAgICpzZWxmID0g KnNlbGYgKyBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OlN1YkFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc3ViX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVy OiAkZWxlbV90eSkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIC0gb3RoZXI7Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpN dWxBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIGZuIG11bF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKKy0g ICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAqIG90aGVyOworLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2QXNzaWduPCRlbGVtX3R5 PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBkaXZf YXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7CistICAgICAgICAgICAgICAgICpz ZWxmID0gKnNlbGYgLyBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAg ICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbUFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gcmVtX2Fzc2lnbigmbXV0IHNlbGYs IG90aGVyOiAkZWxlbV90eSkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICUgb3Ro ZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7Cist ICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAg ICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9hcml0aD5dIHsKKy0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAg ICBmbiBvcHNfc2NhbGFyX2FyaXRobWV0aWMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHppID0gMCBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb2kg PSAxIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aSA9IDIgYXMg JGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpID0gNCBhcyAkZWxlbV90 eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoemkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdChvaSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoZmkpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGFkZAorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgKyB6LCB6 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKyB6aSwgeik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSArIHosIG8pOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobyArIHppLCBvKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHRpICsgeiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0ICsgemksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dGkgKyB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgKyB0aSwg Zik7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3ViCistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSAtIHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiAtIHppLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG9pIC0geiwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIC0gemks IG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgLSB6LCB0KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLSB6aSwgdCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAtIHQsIHQpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZiAtIHRpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGYgLSBvIC0gbywgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmIC0gb2kgLSBvaSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbXVsCist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAqIHosIHopOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHppLCB6KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHppICogbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6ICogb2ksIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoemkgKiB0LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiB0 aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAqIHQsIHQpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAqIHRpLCB0KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICogdCwgZik7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0ICogdGksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIGRpdgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgLyBvLCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogLyBvaSwgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAvIG8sIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCAvIG9pLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGZpIC8gbywgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmIC8gb2ksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkg LyB0LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLyB0aSwgbyk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAvIHQsIHQpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAvIHRpLCB0KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAvLyByZW0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9p ICUgbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICUgb2ksIHop OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgJSB0LCB6KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJSB0aSwgeik7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYg PSB6OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ICs9IG9pOyAvLyBhZGRfYXNzaWduCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgbyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYgLT0gb2k7IC8vIHN1Yl9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg diA9IHQ7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKj0gb2k7IC8vIG11bF9hc3Np Z24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdiAqPSB0aTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAv PSBvaTsgLy8gZGl2X2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC89IHRpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ICU9IHRpOyAvLyByZW1fYXNzaWduCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvb3BzL3NjYWxhcl9iaXR3aXNlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNjIgKzAsMCBA QAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3Itc2NhbGFyIC8gc2NhbGFyLXZlY3Rv ciBiaXR3aXNlIG9wZXJhdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3NjYWxhcl9i aXR3aXNlIHsKKy0gICAgKAorLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXToKKy0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKKy0gICAgICAgICgkdHJ1 ZTpleHByLCAkZmFsc2U6ZXhwcikKKy0gICAgKSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdFhvcjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQg PSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhvcihz ZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmIF4g JGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdFhvcjwkaWQ+IGZvciAkZWxlbV90eSB7CistICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg Zm4gYml0eG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRp ZDo6c3BsYXQoc2VsZikgXiBvdGhlcgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAg ICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7CistICAg ICAgICAgICAgICAgIHNlbGYgJiAkaWQ6OnNwbGF0KG90aGVyKQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPCRpZD4gZm9yICRlbGVt X3R5IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsK Ky0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAmIG90aGVyCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPcjwkZWxlbV90 eT4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiAkZWxlbV90 eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgfCAkaWQ6OnNwbGF0KG90aGVyKQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0 T3I8JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVy OiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgfCBvdGhl cgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0QW5kQXNzaWduPCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVt X3R5KSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJiBvdGhlcjsKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWdu PCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBiaXRvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKKy0gICAgICAg ICAgICAgICAgKnNlbGYgPSAqc2VsZiB8IG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yQXNzaWduPCRlbGVtX3R5PiBmb3Ig JGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3JfYXNz aWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7CistICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgXiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAg ICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6 aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfc2NhbGFyX2JpdHdp c2U+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistCistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3NjYWxhcl9iaXR3aXNlKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB6aSA9IDAgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG9pID0gMSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdGkgPSAyIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6 ID0gJGlkOjpzcGxhdCh6aSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6 OnNwbGF0KG9pKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQo dGkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFuZDoKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICYgbywgbyk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvICYgb2ksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEob2kgJiB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8gJiB6aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAmIG8s IHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAmIG9pLCB6KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICYgeiwgeik7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICYgemksIHopOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodGkgJiB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQgJiB0aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0aSAmIG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAm IG9pLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICYgdCwgeik7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgdGksIHopOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdE9yOgorLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEob2kgfCBvLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8gfCBvaSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSB8 IHosIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyB8IHppLCBvKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIHwgbywgbyk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgb2ksIG8pOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoemkgfCB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogfCB6aSwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0aSB8IHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCB8IHRpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIHwgdCwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgdGksIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgfCB6LCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB6aSwgdCk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQml0WE9SOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo b2kgXiBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gXiBvaSwg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSBeIHosIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiBeIHppLCB6KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIF4gbywgbyk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6IF4gb2ksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEob2kgXiB6LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8gXiB6aSwgbyk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSBe IHQsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIHRpLCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIF4geiwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gemksIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoemkgXiB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogXiB0aSwgdCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRBc3NpZ246CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYgJj0gdGk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3JBc3NpZ246CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgfD0gb2k7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo diwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg ICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWE9SQXNzaWduOgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6OworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2IF49IG9pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYsIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL29wcy9zY2FsYXJfbWFza19iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfbWFza19iaXR3aXNlLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv c2NhbGFyX21hc2tfYml0d2lzZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTQwICswLDAgQEAK Ky0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXZlY3RvciBiaXR3aXNlIG9wZXJhdGlv bnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3NjYWxhcl9tYXNrX2JpdHdpc2UgeworLSAg ICAoCistICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgorLSAgICAg ICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAorLSAgICAgICAgKCR0cnVlOmV4cHIsICRmYWxz ZTpleHByKQorLSAgICApID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yPGJv b2w+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6IGJvb2wp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmIF4gJGlkOjpzcGxhdChvdGhlcikKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhv cjwkaWQ+IGZvciBib29sIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6ICRp ZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSBeIG90aGVyCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmQ8Ym9vbD4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBvdGhl cjogYm9vbCkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgJiAkaWQ6OnNwbGF0KG90 aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0QW5kPCRpZD4gZm9yIGJvb2wgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlk OworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBv dGhlcjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpICYg b3RoZXIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRl OjpvcHM6OkJpdE9yPGJvb2w+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0g U2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcihzZWxm LCBvdGhlcjogYm9vbCkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgfCAkaWQ6OnNw bGF0KG90aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3Jh dGU6Om9wczo6Qml0T3I8JGlkPiBmb3IgYm9vbCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQg PSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3Ioc2Vs Ziwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxm KSB8IG90aGVyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpCaXRBbmRBc3NpZ248Ym9vbD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gYml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBi b29sKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJiBvdGhlcjsKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWdu PGJvb2w+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IGJpdG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBib29sKSB7CistICAgICAgICAgICAgICAg ICpzZWxmID0gKnNlbGYgfCBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg ICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvckFzc2lnbjxib29sPiBmb3IgJGlkIHsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3JfYXNzaWduKCZtdXQgc2Vs Ziwgb3RoZXI6IGJvb2wpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiBeIG90aGVy OworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAg ICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc19zY2FsYXJfbWFza19iaXR3aXNlPl0geworLSAg ICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgIGZuIG9wc19zY2FsYXJfbWFza19iaXR3aXNlKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0aSA9IHRydWU7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpID0g ZmFsc2U7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoZmkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEodCAhPSBmKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKCEodCA9PSBmKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g Qml0QW5kOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgJiBmLCBmKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBmaSwgZik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAmIHQsIGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiAmIHRpLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpICYgdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0ICYgdGksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkg JiBmLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJiBmaSwgZik7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0T3I6CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0aSB8IGYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCB8IGZpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGZpIHwgdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIHwg dGksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgfCB0LCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0aSwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSB8IGYsIGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiB8IGZpLCBmKTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBCaXRYT1I6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSBe IGYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIGZpLCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpIF4gdCwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIF4gdGksIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodGkgXiB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQgXiB0aSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmaSBeIGYsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiBe IGZpLCBmKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIEFuZEFzc2lnbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCB2ID0gZjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAmPSB0aTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBPckFzc2lnbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ID0gZjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiB8PSB0aTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBYT1JBc3NpZ246CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdiA9IGY7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgXj0g dGk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9z aGlmdHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxh cl9zaGlmdHMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSwxMDYgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3It c2NhbGFyIHNoaWZ0cyBvcGVyYXRpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2Fs YXJfc2hpZnRzIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRp ZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNo bDx1MzI+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaGwoc2VsZiwgb3RoZXI6IHUzMikg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgPDwgJGlkOjpzcGxhdChvdGhlciBhcyAk ZWxlbV90eSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRl OjpvcHM6OlNocjx1MzI+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2Vs ZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaHIoc2VsZiwgb3Ro ZXI6IHUzMikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgPj4gJGlkOjpzcGxhdChv dGhlciBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAg ICBpbXBsIGNyYXRlOjpvcHM6OlNobEFzc2lnbjx1MzI+IGZvciAkaWQgeworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHNobF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjog dTMyKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgPDwgb3RoZXI7CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaHJBc3NpZ248 dTMyPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBz aHJfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IHUzMikgeworLSAgICAgICAgICAgICAgICAqc2Vs ZiA9ICpzZWxmID4+IG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAg IHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc19zY2FsYXJfc2hpZnRz Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIoYW55KHRhcmdldF9hcmNoID0gInMzOTB4IiwgdGFy Z2V0X2FyY2ggPSAic3BhcmM2NCIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bGxvdyh1bnJlYWNoYWJsZV9jb2RlLCB1bnVzZWRfdmFyaWFibGVzKQorLSAgICAgICAgICAgICAg ICAgICAgKV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJh YXJjaDY0IikpXQorLSAgICAgICAgICAgICAgICAgICAgLy9+XiBGSVhNRTogaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9pc3N1ZXMvMzE3CistICAgICAgICAgICAgICAg ICAgICBmbiBvcHNfc2NhbGFyX3NoaWZ0cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgemkg PSAwIGFzIHUzMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9pID0gMSBhcyB1 MzI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aSA9IDIgYXMgdTMyOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWF4aQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSAobWVtOjpzaXplX29mOjo8JGVsZW1fdHk+KCkgKiA4IC0gMSkgYXMgdTMy OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaHIKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHppLCB6KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IG9pLCB6KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHRpLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6ID4+IHRpLCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgI1tjZmcoYW55KHRhcmdldF9hcmNoID0gInMzOTB4IiwgdGFyZ2V0X2FyY2ggPSAic3Bh cmM2NCIpKV0geworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTMK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8gPj4gemksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgPj4gemksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYg Pj4gemksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4g bWF4aSwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA+ PiBvaSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA+PiBv aSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA+PiB0aSwg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBvaSwgdCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiB0aSwgbyk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBtYXhpLCB6KTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoeiA8PCB6aSwgeik7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobyA8PCB6aSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodCA8PCB6aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoZiA8PCB6aSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiA8PCBtYXhpLCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShvIDw8IG9pLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvIDw8IHRpLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0IDw8IG9pLCBmKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgLy8g c2hyX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0g bzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPj49IG9pOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAvLyBzaGxf YXNzaWduCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBvOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA8PD0gb2k7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvb3BzL3ZlY3Rvcl9hcml0aG1ldGljLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYXJpdGhtZXRpYy5ycworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3Zl Y3Rvcl9hcml0aG1ldGljLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNDggKzAsMCBAQAorLS8v ISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3ItdmVjdG9yIGFyaXRobWV0aWMgb3BlcmF0aW9u cy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX2FyaXRobWV0aWMgeworLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkIGZvciAkaWQgeworLSAgICAg ICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBhZGQoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfYWRkOworLSAgICAgICAgICAgICAgICB1bnNhZmUg eyBTaW1kKHNpbWRfYWRkKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlN1YiBmb3IgJGlkIHsKKy0gICAg ICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gc3ViKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3N1YjsKKy0gICAgICAgICAgICAgICAgdW5zYWZl IHsgU2ltZChzaW1kX3N1YihzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpNdWwgZm9yICRpZCB7CistICAg ICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIGZuIG11bChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9tdWw7CistICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IFNpbWQoc2ltZF9tdWwoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2IGZvciAkaWQgeworLSAg ICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBkaXYoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZGl2OworLSAgICAgICAgICAgICAgICB1bnNh ZmUgeyBTaW1kKHNpbWRfZGl2KHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbSBmb3IgJGlkIHsKKy0g ICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gcmVtKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlbTsKKy0gICAgICAgICAgICAgICAgdW5z YWZlIHsgU2ltZChzaW1kX3JlbShzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGRBc3NpZ24gZm9yICRp ZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYWRkX2Fzc2lnbigm bXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYg KyBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNy YXRlOjpvcHM6OlN1YkFzc2lnbiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBzdWJfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAg ICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAtIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TXVsQXNzaWduIGZvciAkaWQgewor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG11bF9hc3NpZ24oJm11dCBz ZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICogb3Ro ZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6 b3BzOjpEaXZBc3NpZ24gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gZGl2X2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAg ICAgICAgICpzZWxmID0gKnNlbGYgLyBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbUFzc2lnbiBmb3IgJGlkIHsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiByZW1fYXNzaWduKCZtdXQgc2VsZiwg b3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAlIG90aGVyOwor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAg ICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9hcml0aD5dIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBv cHNfdmVjdG9yX2FyaXRobWV0aWMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHog PSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGFkZAorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo eiArIHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyArIHosIG8p OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCArIHosIHQpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCArIHQsIGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHN1YgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAt IHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAtIHosIG8pOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAtIHosIHQpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAtIHQsIHQpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZiAtIG8gLSBvLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBtdWwKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiB6LCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiBvLCB6KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiB0LCB6KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG8gKiB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQgKiB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXYKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogLyBvLCB6KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLyBvLCB0KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGYgLyBvLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHQgLyB0LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYg LyB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyByZW0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG8gJSBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYgJSB0LCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgKz0gbzsgLy8gYWRkX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYsIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC09IG87 IC8vIHN1Yl9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2 LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHQ7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgKj0gbzsgLy8gbXVsX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ICo9IHQ7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgZik7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLz0gbzsgLy8gZGl2X2Fzc2lnbgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2IC89IHQ7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgJT0gdDsgLy8g cmVtX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHop OworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92 ZWN0b3JfYml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9v cHMvdmVjdG9yX2JpdHdpc2UucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYml0d2lzZS5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsMTI5ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lz ZSkgdmVjdG9yLXZlY3RvciBiaXR3aXNlIG9wZXJhdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGlt cGxfb3BzX3ZlY3Rvcl9iaXR3aXNlIHsKKy0gICAgKAorLSAgICAgICAgWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwK Ky0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKKy0gICAgKSA9PiB7CistICAgICAg ICBpbXBsIGNyYXRlOjpvcHM6Ok5vdCBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1 dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbm90KHNl bGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBTZWxmOjpzcGxhdCgkdHJ1ZSkgXiBzZWxm CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRYb3IgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogU2Vs ZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF94b3I7 CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF94b3Ioc2VsZi4wLCBvdGhlci4w KSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0QW5kIGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6 IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRf YW5kOworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfYW5kKHNlbGYuMCwgb3Ro ZXIuMCkpIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRl OjpvcHM6OkJpdE9yIGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhl cjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2lt ZF9vcjsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX29yKHNlbGYuMCwgb3Ro ZXIuMCkpIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRl OjpvcHM6OkJpdEFuZEFzc2lnbiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBiaXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0g ICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAmIG90aGVyOworLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ24gZm9yICRpZCB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZt dXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiB8 IG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6 Om9wczo6Qml0WG9yQXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIGZuIGJpdHhvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgeworLSAg ICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIF4gb3RoZXI7CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6Cist ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfb3BzX3ZlY3Rvcl9iaXR3aXNlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVy OjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG9wc192ZWN0b3JfYml0d2lz ZSgpIHsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0 KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpz cGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9ICRp ZDo6c3BsYXQoIXouZXh0cmFjdCgwKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g Tm90OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoIXosIG0pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoIW0sIHopOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIEJpdEFuZDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8gJiBvLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiB6LCB6 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogJiBvLCB6KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogJiB6LCB6KTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQgJiBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG8gJiB0LCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRPcjoK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gfCBvLCBvKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gfCB6LCBvKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHogfCBvLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHogfCB6LCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQgfCB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCB0 LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB6LCB0KTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRYT1I6CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvIF4gbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh6IF4geiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6 IF4gbywgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4geiwgbyk7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdCwgeik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4geiwgdCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4gdCwgdCk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRBc3NpZ246CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYgJj0gdDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh2LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPckFzc2lnbjoKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiB8PSBvOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYsIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgdiBePSBvOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYsIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL29wcy92ZWN0b3JfZmxvYXRfbWluX21heC5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9tYXgucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL29wcy92ZWN0b3JfZmxvYXRfbWluX21heC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNzQg KzAsMCBAQAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3IgYG1pbmAgYW5kIGBtYXhg IGZvciBmbG9hdGluZy1wb2ludCB2ZWN0b3JzLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc192 ZWN0b3JfZmxvYXRfbWluX21heCB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50 OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQg eworLSAgICAgICAgICAgIC8vLyBNaW5pbXVtIG9mIHR3byB2ZWN0b3JzLgorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciBjb250YWluaW5nIHRo ZSBtaW5pbXVtIHZhbHVlIG9mIGVhY2ggb2YKKy0gICAgICAgICAgICAvLy8gdGhlIGlucHV0IHZl Y3RvciBsYW5lcy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4g bWluKHNlbGYsIHg6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Omxsdm06OnNpbWRfZm1pbjsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2Zt aW4oc2VsZi4wLCB4LjApKSB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBN YXhpbXVtIG9mIHR3byB2ZWN0b3JzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyBSZXR1cm5zIGEgbmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGVh Y2ggb2YKKy0gICAgICAgICAgICAvLy8gdGhlIGlucHV0IHZlY3RvciBsYW5lcy4KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbWF4KHNlbGYsIHg6IFNlbGYpIC0+ IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZm1heDsKKy0g ICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2ZtYXgoc2VsZi4wLCB4LjApKSB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAg ICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAg ICAgI1tjZmcobm90KGFueSgKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzIyMworLSAg ICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gIm1pcHMiLCB0YXJnZXRfZW5kaWFu ID0gImJpZyIpLAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAibWlwczY0IiwK Ky0gICAgICAgICAgICAgICAgKSkpXQorLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9v cHNfdmVjdG9yX21pbl9tYXg+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbWluX21heCgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbiA9IGNyYXRlOjokZWxlbV90eTo6TkFOOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxLiBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIuIGFzICRlbGVtX3R5KTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG0gPSBvOyAvLyBbMS4sIDIuLCAx LiwgMi4sIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG9uID0gbzsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG0gPSBtLnJlcGxhY2UoaSwgMi4gYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gPSBvbi5yZXBsYWNlKGksIG4pOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5taW4odCksIG8pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5taW4obyksIG8pOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobS5taW4obyksIG8pOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoby5taW4obSksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEobS5taW4odCksIG0pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodC5taW4obSksIG0pOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoby5tYXgodCksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5t YXgobyksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5tYXgobyks IG0pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5tYXgobSksIG0pOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5tYXgodCksIHQpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5tYXgobSksIHQpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob24ubWluKG8pLCBvKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWluKG9uKSwgbyk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvbi5tYXgobyksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoby5tYXgob24pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0 b3JfaW50X21pbl9tYXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3ZlY3Rvcl9pbnRfbWluX21heC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9pbnRfbWlu X21heC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNTcgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCAo bGFuZS13aXNlKSB2ZWN0b3IgYG1pbmAgYW5kIGBtYXhgIGZvciBpbnRlZ2VyIHZlY3RvcnMuCist CistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9pbnRfbWluX21heCB7CistICAgIChbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBNaW5pbXVtIG9mIHR3 byB2ZWN0b3JzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEg bmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBtaW5pbXVtIHZhbHVlIG9mIGVhY2ggb2YKKy0gICAg ICAgICAgICAvLy8gdGhlIGlucHV0IHZlY3RvciBsYW5lcy4KKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBwdWIgZm4gbWluKHNlbGYsIHg6IFNlbGYpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICBzZWxmLmx0KHgpLnNlbGVjdChzZWxmLCB4KQorLSAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAvLy8gTWF4aW11bSBvZiB0d28gdmVjdG9ycy4KKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0 aGUgbWF4aW11bSB2YWx1ZSBvZiBlYWNoIG9mCistICAgICAgICAgICAgLy8vIHRoZSBpbnB1dCB2 ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZu IG1heChzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZi5ndCh4 KS5zZWxlY3Qoc2VsZiwgeCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICB0 ZXN0X2lmIXskdGVzdF90dDoKKy0gICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9taW5fbWF4Pl0geworLSAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgIGZuIG1pbl9tYXgoKSB7CistICAg ICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7CistCist ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG0gPSBvOworLSAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiBp ICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbSA9IG0ucmVwbGFjZShp LCAyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWluKHQpLCBv KTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5taW4obyksIG8pOworLSAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1pbihvKSwgbyk7CistICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8ubWluKG0pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEobS5taW4odCksIG0pOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1p bihtKSwgbSk7CistCistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KHQpLCB0 KTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5tYXgobyksIHQpOworLSAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1heChvKSwgbSk7CistICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8ubWF4KG0pLCBtKTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEobS5tYXgodCksIHQpOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1h eChtKSwgdCk7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDExNiArMCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3Ig Yml0d2lzZSBvcGVyYXRpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3JfbWFz a19iaXR3aXNlIHsKKy0gICAgKAorLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3Vu dDpleHByXToKKy0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKKy0gICAgICAgICgk dHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKKy0gICAgKSA9PiB7CistICAgICAgICBpbXBsIGNyYXRl OjpvcHM6Ok5vdCBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbm90KHNlbGYpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICBTZWxmOjpzcGxhdCgkdHJ1ZSkgXiBzZWxmCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3IgZm9yICRp ZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7 CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF94b3I7CistICAgICAgICAg ICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF94b3Ioc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kIGZv ciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfYW5kOworLSAgICAg ICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfYW5kKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9y IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogU2VsZikgLT4g U2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9vcjsKKy0gICAg ICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX29yKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZEFzc2lnbiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biBiaXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAg ICAgKnNlbGYgPSAqc2VsZiAmIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ24gZm9yICRpZCB7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZtdXQgc2VsZiwgb3Ro ZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiB8IG90aGVyOworLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9y QXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IGJpdHhvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAg ICAqc2VsZiA9ICpzZWxmIF4gb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQor LSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rv cl9tYXNrX2JpdHdpc2U+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Cist ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9tYXNrX2JpdHdpc2Uo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRydWUpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh0ICE9IGYpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoISh0ID09IGYpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAv LyBOb3Q6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISghdCwgZik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCAhZik7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgLy8gQml0QW5kOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodCAmIGYsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAmIHQs IGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAmIHQsIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAmIGYsIGYpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIEJpdE9yOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodCB8IGYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiB8 IHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCB8IHQsIHQpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiB8IGYsIGYpOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIEJpdFhPUjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQgXiBmLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgXiB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB0LCBm KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgXiBmLCBmKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IEFuZEFzc2lnbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gZjsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAmPSB0OworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIE9yQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBm OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IHw9IHQ7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gWE9SQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYg PSBmOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IF49IHQ7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L29wcy92ZWN0b3JfbmVnLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw0MyArMCwwIEBACistLy8h IFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3RvciBgTmVnYC4KKy0KKy1tYWNyb19ydWxlcyEgaW1w bF9vcHNfdmVjdG9yX25lZyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4 cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6 b3BzOjpOZWcgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG5lZyhzZWxmKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgU2VsZjo6c3BsYXQoLTEgYXMgJGVsZW1fdHkpICogc2VsZgorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAg ICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3JfbmVnPl0geworLSAgICAgICAgICAgICAgICAgICAg dXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG5lZygpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFz ICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQo NCBhcyAkZWxlbV90eSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG56ID0gJGlk OjpzcGxhdCgtKDAgYXMgJGVsZW1fdHkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bm8gPSAkaWQ6OnNwbGF0KC0oMSBhcyAkZWxlbV90eSkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBudCA9ICRpZDo6c3BsYXQoLSgyIGFzICRlbGVtX3R5KSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG5mID0gJGlkOjpzcGxhdCgtKDQgYXMgJGVsZW1fdHkpKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKC16LCBueik7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISgtbywgbm8pOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoLXQsIG50KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KC1mLCBuZik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCAtbnop OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgLW5vKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIC1udCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmLCAtbmYpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rv cl9yb3RhdGVzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92 ZWN0b3Jfcm90YXRlcy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9yb3RhdGVzLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSw5MiArMCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZl Y3RvciByb3RhdGVzIG9wZXJhdGlvbnMuCistIyFbYWxsb3codW51c2VkKV0KKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9vcHNfdmVjdG9yX3JvdGF0ZXMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAg IGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gU2hpZnRzIHRoZSBiaXRzIG9mIGVhY2ggbGFu ZSB0byB0aGUgbGVmdCBieSB0aGUgc3BlY2lmaWVkCistICAgICAgICAgICAgLy8vIGFtb3VudCBp biB0aGUgY29ycmVzcG9uZGluZyBsYW5lIG9mIGBuYCwgd3JhcHBpbmcgdGhlCistICAgICAgICAg ICAgLy8vIHRydW5jYXRlZCBiaXRzIHRvIHRoZSBlbmQgb2YgdGhlIHJlc3VsdGluZyBpbnRlZ2Vy LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBOb3RlOiB0aGlzIGlzIG5laXRo ZXIgdGhlIHNhbWUgb3BlcmF0aW9uIGFzIGA8PGAgbm9yIGVxdWl2YWxlbnQKKy0gICAgICAgICAg ICAvLy8gdG8gYHNsaWNlOjpyb3RhdGVfbGVmdGAuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGZuIHJvdGF0ZV9sZWZ0KHNlbGYsIG46ICRpZCkgLT4gJGlkIHsKKy0g ICAgICAgICAgICAgICAgY29uc3QgTEFORV9XSURUSDogJGVsZW1fdHkgPQorLSAgICAgICAgICAg ICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PCRlbGVtX3R5PigpIGFzICRlbGVtX3R5ICog ODsKKy0gICAgICAgICAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHVuZGVmaW5lZCBiZWhhdmlv ciBmb3Igb3Zlci1sb25nIGJpdCBzaGlmdHMKKy0gICAgICAgICAgICAgICAgbGV0IG4gPSBuICUg TEFORV9XSURUSDsKKy0gICAgICAgICAgICAgICAgKHNlbGYgPDwgbikgfCAoc2VsZiA+PiAoKExB TkVfV0lEVEggLSBuKSAlIExBTkVfV0lEVEgpKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAvLy8gU2hpZnRzIHRoZSBiaXRzIG9mIGVhY2ggbGFuZSB0byB0aGUgcmlnaHQgYnkgdGhl IHNwZWNpZmllZAorLSAgICAgICAgICAgIC8vLyBhbW91bnQgaW4gdGhlIGNvcnJlc3BvbmRpbmcg bGFuZSBvZiBgbmAsIHdyYXBwaW5nIHRoZQorLSAgICAgICAgICAgIC8vLyB0cnVuY2F0ZWQgYml0 cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZXN1bHRpbmcgaW50ZWdlci4KKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gTm90ZTogdGhpcyBpcyBuZWl0aGVyIHRoZSBzYW1lIG9w ZXJhdGlvbiBhcyBgPj5gIG5vciBlcXVpdmFsZW50CistICAgICAgICAgICAgLy8vIHRvIGBzbGlj ZTo6cm90YXRlX3JpZ2h0YC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgZm4gcm90YXRlX3JpZ2h0KHNlbGYsIG46ICRpZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAg ICAgY29uc3QgTEFORV9XSURUSDogJGVsZW1fdHkgPQorLSAgICAgICAgICAgICAgICAgICAgY3Jh dGU6Om1lbTo6c2l6ZV9vZjo6PCRlbGVtX3R5PigpIGFzICRlbGVtX3R5ICogODsKKy0gICAgICAg ICAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHVuZGVmaW5lZCBiZWhhdmlvciBmb3Igb3Zlci1s b25nIGJpdCBzaGlmdHMKKy0gICAgICAgICAgICAgICAgbGV0IG4gPSBuICUgTEFORV9XSURUSDsK Ky0gICAgICAgICAgICAgICAgKHNlbGYgPj4gbikgfCAoc2VsZiA8PCAoKExBTkVfV0lEVEggLSBu KSAlIExBTkVfV0lEVEgpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAg IHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7CistICAgICAgICAgICAgICAgIC8vIEZJWE1FOgorLSAgICAgICAgICAgICAgICAvLyBo dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzc1 CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdChhbnkoCistICAgICAgICAgICAgICAgICAgICB0 YXJnZXRfYXJjaCA9ICJzMzkweCIsCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9 ICJzcGFyYzY0IiwKKy0gICAgICAgICAgICAgICAgKSkpXQorLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9vcHNfdmVjdG9yX3JvdGF0ZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFy Z2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgICAgIC8vfl4gRklYTUU6 IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQvaXNzdWVzLzMxNworLSAg ICAgICAgICAgICAgICAgICAgZm4gcm90YXRlX29wcygpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7CistCist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1heCA9ICRpZDo6c3BsYXQoCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtZW06OnNpemVfb2Y6OjwkZWxlbV90eT4oKSAqIDggLSAxKSBh cyAkZWxlbV90eSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm90YXRlX3JpZ2h0 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LnJvdGF0ZV9yaWdodCh6KSwg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LnJvdGF0ZV9yaWdodChv KSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LnJvdGF0ZV9yaWdo dCh0KSwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0 ZV9yaWdodCh6KSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LnJv dGF0ZV9yaWdodCh6KSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShm LnJvdGF0ZV9yaWdodCh6KSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShmLnJvdGF0ZV9yaWdodChtYXgpLCBmIDw8IDEpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoby5yb3RhdGVfcmlnaHQobyksIG8gPDwgbWF4KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQucm90YXRlX3JpZ2h0KG8pLCBvKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQucm90YXRlX3JpZ2h0KHQpLCBvIDw8IG1heCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9yaWdodChvKSwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9yaWdodCh0 KSwgbyk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm90YXRlX2xlZnQKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHoucm90YXRlX2xlZnQoeiksIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5yb3RhdGVfbGVmdCh6KSwgbyk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LnJvdGF0ZV9sZWZ0KHopLCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYucm90YXRlX2xlZnQoeiksIGYp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfbGVmdChtYXgp LCB0KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX2xl ZnQobyksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5yb3RhdGVf bGVmdCh0KSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LnJvdGF0 ZV9sZWZ0KG8pLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRzLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRz LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsMTA2ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXZlY3RvciBz aGlmdHMgb3BlcmF0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX3NoaWZ0 cyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaGw8JGlkPiBm b3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hsKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3NobDsKKy0gICAgICAg ICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX3NobChzZWxmLjAsIG90aGVyLjApKSB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaHI8JGlk PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hyKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3NocjsKKy0gICAg ICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX3NocihzZWxmLjAsIG90aGVyLjApKSB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaGxB c3NpZ248JGlkPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBzaGxfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAg ICAgKnNlbGYgPSAqc2VsZiA8PCBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNockFzc2lnbjwkaWQ+IGZvciAkaWQgeworLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHNocl9hc3NpZ24oJm11dCBzZWxmLCBv dGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmID4+IG90aGVyOwor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAg ICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3Jfc2hpZnRzPl0geworLSAgICAgICAgICAgICAg ICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIoYW55KHRhcmdldF9hcmNoID0gInMzOTB4IiwgdGFyZ2V0X2FyY2ggPSAic3BhcmM2NCIp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvdyh1bnJlYWNoYWJsZV9jb2Rl LCB1bnVzZWRfdmFyaWFibGVzKQorLSAgICAgICAgICAgICAgICAgICAgKV0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQorLSAgICAgICAg ICAgICAgICAgICAgLy9+XiBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wYWNr ZWRfc2ltZC9pc3N1ZXMvMzE3CistICAgICAgICAgICAgICAgICAgICBmbiBvcHNfdmVjdG9yX3No aWZ0cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0 KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpz cGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRp ZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG1heCA9JGlkOjpzcGxhdCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbTo6c2l6 ZV9vZjo6PCRlbGVtX3R5PigpICogOCAtIDEpIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzaHIKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4geiwgeik7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoeiA+PiB0LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHogPj4gdCwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcoYW55KHRh cmdldF9hcmNoID0gInMzOTB4IiwgdGFyZ2V0X2FyY2ggPSAic3BhcmM2NCIpKV0geworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogcnVzdCBwcm9kdWNlcyBiYWQgY29kZWdl biBmb3Igc2hpZnRzOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzEzCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvID4+IHosIG8pOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA+PiB6LCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4geiwgZik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmID4+IG1heCwgeik7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvID4+IG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodCA+PiBvLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQg Pj4gdCwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG8sIHQp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiB0LCBvKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gbWF4LCB6KTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBzaGwKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHogPDwgeiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIDw8 IHosIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA8PCB6LCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPDwgeiwgZik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIDw8IG1heCwgeik7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIDw8IG8sIHQpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobyA8PCB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQgPDwgbywgZik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaHJfYXNzaWduCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYgPj49IG87CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7 CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hsX2Fzc2lnbgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBvOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2IDw8PSBvOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYs IHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0 ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL3B0ci5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNCArMCwwIEBACistLy8hIFZlY3Rv ciBvZiBwb2ludGVycworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBnYXRoZXJfc2NhdHRlcjsKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhl cl9zY2F0dGVyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci9n YXRoZXJfc2NhdHRlci5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhlcl9zY2F0dGVyLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwyMTYgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIG1hc2tlZCBnYXRo ZXIgYW5kIHNjYXR0ZXJzIGZvciB2ZWN0b3JzIG9mIHBvaW50ZXJzCistCistbWFjcm9fcnVsZXMh IGltcGxfcHRyX3JlYWQgeworLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50LCAkbWFza190eTppZGVudAorLSAgICAgfCAkdGVzdF90dDp0dCkgPT4geworLSAg ICAgICAgaW1wbDxUPiAkaWQ8VD4KKy0gICAgICAgIHdoZXJlCistICAgICAgICAgICAgW1Q7ICRl bGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJyYXksCistICAgICAgICB7CistICAgICAgICAgICAg Ly8vIFJlYWRzIHNlbGVjdGVkIHZlY3RvciBlbGVtZW50cyBmcm9tIG1lbW9yeS4KKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciBieSBy ZWFkaW5nIHRoZSB2YWx1ZXMgZnJvbSBgc2VsZmAgZm9yCistICAgICAgICAgICAgLy8vIHRob3Nl IGxhbmVzIHdob3NlIGBtYXNrYCBpcyBgdHJ1ZWAsIGFuZCB1c2luZyB0aGUgZWxlbWVudHMgb2YK Ky0gICAgICAgICAgICAvLy8gYHZhbHVlYCBvdGhlcndpc2UuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIE5vIG1lbW9yeSBpcyBhY2Nlc3NlZCBmb3IgdGhvc2UgbGFuZXMgb2Yg YHNlbGZgIHdob3NlIGBtYXNrYCBpcworLSAgICAgICAgICAgIC8vLyBgZmFsc2VgLgorLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyBUaGlzIG1ldGhvZCBpcyB1bnNhZmUgYmVjYXVzZSBpdCBkZXJlZmVy ZW5jZXMgcmF3IHBvaW50ZXJzLiBUaGUKKy0gICAgICAgICAgICAvLy8gcG9pbnRlcnMgbXVzdCBi ZSBhbGlnbmVkIHRvIGBtZW06OmFsaWduX29mOjo8VD4oKWAuCistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiByZWFkPE0+KAorLSAgICAgICAgICAgICAg ICBzZWxmLAorLSAgICAgICAgICAgICAgICBtYXNrOiBTaW1kPFtNOyAkZWxlbV9jb3VudF0+LAor LSAgICAgICAgICAgICAgICB2YWx1ZTogU2ltZDxbVDsgJGVsZW1fY291bnRdPiwKKy0gICAgICAg ICAgICApIC0+IFNpbWQ8W1Q7ICRlbGVtX2NvdW50XT4KKy0gICAgICAgICAgICB3aGVyZQorLSAg ICAgICAgICAgICAgICBNOiBzZWFsZWQ6Ok1hc2ssCistICAgICAgICAgICAgICAgIFtNOyAkZWxl bV9jb3VudF06IHNlYWxlZDo6U2ltZEFycmF5LAorLSAgICAgICAgICAgIHsKKy0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2dhdGhlcjsKKy0gICAgICAgICAgICAgICAgU2lt ZChzaW1kX2dhdGhlcih2YWx1ZS4wLCBzZWxmLjAsIG1hc2suMCkpCistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIG1vZCBbPCRp ZCBfcmVhZD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAg ICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHJlYWQoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gWzBfaTMyOyAkZWxlbV9jb3VudF07 CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2W2ldID0gaSBhcyBpMzI7CistICAgICAgICAgICAg ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcHRyID0g JGlkOjo8aTMyPjo6bnVsbCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gcHRy LnJlcGxhY2UoaSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2W2ldIGFzICpj b25zdCBpMzIgYXMgKm11dCBpMzIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g YWxsIG1hc2sgZWxlbWVudHMgYXJlIHRydWU6CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG1hc2sgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGRlZiA9IFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+OjpzcGxhdCg0Ml9pMzIpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCByOiBTaW1kPFtpMzI7ICRlbGVtX2NvdW50XT4gPSB1 bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIucmVhZChtYXNrLCBkZWYp CistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTaW1kOjo8W2kzMjsgJGVsZW1fY291bnRdPjo6ZnJvbV9zbGljZV91 bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG1hc2sgPSBtYXNrOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtYXNrID0gbWFzay5yZXBsYWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBldmVuIG1hc2sgZWxlbWVudHMgYXJlIHRydWUsIG9kZCBvbmVzIGFyZSBm YWxzZToKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcjogU2ltZDxbaTMyOyAkZWxlbV9j b3VudF0+ID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLnJlYWQo bWFzaywgZGVmKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBlID0gdjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAy ICE9IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZVtpXSA9IDQyOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQ6OjxbaTMyOyAk ZWxlbV9jb3VudF0+Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAg ICAgICAgICAgICAgICAgICApOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBt YXNrIGVsZW1lbnRzIGFyZSBmYWxzZToKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFz ayA9ICRtYXNrX3R5OjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGRlZiA9IFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+OjpzcGxhdCg0Ml9pMzIpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCByOiBTaW1kPFtpMzI7ICRlbGVtX2NvdW50XT4gPSB1bnNh ZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIucmVhZChtYXNrLCBkZWYpIH0K Ky0gICAgICAgICAgICAgICAgICAgICAgICA7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShyLCBkZWYpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9wdHJfd3JpdGUgeworLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50LCAkbWFza190eTppZGVudAorLSAgICAgfCAkdGVzdF90dDp0dCkgPT4g eworLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4KKy0gICAgICAgIHdoZXJlCistICAgICAgICAgICAg W1Q7ICRlbGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJyYXksCistICAgICAgICB7CistICAgICAg ICAgICAgLy8vIFdyaXRlcyBzZWxlY3RlZCB2ZWN0b3IgZWxlbWVudHMgdG8gbWVtb3J5LgorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIGxhbmVzIG9mIGB2YWx1 ZXNgIGZvciB3aGljaCB0aGUgbWFzayBpcyBgdHJ1ZWAgdG8KKy0gICAgICAgICAgICAvLy8gdGhl aXIgY29ycmVzcG9uZGluZyBtZW1vcnkgYWRkcmVzc2VzIGluIGBzZWxmYC4KKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gTm8gbWVtb3J5IGlzIGFjY2Vzc2VkIGZvciB0aG9zZSBs YW5lcyBvZiBgc2VsZmAgd2hvc2UgYG1hc2tgIGlzCistICAgICAgICAgICAgLy8vIGBmYWxzZWAu CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE92ZXJsYXBwaW5nIG1lbW9yeSBh ZGRyZXNzZXMgb2YgYHNlbGZgIGFyZSB3cml0dGVuIHRvIGluIG9yZGVyCistICAgICAgICAgICAg Ly8vIGZyb20gdGhlIGxlc3Qtc2lnbmlmaWNhbnQgdG8gdGhlIG1vc3Qtc2lnbmlmaWNhbnQgZWxl bWVudC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhpcyBtZXRob2QgaXMgdW5zYWZlIGJlY2F1 c2UgaXQgZGVyZWZlcmVuY2VzIHJhdyBwb2ludGVycy4gVGhlCistICAgICAgICAgICAgLy8vIHBv aW50ZXJzIG11c3QgYmUgYWxpZ25lZCB0byBgbWVtOjphbGlnbl9vZjo6PFQ+KClgLgorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gd3JpdGU8TT4oc2Vs ZiwgbWFzazogU2ltZDxbTTsgJGVsZW1fY291bnRdPiwgdmFsdWU6IFNpbWQ8W1Q7ICRlbGVtX2Nv dW50XT4pCistICAgICAgICAgICAgd2hlcmUKKy0gICAgICAgICAgICAgICAgTTogc2VhbGVkOjpN YXNrLAorLSAgICAgICAgICAgICAgICBbTTsgJGVsZW1fY291bnRdOiBzZWFsZWQ6OlNpbWRBcnJh eSwKKy0gICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2lt ZF9zY2F0dGVyOworLSAgICAgICAgICAgICAgICBzaW1kX3NjYXR0ZXIodmFsdWUuMCwgc2VsZi4w LCBtYXNrLjApCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9p ZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7 CistICAgICAgICAgICAgICAgIG1vZCBbPCRpZCBfd3JpdGU+XSB7CistICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAg ICAgICAgICAgICAgICBmbiB3cml0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBm b3J0eV90d28gPSBbNDIsIDQyLCA0MiwgLi4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBmb3J0eV90d28KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTaW1kOjo8W2kzMjsg JGVsZW1fY291bnRdPjo6c3BsYXQoNDJfaTMyKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBUaGlzIHRlc3Qgd2lsbCB3cml0ZSB0byB0aGlzIGFycmF5CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBhcnIgPSBbMF9pMzI7ICRlbGVtX2NvdW50XTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFycltpXSA9IGkgYXMgaTMyOworLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhcnIgPSBbMCwgMSwgMiwgLi4uXQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcHRyID0gJGlkOjo8aTMyPjo6bnVsbCgp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gcHRyLnJlcGxhY2UoaSwgdW5zYWZlIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyci5hc19wdHIoKS5hZGQoaSkgYXMg Km11dCBpMzIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHB0ciA9IFsmYXJyWzBd LCAmYXJyWzFdLCAuLi5dCistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYGZv cnR5X3R3b2AgdG8gYWxsIGVsZW1lbnRzIG9mIGB2YAorLSAgICAgICAgICAgICAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2t1cCA9IGFycjsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHB0ci53cml0ZSgkbWFza190eTo6c3BsYXQodHJ1ZSksIGZvcnR5X3R3bykKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShhcnIsIFs0Ml9pMzI7ICRlbGVtX2NvdW50XSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFyciA9IGJhY2t1cDsgIC8vIGFyciA9IFswLCAxLCAyLCAuLi5dCist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IHdyaXRlIDQyIHRvIGV2ZW4gZWxlbWVudHMgb2YgYXJyOgorLSAgICAgICAgICAgICAgICAgICAg ICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IG9kZCBlbGVtZW50cyBv ZiB0aGUgbWFzayB0byBmYWxzZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IG1hc2sgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGkgJSAyICE9IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1hc2sgPSBtYXNrLnJlcGxhY2UoaSwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIG1hc2sgPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCAu Li5dCistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV4cGVjdGVkIHJlc3VsdCBy ID0gWzQyLCAxLCA0MiwgMywgNDIsIDUsIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCByID0gYXJyOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBp ICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByW2ldID0g NDI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2t1 cCA9IGFycjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgcHRyLndyaXRl KG1hc2ssIGZvcnR5X3R3bykgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShhcnIsIHIpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnIgPSBiYWNrdXA7 ICAvLyBhcnIgPSBbMCwgMSwgMiwgMywgLi4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSA0MiB0byBubyBlbGVtZW50cyBv ZiBhcnIKKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBiYWNrdXAgPSBhcnI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIud3JpdGUoJG1hc2tf dHk6OnNwbGF0KGZhbHNlKSwgZm9ydHlfdHdvKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFyciwgYmFja3Vw KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1 Y3Rpb25zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlv bnMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEy ICswLDAgQEAKKy0vLyEgUmVkdWN0aW9ucworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBmbG9hdF9h cml0aG1ldGljOworLSNbbWFjcm9fdXNlXQorLW1vZCBpbnRlZ2VyX2FyaXRobWV0aWM7CistI1tt YWNyb191c2VdCistbW9kIGJpdHdpc2U7CistI1ttYWNyb191c2VdCistbW9kIG1hc2s7CistI1tt YWNyb191c2VdCistbW9kIG1pbl9tYXg7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvYml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2JpdHdpc2UucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L3JlZHVjdGlvbnMvYml0d2lzZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTUxICswLDAgQEAK Ky0vLyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFsIGJpdHdpc2UgdmVjdG9yIHJlZHVj dGlvbnMuCistIyFbYWxsb3codW51c2VkKV0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9yZWR1Y3Rp b25fYml0d2lzZSB7CistICAgICgKKy0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06CistICAgICAgICAkaWQ6aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQgfCAkdGVzdF90 dDp0dCB8CistICAgICAgICAoJGNvbnZlcnQ6ZXhwcikgfAorLSAgICAgICAgKCR0cnVlOmV4cHIs ICRmYWxzZTpleHByKQorLSAgICApID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAg ICAgICAvLy8gTGFuZS13aXNlIGJpdHdpc2UgYGFuZGAgb2YgdGhlIHZlY3RvciBlbGVtZW50cy4K Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gTm90ZTogaWYgdGhlIHZlY3RvciBo YXMgb25lIGxhbmUsIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZQorLSAgICAgICAgICAgIC8vLyB2 ZWN0b3IgaXMgcmV0dXJuZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGZuIGFuZChzZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5v dCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FuZDsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCByOiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9hbmQo c2VsZi4wKSB9OworLSAgICAgICAgICAgICAgICAgICAgJGNvbnZlcnQocikKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0Iild CistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9r ZW4gb24gYWFyY2g2NAorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQorLSAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5OworLSAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB4ICY9IHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGJpdHdpc2UgYG9yYCBv ZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyBOb3RlOiBpZiB0aGUgdmVjdG9yIGhhcyBvbmUgbGFuZSwgdGhlIGZpcnN0IGVsZW1lbnQgb2Yg dGhlCistICAgICAgICAgICAgLy8vIHZlY3RvciBpcyByZXR1cm5lZC4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gb3Ioc2VsZikgLT4gJGVsZW1fdHkgeworLSAg ICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAg ICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1k X3JlZHVjZV9vcjsKKy0gICAgICAgICAgICAgICAgICAgIGxldCByOiAkaWVsZW1fdHkgPSB1bnNh ZmUgeyBzaW1kX3JlZHVjZV9vcihzZWxmLjApIH07CistICAgICAgICAgICAgICAgICAgICAkY29u dmVydChyKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdl dF9hcmNoID0gImFhcmNoNjQiKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAg ICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBhYXJjaDY0CistICAgICAgICAgICAgICAgICAgICAv LyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVz LzE1CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMg JGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgIHggfD0gc2VsZi5leHRyYWN0KGkpIGFzICRlbGVt X3R5OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgeAorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5l LXdpc2UgYml0d2lzZSBgeG9yYCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyBOb3RlOiBpZiB0aGUgdmVjdG9yIGhhcyBvbmUgbGFuZSwg dGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlCistICAgICAgICAgICAgLy8vIHZlY3RvciBpcyByZXR1 cm5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4geG9yKHNl bGYpIC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNo ID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfeG9yOworLSAgICAgICAgICAgICAgICAgICAg bGV0IHI6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX3hvcihzZWxmLjApIH07Cist ICAgICAgICAgICAgICAgICAgICAkY29udmVydChyKQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy0gICAgICAgICAg ICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBhYXJjaDY0 CistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHggXj0g c2VsZi5leHRyYWN0KGkpIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6 CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfcmVkdWN0aW9uX2JpdHdpc2U+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gYW5kKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZmFsc2UpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwgJGZhbHNlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwgJHRydWUpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZmFsc2UpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh2LmFuZCgpLCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwg JHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ID0gdi5yZXBsYWNlKDAsICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh2LmFuZCgpLCAkZmFsc2UpOworLQorLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG9yKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZmFsc2UpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodi5vcigpLCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh2Lm9yKCksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9 IHYucmVwbGFjZSgwLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2Lm9yKCksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6 c3BsYXQoJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNl KDAsICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4g MSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5vcigpLCAkdHJ1 ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm9yKCksICRmYWxzZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIGZuIHhvcigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRp ZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYu eG9yKCksICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNw bGF0KCR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAx IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkZmFs c2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJHRydWUpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQo JGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAk dHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkdHJ1 ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAkZmFsc2UpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICR0cnVlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYueG9yKCksICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9hcml0aG1ldGljLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvZmxvYXRfYXJpdGht ZXRpYy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9hcml0aG1ldGljLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwzMTMgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhv cml6b250YWwgZmxvYXQgdmVjdG9yIGFyaXRobWV0aWMgcmVkdWN0aW9ucy4KKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9yZWR1Y3Rpb25fZmxvYXRfYXJpdGhtZXRpYyB7CistICAgIChbJGVsZW1fdHk6 aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewor LSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBIb3Jpem9udGFsIHN1bSBvZiB0 aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBU aGUgaW50cmluc2ljIHBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVt ZW50cy4KKy0gICAgICAgICAgICAvLy8gVGhhdCBpcywgZm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6 CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vID4gKCh4MCArIHgxKSArICh4MiAr IHgzKSkgKyAoKHg0ICsgeDUpICsgKHg2ICsgeDcpKQorLSAgICAgICAgICAgIC8vLworLSAgICAg ICAgICAgIC8vLyBJZiBvbmUgb2YgdGhlIHZlY3RvciBlbGVtZW50IGlzIGBOYU5gIHRoZSByZWR1 Y3Rpb24gcmV0dXJucworLSAgICAgICAgICAgIC8vLyBgTmFOYC4gVGhlIHJlc3VsdGluZyBgTmFO YCBpcyBub3QgcmVxdWlyZWQgdG8gYmUgZXF1YWwgdG8gYW55CistICAgICAgICAgICAgLy8vIG9m IHRoZSBgTmFOYHMgaW4gdGhlIHZlY3Rvci4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gc3VtKHNlbGYpIC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAg I1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYWRkX29y ZGVyZWQ7CistICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBzaW1kX3JlZHVjZV9hZGRfb3Jk ZXJlZChzZWxmLjAsIDAgYXMgJGVsZW1fdHkpIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCistICAgICAgICAgICAg ICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAor LSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4 ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgZm9y IGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB4ICs9IHNl bGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAvLy8gSG9yaXpvbnRhbCBwcm9kdWN0IG9mIHRoZSB2ZWN0b3IgZWxlbWVu dHMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSBpbnRyaW5zaWMgcGVy Zm9ybXMgYSB0cmVlLXJlZHVjdGlvbiBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAgICAgICAg ICAgIC8vLyBUaGF0IGlzLCBmb3IgYW4gOCBlbGVtZW50IHZlY3RvcjoKKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gPiAoKHgwICogeDEpICogKHgyICogeDMpKSAqICgoeDQgKiB4 NSkgKiAoeDYgKiB4NykpCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIG9u ZSBvZiB0aGUgdmVjdG9yIGVsZW1lbnQgaXMgYE5hTmAgdGhlIHJlZHVjdGlvbiByZXR1cm5zCist ICAgICAgICAgICAgLy8vIGBOYU5gLiBUaGUgcmVzdWx0aW5nIGBOYU5gIGlzIG5vdCByZXF1aXJl ZCB0byBiZSBlcXVhbCB0byBhbnkKKy0gICAgICAgICAgICAvLy8gb2YgdGhlIGBOYU5gcyBpbiB0 aGUgdmVjdG9yLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBw cm9kdWN0KHNlbGYpIC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRh cmdldF9hcmNoID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfbXVsX29yZGVyZWQ7CistICAg ICAgICAgICAgICAgICAgICB1bnNhZmUgeyBzaW1kX3JlZHVjZV9tdWxfb3JkZXJlZChzZWxmLjAs IDEgYXMgJGVsZW1fdHkpIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCistICAgICAgICAgICAgICAgIHsKKy0gICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAorLSAgICAgICAgICAg ICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL2lzc3Vlcy8xNQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRy YWN0KDApIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlk OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB4ICo9IHNlbGYuZXh0cmFjdChp KSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIGltcGwgY3JhdGU6Oml0ZXI6OlN1bSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBzdW08STogSXRlcmF0b3I8SXRlbSA9ICRpZD4+KGl0 ZXI6IEkpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDAu KSwgY3JhdGU6Om9wczo6QWRkOjphZGQpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQor LSAgICAgICAgaW1wbCBjcmF0ZTo6aXRlcjo6UHJvZHVjdCBmb3IgJGlkIHsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAk aWQ+PihpdGVyOiBJKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpz cGxhdCgxLiksIGNyYXRlOjpvcHM6Ok11bDo6bXVsKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIGltcGw8J2E+IGNyYXRlOjppdGVyOjpTdW08JidhICRpZD4gZm9yICRp ZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc3VtPEk6IEl0ZXJh dG9yPEl0ZW0gPSAmJ2EgJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAg aXRlci5mb2xkKCRpZDo6c3BsYXQoMC4pLCB8YSwgYnwgY3JhdGU6Om9wczo6QWRkOjphZGQoYSwg KmIpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8J2E+IGNy YXRlOjppdGVyOjpQcm9kdWN0PCYnYSAkaWQ+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9ICYnYSAkaWQ+ PihpdGVyOiBJKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxh dCgxLiksIHxhLCBifCBjcmF0ZTo6b3BzOjpNdWw6Om11bChhLCAqYikpCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0 X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIC8vIENv bXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgorLSAg ICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KKy0gICAgICAgICAgICAg ICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9uX2Zsb2F0X2FyaXRoPl0geworLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgZm4gYWx0ZXJuYXRp bmcoeDogdXNpemUpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2 ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpICUgeCA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJl cGxhY2UoaSwgMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgdgor LSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBzdW0oKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodi5zdW0oKSwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5zdW0oKSwgJGlkOjpsYW5lcygpIGFzICRlbGVt X3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKDIpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYuc3VtKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaWQ6Omxh bmVzKCkgLyAyICsgJGlkOjpsYW5lcygpKSBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHByb2R1Y3QoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5wcm9kdWN0KCksIDAgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVt X3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYucHJvZHVjdCgpLCAx IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9IG1hdGNoICRp ZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0ID0+IDE2LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAzMiA9PiA4LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxNiA9PiA0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfID0+IDIsCist ICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9IGFsdGVybmF0aW5nKGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYucHJvZHVjdCgpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoMl91c2l6ZS5wb3coKCRpZDo6bGFuZXMoKSAvIGYpIGFzIHUzMikK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzICRlbGVtX3R5KQorLSAgICAgICAgICAg ICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCist ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbYWxsb3codW5yZWFjaGFi bGVfY29kZSldCistICAgICAgICAgICAgICAgICAgICBmbiBzdW1fbmFuKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcu Y2dpP2lkPTM2NzMyCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy82CistICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuMCA9 IGNyYXRlOjokZWxlbV90eTo6TkFOOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MCA9 ICRpZDo6c3BsYXQoLTMuMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0g djAucmVwbGFjZShpLCBuMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRo ZSB2ZWN0b3IgY29udGFpbnMgYSBOYU4gdGhlIHJlc3VsdCBpcyBOYU46CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2LnN1bSgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5h biBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYuc3VtKCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuMCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYuc3VtKCkuaXNfbmFuKCkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdChuMCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0ISh2LnN1bSgpLmlzX25hbigpLCAiYWxsIG5hbnMgfCB7Oj99 Iiwgdik7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbYWxsb3codW5yZWFjaGFibGVfY29kZSld CistICAgICAgICAgICAgICAgICAgICBmbiBwcm9kdWN0X25hbigpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9p ZD0zNjczMgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNgorLSAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbjAgPSBjcmF0 ZTo6JGVsZW1fdHk6Ok5BTjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6 OnNwbGF0KC0zLjApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6 bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYwLnJl cGxhY2UoaSwgbjApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVj dG9yIGNvbnRhaW5zIGEgTmFOIHRoZSByZXN1bHQgaXMgTmFOOgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5w cm9kdWN0KCkuaXNfbmFuKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFu IGF0IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5wcm9kdWN0KCksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuMCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYucHJvZHVjdCgpLmlzX25hbigpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQobjApOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5wcm9kdWN0KCkuaXNfbmFuKCksICJhbGwg bmFucyB8IHs6P30iLCB2KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnVzZWQs IGRlYWRfY29kZSldCistICAgICAgICAgICAgICAgICAgICBmbiBzdW1fcm91bmRvZmYoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbgorLSAg ICAgICAgICAgICAgICAgICAgICAgIGZuIHRyZWVfcmVkdWNlX3N1bShhOiAmWyRlbGVtX3R5XSkg LT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmlz X2VtcHR5KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhLmxlbigpID09IDEg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVswXQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgaWYgYS5sZW4oKSA9PSAyIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFbMF0gKyBhWzFdCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlkID0gYS5s ZW4oKSAvIDI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgKGxlZnQsIHJp Z2h0KSA9IGEuc3BsaXRfYXQobWlkKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRyZWVfcmVkdWNlX3N1bShsZWZ0KSArIHRyZWVfcmVkdWNlX3N1bShyaWdodCkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHN0YXJ0ID0gY3JhdGU6OiRlbGVtX3R5OjpF UFNJTE9OOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgc2NhbGFyX3JlZHVjdGlv biA9IDAuIGFzICRlbGVtX3R5OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg diA9ICRpZDo6c3BsYXQoMC4gYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBjID0gaWYgaSAlIDIgPT0gMCB7IDFlMyB9IGVsc2UgeyAtMS4gfTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhcnQgKj0gOjpjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpQSSAq IGM7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcl9yZWR1Y3Rpb24gKz0gc3Rh cnQ7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgc3RhcnQp OworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgc2ltZF9yZWR1Y3Rpb24gPSB2LnN1bSgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYSA9IFswLiBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygpXTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB2LndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IGEpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB0cmVlX3JlZHVjdGlvbiA9IHRyZWVfcmVkdWNlX3N1bSgm YSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9sZXJhdGUgMSBVTFAgZGlmZmVy ZW5jZToKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkX2JpdHMgPSBzaW1kX3JlZHVj dGlvbi50b19iaXRzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyZWVfYml0cyA9 IHRyZWVfcmVkdWN0aW9uLnRvX2JpdHMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWRfYml0cyA+IHRyZWVfYml0 cyB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRfYml0cyAtIHRyZWVfYml0 cworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdHJlZV9iaXRzIC0gcmVkX2JpdHMKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSA8IDIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZWN0b3I6 IHs6P30gfCBzaW1kX3JlZHVjdGlvbjogezo/fSB8IFwKKy10cmVlX3JlZHVjdGlvbjoge30gfCBz Y2FsYXJfcmVkdWN0aW9uOiB7fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbWRfcmVkdWN0aW9uLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0cmVlX3JlZHVjdGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NhbGFyX3JlZHVjdGlvbgorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgICNbYWxsb3codW51c2VkLCBkZWFkX2NvZGUpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gcHJvZHVjdF9yb3VuZG9mZigpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB1c2UgOjpjb3JlOjpjb252ZXJ0OjpUcnlJbnRvOworLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24KKy0gICAgICAgICAgICAgICAgICAgICAg ICBmbiB0cmVlX3JlZHVjZV9wcm9kdWN0KGE6ICZbJGVsZW1fdHldKSAtPiAkZWxlbV90eSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEuaXNfZW1wdHkoKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGEubGVuKCkgPT0gMSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhWzBdCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSBpZiBhLmxlbigpID09IDIgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YVswXSAqIGFbMV0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaWQgPSBhLmxlbigpIC8gMjsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobGVmdCwgcmlnaHQpID0gYS5zcGxpdF9h dChtaWQpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWR1Y2VfcHJv ZHVjdChsZWZ0KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdHJlZV9y ZWR1Y2VfcHJvZHVjdChyaWdodCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHN0YXJ0ID0gY3JhdGU6OiRlbGVtX3R5OjpFUFNJTE9OOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgc2NhbGFyX3JlZHVjdGlvbiA9IDEuIGFzICRlbGVtX3R5OworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMC4gYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjID0gaWYgaSAlIDIgPT0gMCB7IDFl MyB9IGVsc2UgeyAtMS4gfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKj0g Ojpjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpQSSAqIGM7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxhcl9yZWR1Y3Rpb24gKj0gc3RhcnQ7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgc3RhcnQpOworLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZF9yZWR1Y3Rpb24gPSB2LnByb2R1 Y3QoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSBbMC4gYXMgJGVs ZW1fdHk7ICRpZDo6bGFuZXMoKV07CistICAgICAgICAgICAgICAgICAgICAgICAgdi53cml0ZV90 b19zbGljZV91bmFsaWduZWQoJm11dCBhKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg dHJlZV9yZWR1Y3Rpb24gPSB0cmVlX3JlZHVjZV9wcm9kdWN0KCZhKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBGSVhNRTogVG9vIGltcHJlY2lzZSwgZXZlbiBvbmx5IGZvciBwcm9k dWN0KGYzMng4KS4KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWd1cmUgb3V0IGhvdyB0 byBuYXJyb3cgdGhpcyBkb3duLgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1bHBfbGlt aXQgPSAkaWQ6OmxhbmVzKCkgLyAyOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWRf Yml0cyA9IHNpbWRfcmVkdWN0aW9uLnRvX2JpdHMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdHJlZV9iaXRzID0gdHJlZV9yZWR1Y3Rpb24udG9fYml0cygpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJl ZF9iaXRzID4gdHJlZV9iaXRzIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl ZF9iaXRzIC0gdHJlZV9iaXRzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlX2JpdHMgLSByZWRfYml0cwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDwgdWxwX2xpbWl0LnRyeV9pbnRvKCkudW53 cmFwKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZWN0b3I6IHs6P30gfCBzaW1k X3JlZHVjdGlvbjogezo/fSB8IFwKKy10cmVlX3JlZHVjdGlvbjoge30gfCBzY2FsYXJfcmVkdWN0 aW9uOiB7fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNpbWRfcmVkdWN0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0cmVlX3JlZHVjdGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFy X3JlZHVjdGlvbgorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9yZWR1Y3Rpb25zL2ludGVnZXJfYXJpdGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2ludGVnZXJfYXJpdGhtZXRpYy5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvcmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDE5MyArMCwwIEBACistLy8hIEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCBp bnRlZ2VyIHZlY3RvciBhcml0aG1ldGljIHJlZHVjdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGlt cGxfcmVkdWN0aW9uX2ludGVnZXJfYXJpdGhtZXRpYyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQKKy0gICAgIHwg JHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8g SG9yaXpvbnRhbCB3cmFwcGluZyBzdW0gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGludHJpbnNpYyBwZXJmb3JtcyBhIHRyZWUt cmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8vIFRoYXQg aXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyA+ICgoeDAgKyB4MSkgKyAoeDIgKyB4MykpICsgKCh4NCArIHg1KSArICh4NiArIHg3 KSkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYW4gb3BlcmF0aW9uIG92 ZXJmbG93cyBpdCByZXR1cm5zIHRoZSBtYXRoZW1hdGljYWwgcmVzdWx0CistICAgICAgICAgICAg Ly8vIG1vZHVsbyBgMl5uYCB3aGVyZSBgbmAgaXMgdGhlIG51bWJlciBvZiB0aW1lcyBpdCBvdmVy Zmxvd3MuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHdyYXBw aW5nX3N1bShzZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FkZF9vcmRlcmVkOworLSAg ICAgICAgICAgICAgICAgICAgbGV0IHY6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNl X2FkZF9vcmRlcmVkKHNlbGYuMCwgMCBhcyAkaWVsZW1fdHkpIH07CistICAgICAgICAgICAgICAg ICAgICB2IGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg I1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICB7CistICAg ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKKy0gICAgICAgICAg ICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRf c2ltZC9pc3N1ZXMvMTUKKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0 cmFjdCgwKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRp ZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgeCA9IHgud3JhcHBpbmdfYWRk KHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICB4CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistCistICAgICAgICAgICAgLy8vIEhvcml6b250YWwgd3JhcHBpbmcgcHJvZHVjdCBvZiB0aGUg dmVjdG9yIGVsZW1lbnRzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUg aW50cmluc2ljIHBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50 cy4KKy0gICAgICAgICAgICAvLy8gVGhhdCBpcywgZm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6Cist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vID4gKCh4MCAqIHgxKSAqICh4MiAqIHgz KSkgKiAoKHg0ICogeDUpICogKHg2ICogeDcpKQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBJZiBhbiBvcGVyYXRpb24gb3ZlcmZsb3dzIGl0IHJldHVybnMgdGhlIG1hdGhlbWF0 aWNhbCByZXN1bHQKKy0gICAgICAgICAgICAvLy8gbW9kdWxvIGAyXm5gIHdoZXJlIGBuYCBpcyB0 aGUgbnVtYmVyIG9mIHRpbWVzIGl0IG92ZXJmbG93cy4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBwdWIgZm4gd3JhcHBpbmdfcHJvZHVjdChzZWxmKSAtPiAkZWxlbV90eSB7 CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQor LSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06 OnNpbWRfcmVkdWNlX211bF9vcmRlcmVkOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHY6ICRp ZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX211bF9vcmRlcmVkKHNlbGYuMCwgMSBhcyAk aWVsZW1fdHkpIH07CistICAgICAgICAgICAgICAgICAgICB2IGFzICRlbGVtX3R5CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2 NCIpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog YnJva2VuIG9uIEFBcmNoNjQKKy0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKKy0gICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKKy0gICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgeCA9IHgud3JhcHBpbmdfbXVsKHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB4CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBp bXBsIGNyYXRlOjppdGVyOjpTdW0gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJKSAtPiAk aWQgeworLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgwKSwgY3JhdGU6Om9w czo6QWRkOjphZGQpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1w bCBjcmF0ZTo6aXRlcjo6UHJvZHVjdCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBmbiBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJ KSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgxKSwgY3Jh dGU6Om9wczo6TXVsOjptdWwpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAg ICAgaW1wbDwnYT4gY3JhdGU6Oml0ZXI6OlN1bTwmJ2EgJGlkPiBmb3IgJGlkIHsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzdW08STogSXRlcmF0b3I8SXRlbSA9ICYn YSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlk OjpzcGxhdCgwKSwgfGEsIGJ8IGNyYXRlOjpvcHM6OkFkZDo6YWRkKGEsICpiKSkKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsPCdhPiBjcmF0ZTo6aXRlcjo6UHJv ZHVjdDwmJ2EgJGlkPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlkPj4oaXRlcjogSSkgLT4g JGlkIHsKKy0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMSksIHxhLCBifCBj cmF0ZTo6b3BzOjpNdWw6Om11bChhLCAqYikpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVj dGlvbl9pbnRfYXJpdGg+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Cist CistICAgICAgICAgICAgICAgICAgICBmbiBhbHRlcm5hdGluZyh4OiB1c2l6ZSkgLT4gJGlkIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSB4ID09IDAgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAyIGFzICRlbGVtX3R5 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB2CistICAgICAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIHdyYXBwaW5nX3N1bSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRp ZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh2LndyYXBwaW5nX3N1bSgpLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2LndyYXBwaW5nX3N1bSgpLCAkaWQ6OmxhbmVzKCkgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gYWx0ZXJuYXRpbmco Mik7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2LndyYXBwaW5nX3N1bSgpLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCRpZDo6bGFuZXMoKSAvIDIgKyAkaWQ6OmxhbmVzKCkpIGFzICRlbGVtX3R5Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYud3JhcHBpbmdfc3VtKCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAyIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAg ICAgICBmbiB3cmFwcGluZ19zdW1fb3ZlcmZsb3coKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHN0YXJ0ID0gJGVsZW1fdHk6Om1heF92YWx1ZSgpCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0gKCRpZDo6bGFuZXMoKSBhcyAkZWxlbV90eSAvIDIpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdChzdGFydCBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZ3cmFwcGluZ19zdW0gPSB2LndyYXBwaW5nX3N1 bSgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgd3JhcHBpbmdfc3VtID0g c3RhcnQ7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIF8gaW4gMS4uJGlkOjpsYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBpbmdfc3VtID0gd3JhcHBpbmdf c3VtLndyYXBwaW5nX2FkZChzdGFydCk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEod3JhcHBpbmdfc3VtLCB2d3JhcHBpbmdf c3VtLCAidiA9IHs6P30iLCB2KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMy Iiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JhcHBpbmdf cHJvZHVjdCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQo MCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lndy YXBwaW5nX3Byb2R1Y3QoKSwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodi53cmFwcGluZ19wcm9kdWN0KCksIDEgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gbWF0Y2ggJGlkOjpsYW5lcygpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjQgPT4gMTYsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDMyID0+IDgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2ID0+IDQs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gPT4gMiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gYWx0ZXJuYXRpbmco Zik7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2LndyYXBwaW5nX3Byb2R1Y3QoKSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgyX3VzaXplLnBvdygoJGlkOjpsYW5lcygpIC8gZikgYXMgdTMyKQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzICRlbGVtX3R5KQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2LndyYXBwaW5nX3Byb2R1Y3QoKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDIgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIHdyYXBwaW5nX3Byb2R1Y3Rfb3ZlcmZsb3coKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHN0YXJ0ID0gJGVsZW1fdHk6Om1heF92YWx1ZSgpCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0gKCRpZDo6bGFuZXMoKSBhcyAkZWxlbV90eSAvIDIpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdChzdGFydCBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZtdWwgPSB2LndyYXBwaW5nX3Byb2R1Y3QoKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG11bCA9IHN0YXJ0OworLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBfIGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG11bCA9IG11bC53cmFwcGluZ19tdWwoc3RhcnQpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG11bCwgdm11bCwgInYgPSB7Oj99Iiwgdik7CistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rp b25zL21hc2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0 aW9ucy9tYXNrLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21hc2sucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDg5ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFs IG1hc2sgcmVkdWN0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9yZWR1Y3Rpb25fbWFzayB7 CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAk dGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBB cmUgYGFsbGAgdmVjdG9yIGxhbmVzIGB0cnVlYD8KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1 bnNhZmUgeyBjcmF0ZTo6Y29kZWdlbjo6cmVkdWN0aW9uczo6bWFzazo6QWxsOjphbGwoc2VsZikg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAvLy8gSXMgYGFueWAgdmVjdG9yIGxhbmUg YHRydWVgPworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBhbnko c2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IGNyYXRlOjpjb2RlZ2Vu OjpyZWR1Y3Rpb25zOjptYXNrOjpBbnk6OmFueShzZWxmKSB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIC8vLyBBcmUgYGFsbGAgdmVjdG9yIGxhbmVzIGBmYWxzZWA/CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIG5vbmUoc2VsZikgLT4gYm9vbCB7Cist ICAgICAgICAgICAgICAgICFzZWxmLmFueSgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVj dGlvbj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gYWxsKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKGEuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBhID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0ISghYS5hbGwoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjps YW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRp ZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEg PSAkaWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9 IGEucmVwbGFjZShpLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKCFhLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYSA9IGEucmVwbGFjZShpLCB0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoIWEuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBhbnkoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYS5hbnkoKSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKCFhLmFueSgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAk aWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4g MC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhID0gYS5yZXBsYWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoYS5hbnkoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKGEuYW55KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBub25l KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCh0cnVlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLm5vbmUoKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKGEubm9uZSgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y IGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhID0gYS5yZXBsYWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydCEoIWEubm9uZSgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCB0cnVlKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEoIWEubm9uZSgpKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL3JlZHVjdGlvbnMvbWluX21heC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWlu X21heC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzYwICswLDAgQEAKKy0vLyEgSW1wbGVtZW50 cyBwb3J0YWJsZSBob3Jpem9udGFsIHZlY3RvciBtaW4vbWF4IHJlZHVjdGlvbnMuCistCistbWFj cm9fcnVsZXMhIGltcGxfcmVkdWN0aW9uX21pbl9tYXggeworLSAgICAoWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50CistICAgICB8ICRpZWxlbV90eTppZGVudCB8 ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8v IExhcmdlc3QgdmVjdG9yIGVsZW1lbnQgdmFsdWUuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGZuIG1heF9lbGVtZW50KHNlbGYpIC0+ICRlbGVtX3R5IHsKKy0gICAg ICAgICAgICAgICAgI1tjZmcobm90KGFueSgKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9h cmNoID0gImFhcmNoNjQiLAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJt IiwKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIsCistICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAorLSAgICAgICAgICAgICAg ICApKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfbWF4OworLSAgICAgICAgICAgICAgICAgICAgbGV0IHY6ICRp ZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX21heChzZWxmLjApIH07CistICAgICAgICAg ICAgICAgICAgICB2IGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgI1tjZmcoYW55KAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIsCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAorLSAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0IiwKKy0gICAgICAgICAgICAg ICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCistICAgICAgICAgICAgICAgICkpXQorLSAg ICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9u IEFBcmNoNjQKKy0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKKy0gICAgICAgICAgICAgICAgICAg IC8vIEZJWE1FOiBicm9rZW4gb24gV0FTTTMyCistICAgICAgICAgICAgICAgICAgICAvLyBodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzkxCist ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCk7CistICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIHggPSB4Lm1heChzZWxmLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBTbWFsbGVzdCB2ZWN0b3IgZWxlbWVudCB2YWx1 ZS4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbWluX2VsZW1l bnQoc2VsZikgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAjW2NmZyhub3QoYW55KAor LSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsCistICAgICAgICAg ICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAorLSAgICAgICAgICAgICAgICAgICAgYWxs KHRhcmdldF9hcmNoID0gIng4NiIsIG5vdCh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIikpLAorLSAg ICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0IiwKKy0gICAgICAgICAg ICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCistICAgICAgICAgICAgICAgICksKSld CistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2 bTo6c2ltZF9yZWR1Y2VfbWluOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHY6ICRpZWxlbV90 eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX21pbihzZWxmLjApIH07CistICAgICAgICAgICAgICAg ICAgICB2IGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg I1tjZmcoYW55KAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIs CistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAorLSAgICAgICAgICAg ICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gIng4NiIsIG5vdCh0YXJnZXRfZmVhdHVyZSA9ICJz c2UyIikpLAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0IiwK Ky0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCistICAgICAgICAg ICAgICAgICkpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogYnJva2VuIG9uIEFBcmNoNjQKKy0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKKy0gICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gaTU4Ni11bmtub3duLWxpbnV4LWdu dQorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yMgorLSAgICAgICAgICAgICAgICAgICAgLy8gRklY TUU6IGJyb2tlbiBvbiBXQVNNMzIKKy0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvOTEKKy0gICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKTsKKy0gICAgICAgICAgICAg ICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgeCA9IHgubWluKHNlbGYuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICB4CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lmISB7JHRlc3RfdHQ6CistICAgICAgICBwYXN0 ZTo6aXRlbSEgeworLSAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3Rz IHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgorLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojpm bG9hdF9jbXApXQorLSAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbl9taW5fbWF4 Pl0geworLSAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAg ICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistICAgICAgICAgICAgICAgIHB1YiBmbiBtYXhfZWxlbWVudCgpIHsKKy0gICAgICAgICAg ICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAwIGFzICRlbGVtX3R5KTsKKy0g ICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDEsIDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAxIGFzICRlbGVtX3R5 KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIGxldCB2ID0g di5yZXBsYWNlKDAsIDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh2Lm1heF9lbGVtZW50KCksIDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgIHB1YiBmbiBtaW5f ZWxlbWVudCgpIHsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgwIGFz ICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVu dCgpLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMo KSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDEsIDEg YXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5f ZWxlbWVudCgpLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsIDIgYXMgJGVsZW1fdHkpOworLSAg ICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIDEgYXMgJGVsZW1fdHkpOworLSAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMSwgMSBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCks IDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K Ky0KKy1tYWNyb19ydWxlcyEgdGVzdF9yZWR1Y3Rpb25fZmxvYXRfbWluX21heCB7CistICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0 dCkgPT4geworLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIC8vIENvbXBhcmlzb25z IHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgorLSAgICAgICAgICAg ICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KKy0gICAgICAgICAgICAgICAgcHViIG1v ZCBbPCRpZCBfcmVkdWN0aW9uX21pbl9tYXhfbmFuPl0geworLSAgICAgICAgICAgICAgICAgICAg dXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAg ICAgICAgICAgICBmbiBtaW5fZWxlbWVudF90ZXN0KCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBuID0gY3JhdGU6OiRlbGVtX3R5OjpOQU47CistCistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShuLm1pbigtMy4pLCAtMy4pOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoKC0zLiBhcyAkZWxlbV90eSkubWluKG4pLCAtMy4pOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2MCA9ICRpZDo6c3BsYXQoLTMuKTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3dpdGhfYnJva2VuX2xhc3RfbGFuZV9uYW4gPSAh Y2ZnIShhbnkoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFy bSIsIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhbGwodGFyZ2V0X2FyY2ggPSAieDg2IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5vdCh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIikKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93 ZXJwYzY0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGUgdmVjdG9yIGlzIGluaXRpYWxpemVkIHRvIGAtMy5gczogWy0zLCAtMywg LTMsIC0zXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHJlcGxhY2UgdGhlIGktdGgg ZWxlbWVudCBvZiB0aGUgdmVjdG9yIHdpdGgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gYE5hTmA6IFstMywgLTMsIC0zLCBOYU5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgdiA9IHYwLnJlcGxhY2UoaSwgbik7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIElmIHRoZSBOYU4gaXMgaW4gdGhlIGxhc3QgcGxhY2UsIHRoZSBMTFZNCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIG1ldGhv ZHMgaXMgYnJva2VuIG9uIHNvbWUKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGFy Z2V0czoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAkaWQ6OmxhbmVzKCkg LSAxICYmCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfd2l0aF9icm9r ZW5fbGFzdF9sYW5lX25hbiB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJbQV06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5fZWxlbWVu dCgpLCB2KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJl cGxhY2UgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgdmVjdG9yCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0aCBgTmFOYHMsIHRoZSBy ZXN1bHQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIHN0aWxsIGFsd2F5 cyBgLTMuYCB1bmxlc3MgYWxsIGVsZW1lbnRzIG9mCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyB0aGUgdmVjdG9yIGFyZSBgTmFOYHM6CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGogPT0gaS0xIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0JdOiBuYW4gYXQge30gPT4ge30gfCB7 Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYu bWluX2VsZW1lbnQoKSwgdik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJbQl06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5fZWxlbWVudCgpLCB2 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBXZSBhcmUgZG9uZSBoZXJlLCBzaW5jZSB3ZSB3ZXJlIGluIHRoZSBsYXN0CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsYW5lIHdoaWNoIGlzIHRoZSBsYXN0IGl0ZXJh dGlvbiBvZiB0aGUgbG9vcC4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gV2UgYXJlIG5vdCBpbiB0aGUgbGFzdCBsYW5lLCBhbmQgdGhlcmUgaXMgb25s eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmUgYE5hTmAgaW4gdGhlIHZlY3Rv ci4KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3RvciBoYXMg b25lIGxhbmUsIHRoZSByZXN1bHQgaXMgYE5hTmA6CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICRpZDo6bGFuZXMoKSA9PSAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEodi5taW5fZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiW0NdOiBhbGwgbmFucyB8IHY9ezo/fSB8IG1pbj17fSB8 IFwKKy1pc19uYW46IHt9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiwgdi5taW5fZWxlbWVudCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmQg d2UgYXJlIGRvbmUsIHNpbmNlIHRoZSB2ZWN0b3Igb25seSBoYXMKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIG9uZSBsYW5lIGFueXdheXMuCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdmVjdG9yIGhhcyBtb3JlIHRoYW4g b25lIGxhbmUsIHNpbmNlIHRoZXJlIGlzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IG9ubHkgb25lIGBOYU5gIGluIHRoZSB2ZWN0b3IsIHRoZSByZXN1bHQgaXMKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gYWx3YXlzIGAtM2AuCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIltEXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5fZWxlbWVudCgp LCB2KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVwbGFjZSBh bGwgdGhlIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gdXAtdG8gdGhlIGBpLXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0IGlzCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIGFsd2F5cyBgLTMuYCB1bmxlc3Mg YWxsIGVsZW1lbnRzIG9mIHRoZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0 b3IgYXJlIGBOYU5gczoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4u aSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4p OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAkaWQ6OmxhbmVz KCkgLSAxICYmIGogPT0gaSAtIDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIEFsbCBlbGVtZW50cyBvZiB0aGUgdmVjdG9yIGFyZSBgTmFOYHMsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmVmb3JlIHRoZSByZXN1bHQgaXMgTmFO IGFzIHdlbGwuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGUgI2xhbmVzIG9mIHRo ZSB2ZWN0b3IgaXMgPiAxLCBzbworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vICJpIC0gMSIgZG9lcyBub3Qgb3ZlcmZsb3cuCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0VdOiBhbGwgbmFucyB8IHY9ezo/ fSB8IG1pbj17fSB8IFwKKy1pc19uYW46IHt9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYsIHYubWluX2VsZW1lbnQoKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBub24tYE5hTmAgZWxlbWVudHMgaW4g dGhlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVjdG9yLCB0aGVy ZWZvcmUgdGhlIHJlc3VsdCBpcyBgLTMuYDoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgLTMuLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltGXTogbmFuIGF0IHt9ID0+IHt9IHwg ezo/fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp LCB2Lm1pbl9lbGVtZW50KCksIHYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3IgY29udGFp bnMgYWxsIE5hTnMgdGhlIHJlc3VsdCBpcyBOYU46CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0ISgkaWQ6OnNwbGF0KG4pLm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYWxsIG5hbnMgfCB2PXs6P30gfCBtaW49e30gfCBpc19u YW46IHt9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQobiks ICRpZDo6c3BsYXQobikubWluX2VsZW1lbnQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRpZDo6c3BsYXQobikubWluX2VsZW1lbnQoKS5pc19uYW4oKSk7CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIGZuIG1heF9lbGVtZW50X3Rlc3QoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG4gPSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG4ubWF4KC0zLiksIC0zLik7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISgoLTMuIGFzICRlbGVtX3R5KS5tYXgobiksIC0zLik7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYwID0gJGlkOjpzcGxhdCgtMy4pOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfd2l0aF9icm9rZW5fbGFzdF9sYW5lX25hbiA9ICFj ZmchKGFueSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJt IiwgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIsIHRhcmdldF9hcmNoID0gIndhc20zMiIsCistICAg ICAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g VGhlIHZlY3RvciBpcyBpbml0aWFsaXplZCB0byBgLTMuYHM6IFstMywgLTMsIC0zLCAtM10KKy0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByZXBsYWNlIHRoZSBpLXRoIGVsZW1lbnQgb2Yg dGhlIHZlY3RvciB3aXRoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBOYU5gOiBb LTMsIC0zLCAtMywgTmFOXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYg PSB2MC5yZXBsYWNlKGksIG4pOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJ ZiB0aGUgTmFOIGlzIGluIHRoZSBsYXN0IHBsYWNlLCB0aGUgTExWTQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBtZXRob2RzIGlzIGJyb2tl biBvbiBzb21lCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRhcmdldHM6CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gJGlkOjpsYW5lcygpIC0gMSAmJgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF93aXRoX2Jyb2tlbl9sYXN0X2xhbmVf bmFuIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhf ZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJbQV06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpLCB2Lm1heF9lbGVtZW50KCksIHYpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVwbGFjZSBhbGwgdGhlIGVsZW1lbnRzIGlu IHRoZSB2ZWN0b3IKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwLXRvIHRo ZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5gcywgdGhlIHJlc3VsdAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gaXMgc3RpbGwgYWx3YXlzIGAtMy5gIHVubGVzcyBhbGwgZWxlbWVu dHMgb2YKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSB2ZWN0b3IgYXJl IGBOYU5gczoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uoaiwg bik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaiA9PSBpLTEgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWluX2Vs ZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIltCXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIC0zLiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQl06IG5hbiBhdCB7fSA9 PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaSwgdi5tYXhfZWxlbWVudCgpLCB2KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgZG9uZSBoZXJlLCBzaW5jZSB3ZSB3 ZXJlIGluIHRoZSBsYXN0CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsYW5l IHdoaWNoIGlzIHRoZSBsYXN0IGl0ZXJhdGlvbiBvZiB0aGUgbG9vcC4KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIG5vdCBpbiB0aGUgbGFz dCBsYW5lLCBhbmQgdGhlcmUgaXMgb25seQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBvbmUgYE5hTmAgaW4gdGhlIHZlY3Rvci4KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gSWYgdGhlIHZlY3RvciBoYXMgb25lIGxhbmUsIHRoZSByZXN1bHQgaXMgYE5hTmA6Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA9PSAxIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5tYXhfZWxlbWVudCgpLmlzX25h bigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0NdOiBhbGwg bmFucyB8IHY9ezo/fSB8IG1pbj17fSB8IFwKKy1pc19uYW46IHt9IiwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwgdi5tYXhfZWxlbWVudCgpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Lm1heF9lbGVtZW50KCkuaXNfbmFuKCkp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5kIHdlIGFyZSBkb25l LCBzaW5jZSB0aGUgdmVjdG9yIG9ubHkgaGFzCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBvbmUgbGFuZSBhbnl3YXlzLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gVGhlIHZlY3RvciBoYXMgbW9yZSB0aGFuIG9uZSBsYW5lLCBz aW5jZSB0aGVyZSBpcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IG9uZSBg TmFOYCBpbiB0aGUgdmVjdG9yLCB0aGUgcmVzdWx0IGlzCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGFsd2F5cyBgLTNgLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJbRF06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQoKSwgdik7CistCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlcGxhY2UgYWxsIHRoZSBlbGVt ZW50cyBpbiB0aGUgdmVjdG9yCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwLXRv IHRoZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5gcywgdGhlIHJlc3VsdCBpcworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNzIGFsbCBlbGVtZW50 cyBvZiB0aGUKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVjdG9yIGFyZSBgTmFO YHM6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuKTsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gJGlkOjpsYW5lcygpIC0gMSAmJiBq ID09IGkgLSAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbGwg ZWxlbWVudHMgb2YgdGhlIHZlY3RvciBhcmUgYE5hTmBzLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHRoZXJlZm9yZSB0aGUgcmVzdWx0IGlzIE5hTiBhcyB3ZWxsLgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogdGhlICNsYW5lcyBvZiB0aGUgdmVjdG9yIGlz ID4gMSwgc28KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAiaSAtIDEi IGRvZXMgbm90IG92ZXJmbG93LgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEodi5tYXhfZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIltFXTogYWxsIG5hbnMgfCB2PXs6P30gfCBtYXg9e30g fCBcCistaXNfbmFuOiB7fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2LCB2Lm1heF9lbGVtZW50KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2Lm1heF9lbGVtZW50KCkuaXNfbmFuKCkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBUaGVyZSBhcmUgbm9uLWBOYU5gIGVsZW1lbnRzIGluIHRoZQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvciwgdGhlcmVmb3JlIHRoZSBy ZXN1bHQgaXMgYC0zLmA6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJbRl06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5tYXhfZWxl bWVudCgpLCB2KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGNvbnRhaW5zIGFsbCBOYU5z IHRoZSByZXN1bHQgaXMgTmFOOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoJGlk OjpzcGxhdChuKS5tYXhfZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImFsbCBuYW5zIHwgdj17Oj99IHwgbWF4PXt9IHwgaXNfbmFuOiB7fSIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KG4pLCAkaWQ6OnNwbGF0 KG4pLm1heF9lbGVtZW50KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6 OnNwbGF0KG4pLm1heF9lbGVtZW50KCkuaXNfbmFuKCkpOworLSAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv c2VsZWN0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NlbGVjdC5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvc2VsZWN0LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3MyArMCwwIEBA CistLy8hIEltcGxlbWVudHMgbWFzaydzIGBzZWxlY3RgLgorLQorLS8vLyBJbXBsZW1lbnRzIG1h c2sgc2VsZWN0IG1ldGhvZAorLW1hY3JvX3J1bGVzISBpbXBsX3NlbGVjdCB7CistICAgIChbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBTZWxlY3RzIGVsZW1l bnRzIG9mIGBhYCBhbmQgYGJgIHVzaW5nIG1hc2suCistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vIFRoZSBsYW5lcyBvZiB0aGUgcmVzdWx0IGZvciB3aGljaCB0aGUgbWFzayBpcyBg dHJ1ZWAgY29udGFpbgorLSAgICAgICAgICAgIC8vLyB0aGUgdmFsdWVzIG9mIGBhYC4gVGhlIHJl bWFpbmluZyBsYW5lcyBjb250YWluIHRoZSB2YWx1ZXMgb2YKKy0gICAgICAgICAgICAvLy8gYGJg LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBzZWxlY3Q8VD4o c2VsZiwgYTogU2ltZDxUPiwgYjogU2ltZDxUPikgLT4gU2ltZDxUPgorLSAgICAgICAgICAgIHdo ZXJlCistICAgICAgICAgICAgICAgIFQ6IHNlYWxlZDo6U2ltZEFycmF5PE5UID0gPFskZWxlbV90 eTsgJGVsZW1fY291bnRdIGFzIHNlYWxlZDo6U2ltZEFycmF5Pjo6TlQ+LAorLSAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3NlbGVjdDsKKy0gICAg ICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX3NlbGVjdChzZWxmLjAsIGEuMCwgYi4wKSB9 KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3Rfc2VsZWN0IShi b29sLCAkaWQsICRpZCwgKGZhbHNlLCB0cnVlKSB8ICR0ZXN0X3R0KTsKKy0gICAgfTsKKy19Cist CistbWFjcm9fcnVsZXMhIHRlc3Rfc2VsZWN0IHsKKy0gICAgKAorLSAgICAgICAgJGVsZW1fdHk6 aWRlbnQsCistICAgICAgICAkbWFza190eTppZGVudCwKKy0gICAgICAgICR2ZWNfdHk6aWRlbnQs KCRzbWFsbDpleHByLCAkbGFyZ2U6ZXhwcikgfAorLSAgICAgICAgJHRlc3RfdHQ6dHQKKy0gICAg KSA9PiB7CistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCR2ZWNf dHkgX3NlbGVjdD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBzZWxlY3QoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG8gPSAkc21hbGwgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHQgPSAkbGFyZ2UgYXMgJGVsZW1fdHk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGEgPSAkdmVjX3R5OjpzcGxhdChvKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgYiA9ICR2ZWNfdHk6OnNwbGF0KHQpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtID0gYS5sdChiKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0u c2VsZWN0KGEsIGIpLCBhKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IGIu bHQoYSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLnNlbGVjdChiLCBh KSwgYSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBjID0gYTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGQgPSBiOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgbV9lID0gJG1hc2tfdHk6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kdmVjX3R5OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgY190bXAgPSBjLmV4dHJhY3QoaSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjID0gYy5yZXBsYWNlKGksIGQuZXh0cmFjdChpKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkID0gZC5yZXBsYWNlKGksIGNfdG1wKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1fZSA9IG1fZS5yZXBsYWNlKGksIHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtID0gYy5sdChkKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG1fZSwgbSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLnNlbGVj dChjLCBkKSwgYSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZm bGUucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE4NCArMCwwIEBACistLy8hIEltcGxlbWVudHMg cG9ydGFibGUgdmVjdG9yIHNodWZmbGVzIHdpdGggaW1tZWRpYXRlIGluZGljZXMuCistCistLy8g RklYTUU6IGNvbXByZWhlbnNpdmUgdGVzdHMKKy0vLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzIwCistCistLy8vIFNodWZmbGVzIHZlY3Rv ciBlbGVtZW50cy4KKy0vLy8KKy0vLy8gVGhpcyBtYWNybyByZXR1cm5zIGEgbmV3IHZlY3RvciB0 aGF0IGNvbnRhaW5zIGEgc2h1ZmZsZSBvZiB0aGUgZWxlbWVudHMgaW4KKy0vLy8gb25lIChgc2h1 ZmZsZSEodmVjLCBbaW5kaWNlcy4uLl0pYCkgb3IgdHdvIChgc2h1ZmZsZSEodmVjMCwgdmVjMSwK Ky0vLy8gW2luZGljZXMuLi5dKWApIGlucHV0IHZlY3RvcnMuCistLy8vCistLy8vIFRoZSB0eXBl IG9mIGB2ZWMwYCBhbmQgYHZlYzFgIG11c3QgYmUgZXF1YWwsIGFuZCB0aGUgZWxlbWVudCB0eXBl IG9mIHRoZQorLS8vLyByZXN1bHRpbmcgdmVjdG9yIGlzIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhl IGlucHV0IHZlY3Rvci4KKy0vLy8KKy0vLy8gVGhlIG51bWJlciBvZiBgaW5kaWNlc2AgbXVzdCBi ZSBhIHBvd2VyLW9mLXR3byBpbiByYW5nZSBgWzAsIDY0KWAsIHNpbmNlCistLy8vIGN1cnJlbnRs eSwgdGhlIGxhcmdlc3QgdmVjdG9yIHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeSBoYXMgNjQgbGFu ZXMuIFRoZQorLS8vLyBsZW5ndGggb2YgdGhlIHJlc3VsdGluZyB2ZWN0b3IgZXF1YWxzIHRoZSBu dW1iZXIgb2YgaW5kaWNlcyBwcm92aWRlZC4KKy0vLy8KKy0vLy8gVGhlIGluZGljZXMgbXVzdCBi ZSBpbiByYW5nZSBgWzAsIE0gKiBOKWAgd2hlcmUgYE1gIGlzIHRoZSBudW1iZXIgb2YgaW5wdXQK Ky0vLy8gdmVjdG9ycyAoYDFgIG9yIGAyYCkgYW5kIGBOYCBpcyB0aGUgbnVtYmVyIG9mIGxhbmVz IG9mIHRoZSBpbnB1dCB2ZWN0b3JzLgorLS8vLyBUaGUgaW5kaWNlcyBgaWAgaW4gcmFuZ2UgYFsw LCBOKWAgcmVmZXIgdG8gdGhlIGBpYC10aCBlbGVtZW50IG9mIGB2ZWMwYCwKKy0vLy8gd2hpbGUg dGhlIGluZGljZXMgaW4gcmFuZ2UgYFtOLCAyKk4pYCByZWZlciB0byB0aGUgYGkgLSBOYC10aCBl bGVtZW50IG9mCistLy8vIGB2ZWMxYC4KKy0vLy8KKy0vLy8gIyBFeGFtcGxlcworLS8vLworLS8v LyBTaHVmZmxpbmcgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnM6CistLy8vCistLy8vIGBgYAorLS8v LyAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKKy0vLy8gIyBmbiBtYWluKCkgeworLS8vLyAvLyBTaHVm ZmxlIGFsbG93cyByZW9yZGVyaW5nIHRoZSBlbGVtZW50czoKKy0vLy8gbGV0IHggPSBpMzJ4NDo6 bmV3KDEsIDIsIDMsIDQpOworLS8vLyBsZXQgeSA9IGkzMng0OjpuZXcoNSwgNiwgNywgOCk7Cist Ly8vIGxldCByID0gc2h1ZmZsZSEoeCwgeSwgWzQsIDAsIDUsIDFdKTsKKy0vLy8gYXNzZXJ0X2Vx IShyLCBpMzJ4NDo6bmV3KDUsIDEsIDYsIDIpKTsKKy0vLy8KKy0vLy8gLy8gVGhlIHJlc3VsdGlu ZyB2ZWN0b3IgY2FuIGFscyBiZSBzbWFsbGVyIHRoYW4gdGhlIGlucHV0OgorLS8vLyBsZXQgciA9 IHNodWZmbGUhKHgsIHksIFsxLCA2XSk7CistLy8vIGFzc2VydF9lcSEociwgaTMyeDI6Om5ldygy LCA3KSk7CistLy8vCistLy8vIC8vIE9yIGxhcmdlcjoKKy0vLy8gbGV0IHIgPSBzaHVmZmxlISh4 LCB5LCBbMSwgMywgNCwgMiwgMSwgNywgMiwgMl0pOworLS8vLyBhc3NlcnRfZXEhKHIsIGkzMng4 OjpuZXcoMiwgNCwgNSwgMywgMiwgOCwgMywgMykpOworLS8vLyAvLyBBdCBtb3N0IDIgKiB0aGUg bnVtYmVyIG9mIGxhbmVzIGluIHRoZSBpbnB1dCB2ZWN0b3IuCistLy8vICMgfQorLS8vLyBgYGAK Ky0vLy8KKy0vLy8gU2h1ZmZsaW5nIGVsZW1lbnRzIG9mIG9uZSB2ZWN0b3I6CistLy8vCistLy8v IGBgYAorLS8vLyAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKKy0vLy8gIyBmbiBtYWluKCkgeworLS8v LyAvLyBTaHVmZmxlIGFsbG93cyByZW9yZGVyaW5nIHRoZSBlbGVtZW50cyBvZiBhIHZlY3RvcjoK Ky0vLy8gbGV0IHggPSBpMzJ4NDo6bmV3KDEsIDIsIDMsIDQpOworLS8vLyBsZXQgciA9IHNodWZm bGUhKHgsIFsyLCAxLCAzLCAwXSk7CistLy8vIGFzc2VydF9lcSEociwgaTMyeDQ6Om5ldygzLCAy LCA0LCAxKSk7CistLy8vCistLy8vIC8vIFRoZSByZXN1bHRpbmcgdmVjdG9yIGNhbiBiZSBzbWFs bGVyIHRoYW4gdGhlIGlucHV0OgorLS8vLyBsZXQgciA9IHNodWZmbGUhKHgsIFsxLCAzXSk7Cist Ly8vIGFzc2VydF9lcSEociwgaTMyeDI6Om5ldygyLCA0KSk7CistLy8vCistLy8vIC8vIEVxdWFs OgorLS8vLyBsZXQgciA9IHNodWZmbGUhKHgsIFsxLCAzLCAyLCAwXSk7CistLy8vIGFzc2VydF9l cSEociwgaTMyeDQ6Om5ldygyLCA0LCAzLCAxKSk7CistLy8vCistLy8vIC8vIE9yIGxhcmdlcjoK Ky0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCBbMSwgMywgMiwgMiwgMSwgMywgMiwgMl0pOworLS8v LyBhc3NlcnRfZXEhKHIsIGkzMng4OjpuZXcoMiwgNCwgMywgMywgMiwgNCwgMywgMykpOworLS8v LyAvLyBBdCBtb3N0IDIgKiB0aGUgbnVtYmVyIG9mIGxhbmVzIGluIHRoZSBpbnB1dCB2ZWN0b3Iu CistLy8vICMgfQorLS8vLyBgYGAKKy0jW21hY3JvX2V4cG9ydF0KKy1tYWNyb19ydWxlcyEgc2h1 ZmZsZSB7CistICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLCBbJGwwOmV4cHIsICRsMTpleHBy XSkgPT4ge3sKKy0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCistICAgICAgICB1bnNh ZmUgeworLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3Iy Ojo8e1skbDAsICRsMV19LCBfLCBfPigKKy0gICAgICAgICAgICAgICAgJHZlYzAuMCwKKy0gICAg ICAgICAgICAgICAgJHZlYzEuMCwKKy0gICAgICAgICAgICApKQorLSAgICAgICAgfQorLSAgICB9 fTsKKy0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsIFskbDA6ZXhwciwgJGwxOmV4cHIsICRs MjpleHByLCAkbDM6ZXhwcl0pID0+IHt7CistICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUp XQorLSAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpf X3NodWZmbGVfdmVjdG9yNDo6PHtbJGwwLCAkbDEsICRsMiwgJGwzXX0sIF8sIF8+KAorLSAgICAg ICAgICAgICAgICAkdmVjMC4wLAorLSAgICAgICAgICAgICAgICAkdmVjMS4wLAorLSAgICAgICAg ICAgICkpCistICAgICAgICB9CistICAgIH19OworLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhw ciwKKy0gICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwKKy0gICAg ICAkbDQ6ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAkbDc6ZXhwcl0pID0+IHt7CistICAgICAg ICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQorLSAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAg ICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yODo6PHtbJGwwLCAkbDEsICRs MiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDddfSwgXywgXz4oCistICAgICAgICAgICAgICAgICR2 ZWMwLjAsCistICAgICAgICAgICAgICAgICR2ZWMxLjAsCistICAgICAgICAgICAgKSkKKy0gICAg ICAgIH0KKy0gICAgfX07CistICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLAorLSAgICAgWyRs MDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHByLAorLSAgICAgICRsNDpleHByLCAk bDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHByLAorLSAgICAgICRsODpleHByLCAkbDk6ZXhwciwg JGwxMDpleHByLCAkbDExOmV4cHIsCistICAgICAgJGwxMjpleHByLCAkbDEzOmV4cHIsICRsMTQ6 ZXhwciwgJGwxNTpleHByXSkgPT4ge3sKKy0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSld CistICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9f c2h1ZmZsZV92ZWN0b3IxNjo6PHsKKy0gICAgICAgICAgICAgICAgWworLSAgICAgICAgICAgICAg ICAgICAgJGwwLCAkbDEsICRsMiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDcsICRsOCwgJGw5LCAk bDEwLAorLSAgICAgICAgICAgICAgICAgICAgJGwxMSwgJGwxMiwgJGwxMywgJGwxNCwgJGwxNSwK Ky0gICAgICAgICAgICAgICAgXQorLSAgICAgICAgICAgIH0sIF8sIF8+KAorLSAgICAgICAgICAg ICAgICAkdmVjMC4wLAorLSAgICAgICAgICAgICAgICAkdmVjMS4wLAorLSAgICAgICAgICAgICkp CistICAgICAgICB9CistICAgIH19OworLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwKKy0g ICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwKKy0gICAgICAkbDQ6 ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAkbDc6ZXhwciwKKy0gICAgICAkbDg6ZXhwciwgJGw5 OmV4cHIsICRsMTA6ZXhwciwgJGwxMTpleHByLAorLSAgICAgICRsMTI6ZXhwciwgJGwxMzpleHBy LCAkbDE0OmV4cHIsICRsMTU6ZXhwciwKKy0gICAgICAkbDE2OmV4cHIsICRsMTc6ZXhwciwgJGwx ODpleHByLCAkbDE5OmV4cHIsCistICAgICAgJGwyMDpleHByLCAkbDIxOmV4cHIsICRsMjI6ZXhw ciwgJGwyMzpleHByLAorLSAgICAgICRsMjQ6ZXhwciwgJGwyNTpleHByLCAkbDI2OmV4cHIsICRs Mjc6ZXhwciwKKy0gICAgICAkbDI4OmV4cHIsICRsMjk6ZXhwciwgJGwzMDpleHByLCAkbDMxOmV4 cHJdKSA9PiB7eworLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KKy0gICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3Rv cjMyOjo8eworLSAgICAgICAgICAgICAgICBbCistICAgICAgICAgICAgICAgICAgICAkbDAsICRs MSwgJGwyLCAkbDMsICRsNCwgJGw1LCAkbDYsICRsNywgJGw4LCAkbDksICRsMTAsCistICAgICAg ICAgICAgICAgICAgICAkbDExLCAkbDEyLCAkbDEzLCAkbDE0LCAkbDE1LCAkbDE2LCAkbDE3LCAk bDE4LCAkbDE5LAorLSAgICAgICAgICAgICAgICAgICAgJGwyMCwgJGwyMSwgJGwyMiwgJGwyMywg JGwyNCwgJGwyNSwgJGwyNiwgJGwyNywgJGwyOCwKKy0gICAgICAgICAgICAgICAgICAgICRsMjks ICRsMzAsICRsMzEsCistICAgICAgICAgICAgICAgIF0KKy0gICAgICAgICAgICB9LCBfLCBfPigK Ky0gICAgICAgICAgICAgICAgJHZlYzAuMCwKKy0gICAgICAgICAgICAgICAgJHZlYzEuMCwKKy0g ICAgICAgICAgICApKQorLSAgICAgICAgfQorLSAgICB9fTsKKy0gICAgKCR2ZWMwOmV4cHIsICR2 ZWMxOmV4cHIsCistICAgICBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHIs CistICAgICAgJGw0OmV4cHIsICRsNTpleHByLCAkbDY6ZXhwciwgJGw3OmV4cHIsCistICAgICAg JGw4OmV4cHIsICRsOTpleHByLCAkbDEwOmV4cHIsICRsMTE6ZXhwciwKKy0gICAgICAkbDEyOmV4 cHIsICRsMTM6ZXhwciwgJGwxNDpleHByLCAkbDE1OmV4cHIsCistICAgICAgJGwxNjpleHByLCAk bDE3OmV4cHIsICRsMTg6ZXhwciwgJGwxOTpleHByLAorLSAgICAgICRsMjA6ZXhwciwgJGwyMTpl eHByLCAkbDIyOmV4cHIsICRsMjM6ZXhwciwKKy0gICAgICAkbDI0OmV4cHIsICRsMjU6ZXhwciwg JGwyNjpleHByLCAkbDI3OmV4cHIsCistICAgICAgJGwyODpleHByLCAkbDI5OmV4cHIsICRsMzA6 ZXhwciwgJGwzMTpleHByLAorLSAgICAgICRsMzI6ZXhwciwgJGwzMzpleHByLCAkbDM0OmV4cHIs ICRsMzU6ZXhwciwKKy0gICAgICAkbDM2OmV4cHIsICRsMzc6ZXhwciwgJGwzODpleHByLCAkbDM5 OmV4cHIsCistICAgICAgJGw0MDpleHByLCAkbDQxOmV4cHIsICRsNDI6ZXhwciwgJGw0MzpleHBy LAorLSAgICAgICRsNDQ6ZXhwciwgJGw0NTpleHByLCAkbDQ2OmV4cHIsICRsNDc6ZXhwciwKKy0g ICAgICAkbDQ4OmV4cHIsICRsNDk6ZXhwciwgJGw1MDpleHByLCAkbDUxOmV4cHIsCistICAgICAg JGw1MjpleHByLCAkbDUzOmV4cHIsICRsNTQ6ZXhwciwgJGw1NTpleHByLAorLSAgICAgICRsNTY6 ZXhwciwgJGw1NzpleHByLCAkbDU4OmV4cHIsICRsNTk6ZXhwciwKKy0gICAgICAkbDYwOmV4cHIs ICRsNjE6ZXhwciwgJGw2MjpleHByLCAkbDYzOmV4cHJdKSA9PiB7eworLSAgICAgICAgI1thbGxv dyh1bnVzZWRfdW5zYWZlKV0KKy0gICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgJGNyYXRl OjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3RvcjY0Ojo8e1sKKy0gICAgICAgICAgICAgICAg JGwwLCAkbDEsICRsMiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDcsICRsOCwgJGw5LCAkbDEwLAor LSAgICAgICAgICAgICAgICAkbDExLCAkbDEyLCAkbDEzLCAkbDE0LCAkbDE1LCAkbDE2LCAkbDE3 LCAkbDE4LCAkbDE5LAorLSAgICAgICAgICAgICAgICAkbDIwLCAkbDIxLCAkbDIyLCAkbDIzLCAk bDI0LCAkbDI1LCAkbDI2LCAkbDI3LCAkbDI4LAorLSAgICAgICAgICAgICAgICAkbDI5LCAkbDMw LCAkbDMxLCAkbDMyLCAkbDMzLCAkbDM0LCAkbDM1LCAkbDM2LCAkbDM3LAorLSAgICAgICAgICAg ICAgICAkbDM4LCAkbDM5LCAkbDQwLCAkbDQxLCAkbDQyLCAkbDQzLCAkbDQ0LCAkbDQ1LCAkbDQ2 LAorLSAgICAgICAgICAgICAgICAkbDQ3LCAkbDQ4LCAkbDQ5LCAkbDUwLCAkbDUxLCAkbDUyLCAk bDUzLCAkbDU0LCAkbDU1LAorLSAgICAgICAgICAgICAgICAkbDU2LCAkbDU3LCAkbDU4LCAkbDU5 LCAkbDYwLCAkbDYxLCAkbDYyLCAkbDYzLAorLSAgICAgICAgICAgIF19LCBfLCBfPigKKy0gICAg ICAgICAgICAgICAgJHZlYzAuMCwKKy0gICAgICAgICAgICAgICAgJHZlYzEuMCwKKy0gICAgICAg ICAgICApKQorLSAgICAgICAgfQorLSAgICAgfX07CistICAgICgkdmVjOmV4cHIsIFskKCRsOmV4 cHIpLCpdKSA9PiB7CistICAgICAgICBtYXRjaCAkdmVjIHsKKy0gICAgICAgICAgICB2ID0+IHNo dWZmbGUhKHYsIHYsIFskKCRsKSwqXSkKKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUxX2R5bi5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlMV9keW4ucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL3NodWZmbGUxX2R5bi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTU5ICsw LDAgQEAKKy0vLyEgU2h1ZmZsZSB2ZWN0b3IgZWxlbWVudHMgYWNjb3JkaW5nIHRvIGEgZHluYW1p YyB2ZWN0b3Igb2YgaW5kaWNlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlMV9keW4g eworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8g U2h1ZmZsZSB2ZWN0b3IgZWxlbWVudHMgYWNjb3JkaW5nIHRvIGBpbmRpY2VzYC4KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc2h1ZmZsZTFfZHluPEk+KHNlbGYs IGluZGljZXM6IEkpIC0+IFNlbGYKKy0gICAgICAgICAgICB3aGVyZQorLSAgICAgICAgICAgICAg ICBTZWxmOiBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluPEluZGljZXMgPSBJPiwK Ky0gICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6 U2h1ZmZsZTFEeW46OnNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzKQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIHRlc3Rfc2h1ZmZsZTFf ZHluIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVu dCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAg JHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfc2h1ZmZsZTFfZHluPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5 bigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5jcmVhc2luZyA9IHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVt X3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5l cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwg aSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGRlY3JlYXNpbmcgPSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCRpZDo6bGFuZXMoKSAtIDEgLSBpKSBhcyAkZWxlbV90eQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2CistICAgICAgICAgICAgICAgICAgICAgICAg fTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSA8CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRpZCBhcyBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZm bGUxRHluCistICAgICAgICAgICAgICAgICAgICAgICAgICAgID46OkluZGljZXM7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGluY3JlYXNpbmdfaWRzOiBJbmRpY2VzID0gaW5jcmVhc2lu Zy5jYXN0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlY3JlYXNpbmdfaWRzOiBJ bmRpY2VzID0gZGVjcmVhc2luZy5jYXN0KCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2luZy5zaHVm ZmxlMV9keW4oaW5jcmVhc2luZ19pZHMpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bmNyZWFzaW5nLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGksaSk9PmkiCistICAg ICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLnNodWZmbGUxX2R5 bihpbmNyZWFzaW5nX2lkcyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY3JlYXNp bmcsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoZCxpKT0+ZCIKKy0gICAgICAgICAg ICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGRlY3Jl YXNpbmdfaWRzKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZywKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIihpLGQpPT5kIgorLSAgICAgICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZy5zaHVmZmxlMV9keW4oZGVjcmVhc2luZ19p ZHMpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZWFzaW5nLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiKGQsZCk9PmkiCistICAgICAgICAgICAgICAgICAgICAgICAg KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdl9pZHM6IEluZGljZXMKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGlkOjpzcGxhdChpIGFzICRlbGVtX3R5KS5j YXN0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoaW5jcmVhc2lu Zy5zaHVmZmxlMV9keW4odl9pZHMpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRpZDo6c3BsYXQoaW5jcmVhc2luZy5leHRyYWN0KGkpKQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGRlY3JlYXNpbmcuc2h1ZmZsZTFfZHluKHZfaWRzKSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGRlY3JlYXNpbmcuZXh0cmFjdChpKSkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQo aSBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2h1 ZmZsZTFfZHluKGluY3JlYXNpbmdfaWRzKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6c3BsYXQoaSBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoaSBhcyAkZWxlbV90eSkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2h1ZmZsZTFfZHluKGRlY3JlYXNpbmdf aWRzKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoaSBhcyAk ZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVz ISB0ZXN0X3NodWZmbGUxX2R5bl9tYXNrIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICB0ZXN0 X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2h1ZmZsZTFfZHluPl0geworLSAg ICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgIGZuIHNodWZmbGUxX2R5bigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBh bHRlcm5hdGluZyA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIC4uLl0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IGFsdGVybmF0aW5nID0gJGlkOjpzcGxhdChmYWxzZSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZyA9IGFsdGVybmF0aW5nLnJlcGxhY2UoaSwgdHJ1 ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gPAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpT aHVmZmxlMUR5bgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA+OjpJbmRpY2VzOworLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gPSBbMCwgMCwgMiwgMiwgNCwgNCwgLi5dCist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW4gPSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgdiA9IEluZGljZXM6OnNwbGF0KDApOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCkuaW50bygpKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCAtIDEpLmludG8oKSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdgorLSAgICAgICAgICAg ICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2RkID0gWzEsIDEs IDMsIDMsIDUsIDUsIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb2RkID0gewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBJbmRpY2VzOjpzcGxhdCgw KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9IDAgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMg dTgpLmludG8oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkg YXMgdTggKyAxKS5pbnRvKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0 aW5nLnNodWZmbGUxX2R5bihldmVuKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlk OjpzcGxhdCh0cnVlKQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAg ICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRl cm5hdGluZy5zaHVmZmxlMV9keW4ob2RkKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6c3BsYXQoZmFsc2UpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL3NsaWNlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy0vLyEgU2xpY2Ug ZnJvbS90byBtZXRob2RzCistCistI1ttYWNyb191c2VdCistbW9kIGZyb21fc2xpY2U7CistCist I1ttYWNyb191c2VdCistbW9kIHdyaXRlX3RvX3NsaWNlOworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIwMiArMCww IEBACistLy8hIEltcGxlbWVudHMgbWV0aG9kcyB0byByZWFkIGEgdmVjdG9yIHR5cGUgZnJvbSBh IHNsaWNlLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX3NsaWNlX2Zyb21fc2xpY2UgeworLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlh dGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xp Y2VbMF1gIGlzIG5vdCBhbGlnbmVkCistICAgICAgICAgICAgLy8vIHRvIGFuIGBhbGlnbl9vZjo6 PFNlbGY+KClgIGJvdW5kYXJ5LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IHB1YiBmbiBmcm9tX3NsaWNlX2FsaWduZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEo c2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHRh cmdldF9wdHIgPSBzbGljZS5hc19wdHIoKTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigp KSwgMCk7CistICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNlX2FsaWduZWRfdW5j aGVja2VkKHNsaWNlKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlcyBv ZiB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5p Y3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwg U2VsZjo6bGFuZXMoKWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHVi IGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkKHNsaWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNs aWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgICAgIFNlbGY6OmZy b21fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZl Y3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5v dCBhbGlnbmVkCistICAgICAgICAgICAgLy8vIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJv dW5kYXJ5LCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tl ZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBkZWJ1Z19h c3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgbGV0 IHRhcmdldF9wdHIgPSBzbGljZS5hc19wdHIoKTsKKy0gICAgICAgICAgICAgICAgZGVidWdfYXNz ZXJ0X2VxISh0YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNl bGY+KCkpLCAwKTsKKy0KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRy X2FsaWdubWVudCldCistICAgICAgICAgICAgICAgICoodGFyZ2V0X3B0ciBhcyAqY29uc3QgU2Vs ZikKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5l dyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMg dW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNh ZmUgZm4gZnJvbV9zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNsaWNlOiAmWyRlbGVtX3R5XSkg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjpzaXplX29mOworLSAg ICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsK Ky0gICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19wdHIoKS5jYXN0KCk7 CistICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IFNlbGY6OnNwbGF0KDAgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICBsZXQgc2VsZl9wdHIgPSAmbXV0IHggYXMgKm11dCBTZWxmIGFz ICptdXQgdTg7CistICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBp bmcodGFyZ2V0X3B0ciwgc2VsZl9wdHIsIHNpemVfb2Y6OjxTZWxmPigpKTsKKy0gICAgICAgICAg ICAgICAgeAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYh IHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewor LSAgICAgICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4g bWFudGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0 X2NtcCldCistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NsaWNlX2Zyb21fc2xpY2U+ XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOworLQorLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZCgp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFs0MiBhcyAk ZWxlbV90eTsgJGlkOjpsYW5lcygpICsgMV07CistICAgICAgICAgICAgICAgICAgICAgICAgdW5h bGlnbmVkWzBdID0gMCBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg dmVjID0gJGlkOjpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmdW5hbGlnbmVkWzEuLl0pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsICZiKSBpbiB1bmFsaWduZWQuaXRlcigpLmVu dW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPT0gMCB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDAgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCA0MiBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIHZlYy5leHRyYWN0 KGluZGV4IC0gMSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg ICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tz aG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAg ICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9w YW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkX2ZhaWwo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbNDIgYXMg JGVsZW1fdHk7ICRpZDo6bGFuZXMoKSArIDFdOworLSAgICAgICAgICAgICAgICAgICAgICAgIHVu YWxpZ25lZFswXSA9IDAgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8g dGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFuaWMKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgX3ZlYyA9ICRpZDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnVuYWxpZ25lZFsy Li5dKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIHVu aW9uIEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFskZWxlbV90eTsgMiAqICRp ZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgX3ZlYzogJGlkLAorLSAgICAg ICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAg ICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWQoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluICRp ZDo6bGFuZXMoKS4uKDIgKiAkaWQ6OmxhbmVzKCkpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduZWQu ZGF0YVtpXSA9IDQyIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ZWMgPSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmZy b21fc2xpY2VfYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGln bmVkLmRhdGFbJGlkOjpsYW5lcygpLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGZv ciAoaW5kZXgsICZiKSBpbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBh bGlnbmVkLmRhdGEuaXRlcigpLmVudW1lcmF0ZSgpIH0geworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBpbmRleCA8ICRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShiLCA0MiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGIsIHZlYy5leHRyYWN0KGluZGV4IC0gJGlkOjpsYW5lcygpKQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0 ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCist ICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQor LSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91 bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRfZmFp bF9sYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsgMiAqICRp ZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgX3ZlYyA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6ZnJvbV9zbGljZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmFsaWduZWQuZGF0YVsyICogJGlkOjpsYW5lcygpLi5dCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdl bi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAg ICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCist ICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAg ICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZu IGZyb21fc2xpY2VfYWxpZ25lZF9mYWlsX2FsaWduKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGlnbmVkID0g QSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90 eTsgMiAqICRpZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Cist CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBhIHBvaW50ZXIgdG8gdGhlIGZy b250IG9mIGRhdGEKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0cjogKmNvbnN0 ICRlbGVtX3R5ID0gYWxpZ25lZC5kYXRhLmFzX3B0cigpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcyAqY29uc3QgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIG9mZnNldCBwb2ludGVyIGJ5IG9uZSBlbGVtZW50CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBwdHIgPSBwdHIud3JhcHBpbmdfYWRkKDEpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBwdHIuYWxpZ25fb2Zmc2V0KAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjwkaWQ+KCkKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKSA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRoZSBwb2ludGVyIGlzIHByb3Blcmx5IGFsaWduZWQsIHNvCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBmcm9tX3NsaWNlX2FsaWduZWQgd29uJ3QgZmFpbCBoZXJl IChlLmcuIHRoaXMKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbiBoYXBw ZW4gZm9yIGkxMjh4MSkuIFNvIHdlIHBhbmljIHRvIG1ha2UKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHRoZSAic2hvdWxkX2ZhaWwiIHRlc3QgcGFzczoKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhbmljISgib2siKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBz bGljZSAtIHRoaXMgaXMgc2FmZSwgYmVjYXVzZSB0aGUKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gZWxlbWVudHMgb2YgdGhlIHNsaWNlIGV4aXN0LCBhcmUgcHJvcGVybHkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQsIGFuZCBwcm9wZXJseSBhbGln bmVkOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogJlskZWxlbV90eV0gPSBz bGljZTo6ZnJvbV9yYXdfcGFydHMoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw dHIsICRpZDo6bGFuZXMoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBhbHdheXMgcGFuaWMgYmVjYXVz ZSB0aGUgc2xpY2UKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25tZW50IGRv ZXMgbm90IG1hdGNoIHRoZSBhbGlnbm1lbnQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gcmVxdWlyZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBfdmVjID0gJGlkOjpmcm9tX3NsaWNlX2FsaWduZWQocyk7CistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2Uvd3JpdGVfdG9f c2xpY2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2Uvd3Jp dGVfdG9fc2xpY2UucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwxOTYgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIG1ldGhvZHMgdG8g d3JpdGUgYSB2ZWN0b3IgdHlwZSB0byBhIHNsaWNlLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX3Ns aWNlX3dyaXRlX3RvX3NsaWNlIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6 ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7 CistICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhl IGBzbGljZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6 OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5vdAorLSAgICAgICAgICAgIC8vLyBhbGlnbmVk IHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkKHNlbGYsIHNs aWNlOiAmbXV0IFskZWxlbV90eV0pIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAg ICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAg ICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCk7Cist ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRhcmdldF9wdHIuYWxpZ25fb2Zmc2V0KGNy YXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSksIDApOworLSAgICAgICAgICAgICAgICAgICAg c2VsZi53cml0ZV90b19zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSk7CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUg dmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWQoc2VsZiwg c2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Cist ICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNr ZWQoc2xpY2UpOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2Vg LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygp YCBvciBgJnNsaWNlWzBdYCBpcyBub3QKKy0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBg YWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJlaGF2aW9yIGlzCistICAgICAgICAg ICAgLy8vIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgdW5zYWZlIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKHNlbGYsIHNsaWNl OiAmbXV0IFskZWxlbV90eV0pIHsKKy0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShzbGlj ZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRy ID0gc2xpY2UuYXNfbXV0X3B0cigpOworLSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnRfZXEh KHRhcmdldF9wdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSks IDApOworLQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25t ZW50KV0KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVu dCldCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQp XQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0K Ky0gICAgICAgICAgICAgICAgKih0YXJnZXRfcHRyIGFzICptdXQgU2VsZikgPSBzZWxmOworLSAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhl IHZlY3RvciB0byB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYHNsaWNl LmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHdyaXRlX3RvX3Ns aWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgewor LSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50 KTsKKy0gICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCku Y2FzdCgpOworLSAgICAgICAgICAgICAgICBsZXQgc2VsZl9wdHIgPSAmc2VsZiBhcyAqY29uc3Qg U2VsZiBhcyAqY29uc3QgdTg7CistICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9u b3ZlcmxhcHBpbmcoc2VsZl9wdHIsIHRhcmdldF9wdHIsIGNyYXRlOjptZW06OnNpemVfb2Y6OjxT ZWxmPigpKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lm ISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK Ky0gICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGlu IG1hbnRpc3NhXjEgcmFuZ2UuCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9h dF9jbXApXQorLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9zbGljZV93cml0ZV90b19z bGljZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6aXRlcjo6SXRlcmF0b3I7CistCistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX3Vu YWxpZ25lZCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9 IFswIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVzKCkgKyAxXTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCg0MiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IHVuYWxpZ25lZFsx Li5dKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5hbGln bmVkLml0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IGluZGV4ID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShiLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgNDIgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShi LCB2ZWMuZXh0cmFjdChpbmRleCAtIDEpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5v dCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAg ICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGlj ZV91bmFsaWduZWRfZmFpbCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVu YWxpZ25lZCA9IFswIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVzKCkgKyAxXTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCg0MiBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IHVu YWxpZ25lZFsyLi5dKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAg ICAgICAgIHVuaW9uIEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFskZWxlbV90 eTsgMiAqICRpZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgX3ZlYzogJGlk LAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsgMiAqICRpZDo6bGFuZXMo KV0sCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdmVjID0gJGlkOjpzcGxhdCg0MiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRl X3RvX3NsaWNlX2FsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0 IGFsaWduZWQuZGF0YVskaWQ6OmxhbmVzKCkuLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpZHgsICZiKSBpbiBhbGln bmVkLmRhdGEuaXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGlkeCA8ICRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShiLCA0MiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYiwgdmVjLmV4dHJhY3QoaWR4IC0gJGlkOjpsYW5lcygpKQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAg ICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAj W3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0g ICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxk X3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF9m YWlsX2xhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9 IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsg MiAqICRpZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCg0MiBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX2FsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmbXV0IGFsaWduZWQuZGF0YVsyICogJGlkOjpsYW5lcygpLi5dCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAg ICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdh c20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAg ICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rl c3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAg ICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfZmFpbF9hbGlnbigpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE6IFswIGFzICRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IGEg cG9pbnRlciB0byB0aGUgZnJvbnQgb2YgZGF0YQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgcHRyOiAqbXV0ICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IGFsaWduZWQuZGF0YS5hc19tdXRfcHRyKCkgYXMgKm11dCAkZWxlbV90eTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IHBvaW50ZXIgYnkgb25lIGVsZW1lbnQKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9IHB0ci53cmFwcGluZ19hZGQoMSk7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHB0ci5hbGlnbl9vZmZzZXQoY3Jh dGU6Om1lbTo6YWxpZ25fb2Y6OjwkaWQ+KCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwb2lu dGVyIGlzIHByb3Blcmx5IGFsaWduZWQsIHNvCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyB3cml0ZV90b19zbGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjYW4gaGFwcGVuIGZvciBpMTI4 eDEpLiBTbyB3ZSBwYW5pYyB0bworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g bWFrZSB0aGUgInNob3VsZF9mYWlsIiB0ZXN0IHBhc3M6CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYW5pYyEoIm9rIik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlz IGlzIHNhZmUsIGJlY2F1c2UgdGhlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVs ZW1lbnRzIG9mIHRoZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6ICZtdXQgWyRlbGVtX3R5XQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KHB0ciwg JGlkOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91 bGQgYWx3YXlzIHBhbmljIGJlY2F1c2UgdGhlIHNsaWNlCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGFsaWdubWVudCBkb2VzIG5vdCBtYXRjaCB0aGUgYWxpZ25tZW50CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyBmb3IgdGhlIHZlY3RvciB0eXBl OgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCg0MiBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19z bGljZV9hbGlnbmVkKHMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvc3dhcF9ieXRlcy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc3dhcF9ieXRlcy5ycworKysrIC9kZXYv bnVsbAorQEAgLTEsMTkyICswLDAgQEAKKy0vLyEgSG9yaXpvbnRhbCBzd2FwIGJ5dGVzCistCist bWFjcm9fcnVsZXMhIGltcGxfc3dhcF9ieXRlcyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAg aW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBSZXZlcnNlcyB0aGUgYnl0ZSBvcmRlciBvZiB0 aGUgdmVjdG9yLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBz d2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzdXBlcjo6Y29kZWdl bjo6c3dhcF9ieXRlczo6U3dhcEJ5dGVzOjpzd2FwX2J5dGVzKHNlbGYpCistICAgICAgICAgICAg fQorLQorLSAgICAgICAgICAgIC8vLyBDb252ZXJ0cyBzZWxmIHRvIGxpdHRsZSBlbmRpYW4gZnJv bSB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gT24gbGl0dGxlIGVuZGlhbiB0aGlzIGlzIGEgbm8tb3AuIE9uIGJpZyBlbmRpYW4gdGhl IGJ5dGVzIGFyZQorLSAgICAgICAgICAgIC8vLyBzd2FwcGVkLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB0b19sZShzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0KKy0gICAgICAgICAgICAg ICAgeworLSAgICAgICAgICAgICAgICAgICAgc2VsZgorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpKV0KKy0gICAg ICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zd2FwX2J5dGVzKCkKKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ29u dmVydHMgc2VsZiB0byBiaWcgZW5kaWFuIGZyb20gdGhlIHRhcmdldCdzIGVuZGlhbm5lc3MuCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE9uIGJpZyBlbmRpYW4gdGhpcyBpcyBh IG5vLW9wLiBPbiBsaXR0bGUgZW5kaWFuIHRoZSBieXRlcyBhcmUKKy0gICAgICAgICAgICAvLy8g c3dhcHBlZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gdG9f YmUoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4g PSAiYmlnIildCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2Vu ZGlhbiA9ICJiaWciKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAg IHNlbGYuc3dhcF9ieXRlcygpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist CistICAgICAgICAgICAgLy8vIENvbnZlcnRzIGEgdmVjdG9yIGZyb20gbGl0dGxlIGVuZGlhbiB0 byB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gT24gbGl0dGxlIGVuZGlhbiB0aGlzIGlzIGEgbm8tb3AuIE9uIGJpZyBlbmRpYW4gdGhl IGJ5dGVzIGFyZQorLSAgICAgICAgICAgIC8vLyBzd2FwcGVkLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX2xlKHg6IFNlbGYpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXQorLSAgICAgICAg ICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB4CistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikpXQorLSAg ICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB4LnN3YXBfYnl0ZXMoKQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDb252 ZXJ0cyBhIHZlY3RvciBmcm9tIGJpZyBlbmRpYW4gdG8gdGhlIHRhcmdldCdzIGVuZGlhbm5lc3Mu CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE9uIGJpZyBlbmRpYW4gdGhpcyBp cyBhIG5vLW9wLiBPbiBsaXR0bGUgZW5kaWFuIHRoZSBieXRlcyBhcmUKKy0gICAgICAgICAgICAv Ly8gc3dhcHBlZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4g ZnJvbV9iZSh4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2VuZGlhbiA9ICJiaWciKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAg ICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJn ZXRfZW5kaWFuID0gImJpZyIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAg ICAgICAgeC5zd2FwX2J5dGVzKCkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90 dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9zd2FwX2J5dGVzPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OworLQorLSAgICAgICAgICAgICAgICAgICAgY29uc3QgQllURVM6IFt1ODsgNjRdID0gWworLSAg ICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCistICAgICAgICAg ICAgICAgICAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsCistICAgICAgICAg ICAgICAgICAgICAgICAgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsCistICAgICAg ICAgICAgICAgICAgICAgICAgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LAorLSAgICAg ICAgICAgICAgICAgICAgICAgIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywKKy0gICAg ICAgICAgICAgICAgICAgIF07CistCistICAgICAgICAgICAgICAgICAgICBtYWNyb19ydWxlcyEg c3dhcCB7CistICAgICAgICAgICAgICAgICAgICAgICAgKCRmdW5jOiBpZGVudCkgPT4ge3sKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2F0Y2ggcG9zc2libGUgZnV0dXJlID41MTIg dmVjdG9ycworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKG1lbTo6c2l6ZV9v Zjo6PCRpZD4oKSA8PSA2NCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYWN0dWFsID0gQllURVM7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlbGVt czogJm11dCBbJGVsZW1fdHldID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNsaWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYWN0dWFsLmFzX211dF9wdHIoKSBhcyAqbXV0ICRlbGVtX3R5LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6bGFuZXMoKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6ZnJvbV9z bGljZV91bmFsaWduZWQoZWxlbXMpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6 OiRmdW5jKHZlYykud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKGVsZW1zKTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYWN0dWFsCistICAgICAgICAgICAgICAgICAgICAgICAgfX07 CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBtYWNyb19y dWxlcyEgdGVzdF9zd2FwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAoJGZ1bmM6IGlkZW50 KSA9PiB7eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gc3dhcCEo JGZ1bmMpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURVMuaXRlcigpLnJldigpCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAuc2tpcCg2NCAtIGNyYXRlOjptZW06OnNpemVfb2Y6 OjwkaWQ+KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGFjdHVhbC5p dGVyKCkuemlwKGV4cGVjdGVkKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC5hbGwofCh4LCB5KXwgeCA9PSB5KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfX07Cist ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBtYWNyb19ydWxl cyEgdGVzdF9ub19zd2FwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAoJGZ1bmM6IGlkZW50 KSA9PiB7eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gc3dhcCEo JGZ1bmMpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBCWVRF Uy5pdGVyKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50YWtlKG1lbTo6c2l6 ZV9vZjo6PCRpZD4oKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo YWN0dWFsLml0ZXIoKS56aXAoZXhwZWN0ZWQpCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLmFsbCh8KHgsIHkpfCB4ID09IHkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB9fTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAg ICAgICAgICBmbiBzd2FwX2J5dGVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf c3dhcCEoc3dhcF9ieXRlcyk7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgZm4gdG9fbGUoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0KKy0gICAgICAgICAgICAgICAgICAg ICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9fc3dhcCEodG9fbGUp OworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAj W2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSldCistICAgICAgICAgICAgICAgICAg ICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N3YXAhKHRvX2xlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCist ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gdG9fYmUoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJiaWciKV0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9fc3dhcCEo dG9fYmUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJiaWciKSldCistICAgICAgICAgICAgICAg ICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N3YXAhKHRvX2Jl KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9Cist CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9sZSgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXQorLSAgICAg ICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9u b19zd2FwIShmcm9tX2xlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikpXQorLSAg ICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9zd2FwIShmcm9tX2xlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9i ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImJp ZyIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9ub19zd2FwIShmcm9tX2JlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAiYmln IikpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9zd2FwIShmcm9tX2JlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4ucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDYyICswLDAgQEAKKy0vLyEgQ29kZS1nZW5lcmF0aW9uIHV0aWxpdGllcworLQorLXB1YihjcmF0 ZSkgbW9kIGJpdF9tYW5pcDsKKy1wdWIoY3JhdGUpIG1vZCBsbHZtOworLXB1YihjcmF0ZSkgbW9k IG1hdGg7CistcHViKGNyYXRlKSBtb2QgcmVkdWN0aW9uczsKKy1wdWIoY3JhdGUpIG1vZCBzaHVm ZmxlOworLXB1YihjcmF0ZSkgbW9kIHNodWZmbGUxX2R5bjsKKy1wdWIoY3JhdGUpIG1vZCBzd2Fw X2J5dGVzOworLQorLW1hY3JvX3J1bGVzISBpbXBsX3NpbWRfYXJyYXkgeworLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICR0dXBsZV9pZDppZGVudCB8ICQo JGVsZW1fdHlzOmlkZW50KSwqKSA9PiB7CistICAgICAgICAjW2Rlcml2ZShDb3B5LCBDbG9uZSld CistICAgICAgICAjW3JlcHIoc2ltZCldCistICAgICAgICBwdWIgc3RydWN0ICR0dXBsZV9pZCgk KHB1YihjcmF0ZSkgJGVsZW1fdHlzKSwqKTsKKy0gICAgICAgIC8vXl5eXl5eXiBsZWFrZWQgdGhy b3VnaCBTaW1kQXJyYXkKKy0KKy0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2VhbCBmb3Ig WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0ge30KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxl ZDo6U2ltZEFycmF5IGZvciBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7CistICAgICAgICAgICAg dHlwZSBUdXBsZSA9ICR0dXBsZV9pZDsKKy0gICAgICAgICAgICB0eXBlIFQgPSAkZWxlbV90eTsK Ky0gICAgICAgICAgICBjb25zdCBOOiB1c2l6ZSA9ICRlbGVtX2NvdW50OworLSAgICAgICAgICAg IHR5cGUgTlQgPSBbdTMyOyAkZWxlbV9jb3VudF07CistICAgICAgICB9CistCistICAgICAgICBp bXBsIGNyYXRlOjpzZWFsZWQ6OlNlYWwgZm9yICR0dXBsZV9pZCB7fQorLSAgICAgICAgaW1wbCBj cmF0ZTo6c2VhbGVkOjpTaW1kIGZvciAkdHVwbGVfaWQgeworLSAgICAgICAgICAgIHR5cGUgRWxl bWVudCA9ICRlbGVtX3R5OworLSAgICAgICAgICAgIGNvbnN0IExBTkVTOiB1c2l6ZSA9ICRlbGVt X2NvdW50OworLSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBlID0gW3UzMjsgJGVsZW1fY291bnRd OworLSAgICAgICAgfQorLQorLSAgICB9CistfQorLQorLXB1YihjcmF0ZSkgbW9kIHBvaW50ZXJf c2l6ZWRfaW50OworLQorLXB1YihjcmF0ZSkgbW9kIHYxNjsKKy1wdWIoY3JhdGUpIHVzZSBzZWxm Ojp2MTY6Oio7CistCistcHViKGNyYXRlKSBtb2QgdjMyOworLXB1YihjcmF0ZSkgdXNlIHNlbGY6 OnYzMjo6KjsKKy0KKy1wdWIoY3JhdGUpIG1vZCB2NjQ7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6 djY0OjoqOworLQorLXB1YihjcmF0ZSkgbW9kIHYxMjg7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6 djEyODo6KjsKKy0KKy1wdWIoY3JhdGUpIG1vZCB2MjU2OworLXB1YihjcmF0ZSkgdXNlIHNlbGY6 OnYyNTY6Oio7CistCistcHViKGNyYXRlKSBtb2QgdjUxMjsKKy1wdWIoY3JhdGUpIHVzZSBzZWxm Ojp2NTEyOjoqOworLQorLXB1YihjcmF0ZSkgbW9kIHZTaXplOworLXB1YihjcmF0ZSkgdXNlIHNl bGY6OnZTaXplOjoqOworLQorLXB1YihjcmF0ZSkgbW9kIHZQdHI7CistcHViKGNyYXRlKSB1c2Ug c2VsZjo6dlB0cjo6KjsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL2JpdF9tYW5pcC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vYml0X21hbmlwLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vYml0X21hbmlwLnJzCisr KysgL2Rldi9udWxsCitAQCAtMSwzNDcgKzAsMCBAQAorLS8vISBMTFZNIGJpdCBtYW5pcHVsYXRp b24gaW50cmluc2ljcy4KKy0jW3J1c3RmbXQ6OnNraXBdCistCistcHViKGNyYXRlKSB1c2UgY3Jh dGU6Oio7CistCistI1thbGxvdyhpbXByb3Blcl9jdHlwZXMsIGRlYWRfY29kZSldCistZXh0ZXJu ICJDIiB7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52Mmk4Il0KKy0gICAgZm4gY3Rs el91OHgyKHg6IHU4eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDI7CistICAgICNbbGlu a19uYW1lID0gImxsdm0uY3Rsei52NGk4Il0KKy0gICAgZm4gY3Rsel91OHg0KHg6IHU4eDQsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rs ei52OGk4Il0KKy0gICAgZm4gY3Rsel91OHg4KHg6IHU4eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wp IC0+IHU4eDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MTZpOCJdCistICAgIGZu IGN0bHpfdTh4MTYoeDogdTh4MTYsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDE2OworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjMyaTgiXQorLSAgICBmbiBjdGx6X3U4eDMyKHg6 IHU4eDMyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgzMjsKKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdGx6LnY2NGk4Il0KKy0gICAgZm4gY3Rsel91OHg2NCh4OiB1OHg2NCwgaXNfemVy b191bmRlZjogYm9vbCkgLT4gdTh4NjQ7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rs ei52MmkxNiJdCistICAgIGZuIGN0bHpfdTE2eDIoeDogdTE2eDIsIGlzX3plcm9fdW5kZWY6IGJv b2wpIC0+IHUxNngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjRpMTYiXQorLSAg ICBmbiBjdGx6X3UxNng0KHg6IHUxNng0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4NDsK Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY4aTE2Il0KKy0gICAgZm4gY3Rsel91MTZ4 OCh4OiB1MTZ4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDg7CistICAgICNbbGlua19u YW1lID0gImxsdm0uY3Rsei52MTZpMTYiXQorLSAgICBmbiBjdGx6X3UxNngxNih4OiB1MTZ4MTYs IGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngxNjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdGx6LnYzMmkxNiJdCistICAgIGZuIGN0bHpfdTE2eDMyKHg6IHUxNngzMiwgaXNfemVyb191 bmRlZjogYm9vbCkgLT4gdTE2eDMyOworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHou djJpMzIiXQorLSAgICBmbiBjdGx6X3UzMngyKHg6IHUzMngyLCBpc196ZXJvX3VuZGVmOiBib29s KSAtPiB1MzJ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTMyIl0KKy0gICAg Zm4gY3Rsel91MzJ4NCh4OiB1MzJ4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDQ7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52OGkzMiJdCistICAgIGZuIGN0bHpfdTMyeDgo eDogdTMyeDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMng4OworLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmN0bHoudjE2aTMyIl0KKy0gICAgZm4gY3Rsel91MzJ4MTYoeDogdTMyeDE2LCBp c196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4MTY7CistCistICAgICNbbGlua19uYW1lID0gImxs dm0uY3Rsei52Mmk2NCJdCistICAgIGZuIGN0bHpfdTY0eDIoeDogdTY0eDIsIGlzX3plcm9fdW5k ZWY6IGJvb2wpIC0+IHU2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjRpNjQi XQorLSAgICBmbiBjdGx6X3U2NHg0KHg6IHU2NHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1 NjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY4aTY0Il0KKy0gICAgZm4gY3Rs el91NjR4OCh4OiB1NjR4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0eDg7CistCistICAg ICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MWkxMjgiXQorLSAgICBmbiBjdGx6X3UxMjh4MSh4 OiB1MTI4eDEsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4MTsKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jdGx6LnYyaTEyOCJdCistICAgIGZuIGN0bHpfdTEyOHgyKHg6IHUxMjh4Miwg aXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmN0bHoudjRpMTI4Il0KKy0gICAgZm4gY3Rsel91MTI4eDQoeDogdTEyOHg0LCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1MTI4eDQ7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52 Mmk4Il0KKy0gICAgZm4gY3R0el91OHgyKHg6IHU4eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+ IHU4eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52NGk4Il0KKy0gICAgZm4gY3R0 el91OHg0KHg6IHU4eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDQ7CistICAgICNbbGlu a19uYW1lID0gImxsdm0uY3R0ei52OGk4Il0KKy0gICAgZm4gY3R0el91OHg4KHg6IHU4eDgsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0 ei52MTZpOCJdCistICAgIGZuIGN0dHpfdTh4MTYoeDogdTh4MTYsIGlzX3plcm9fdW5kZWY6IGJv b2wpIC0+IHU4eDE2OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjMyaTgiXQorLSAg ICBmbiBjdHR6X3U4eDMyKHg6IHU4eDMyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgzMjsK Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY2NGk4Il0KKy0gICAgZm4gY3R0el91OHg2 NCh4OiB1OHg2NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4NjQ7CistCistICAgICNbbGlu a19uYW1lID0gImxsdm0uY3R0ei52MmkxNiJdCistICAgIGZuIGN0dHpfdTE2eDIoeDogdTE2eDIs IGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmN0dHoudjRpMTYiXQorLSAgICBmbiBjdHR6X3UxNng0KHg6IHUxNng0LCBpc196ZXJvX3VuZGVm OiBib29sKSAtPiB1MTZ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY4aTE2Il0K Ky0gICAgZm4gY3R0el91MTZ4OCh4OiB1MTZ4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2 eDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MTZpMTYiXQorLSAgICBmbiBjdHR6 X3UxNngxNih4OiB1MTZ4MTYsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngxNjsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYzMmkxNiJdCistICAgIGZuIGN0dHpfdTE2eDMyKHg6 IHUxNngzMiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDMyOworLQorLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0dHoudjJpMzIiXQorLSAgICBmbiBjdHR6X3UzMngyKHg6IHUzMngyLCBp c196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dHR6LnY0aTMyIl0KKy0gICAgZm4gY3R0el91MzJ4NCh4OiB1MzJ4NCwgaXNfemVyb191bmRlZjog Ym9vbCkgLT4gdTMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52OGkzMiJdCist ICAgIGZuIGN0dHpfdTMyeDgoeDogdTMyeDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMng4 OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjE2aTMyIl0KKy0gICAgZm4gY3R0el91 MzJ4MTYoeDogdTMyeDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4MTY7CistCistICAg ICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52Mmk2NCJdCistICAgIGZuIGN0dHpfdTY0eDIoeDog dTY0eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0dHoudjRpNjQiXQorLSAgICBmbiBjdHR6X3U2NHg0KHg6IHU2NHg0LCBpc196ZXJv X3VuZGVmOiBib29sKSAtPiB1NjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY4 aTY0Il0KKy0gICAgZm4gY3R0el91NjR4OCh4OiB1NjR4OCwgaXNfemVyb191bmRlZjogYm9vbCkg LT4gdTY0eDg7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MWkxMjgiXQorLSAg ICBmbiBjdHR6X3UxMjh4MSh4OiB1MTI4eDEsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4 MTsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYyaTEyOCJdCistICAgIGZuIGN0dHpf dTEyOHgyKHg6IHUxMjh4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHgyOworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjRpMTI4Il0KKy0gICAgZm4gY3R0el91MTI4eDQoeDog dTEyOHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDQ7CistCistICAgICNbbGlua19u YW1lID0gImxsdm0uY3Rwb3AudjJpOCJdCistICAgIGZuIGN0cG9wX3U4eDIoeDogdTh4MikgLT4g dTh4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52NGk4Il0KKy0gICAgZm4gY3Rw b3BfdTh4NCh4OiB1OHg0KSAtPiB1OHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9w LnY4aTgiXQorLSAgICBmbiBjdHBvcF91OHg4KHg6IHU4eDgpIC0+IHU4eDg7CistICAgICNbbGlu a19uYW1lID0gImxsdm0uY3Rwb3AudjE2aTgiXQorLSAgICBmbiBjdHBvcF91OHgxNih4OiB1OHgx NikgLT4gdTh4MTY7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjMyaTgiXQorLSAg ICBmbiBjdHBvcF91OHgzMih4OiB1OHgzMikgLT4gdTh4MzI7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uY3Rwb3AudjY0aTgiXQorLSAgICBmbiBjdHBvcF91OHg2NCh4OiB1OHg2NCkgLT4gdTh4 NjQ7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjJpMTYiXQorLSAgICBmbiBj dHBvcF91MTZ4Mih4OiB1MTZ4MikgLT4gdTE2eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0u Y3Rwb3AudjRpMTYiXQorLSAgICBmbiBjdHBvcF91MTZ4NCh4OiB1MTZ4NCkgLT4gdTE2eDQ7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjhpMTYiXQorLSAgICBmbiBjdHBvcF91MTZ4 OCh4OiB1MTZ4OCkgLT4gdTE2eDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjE2 aTE2Il0KKy0gICAgZm4gY3Rwb3BfdTE2eDE2KHg6IHUxNngxNikgLT4gdTE2eDE2OworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYzMmkxNiJdCistICAgIGZuIGN0cG9wX3UxNngzMih4 OiB1MTZ4MzIpIC0+IHUxNngzMjsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52 MmkzMiJdCistICAgIGZuIGN0cG9wX3UzMngyKHg6IHUzMngyKSAtPiB1MzJ4MjsKKy0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jdHBvcC52NGkzMiJdCistICAgIGZuIGN0cG9wX3UzMng0KHg6IHUz Mng0KSAtPiB1MzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52OGkzMiJdCist ICAgIGZuIGN0cG9wX3UzMng4KHg6IHUzMng4KSAtPiB1MzJ4ODsKKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdHBvcC52MTZpMzIiXQorLSAgICBmbiBjdHBvcF91MzJ4MTYoeDogdTMyeDE2KSAt PiB1MzJ4MTY7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjJpNjQiXQorLSAg ICBmbiBjdHBvcF91NjR4Mih4OiB1NjR4MikgLT4gdTY0eDI7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uY3Rwb3AudjRpNjQiXQorLSAgICBmbiBjdHBvcF91NjR4NCh4OiB1NjR4NCkgLT4gdTY0 eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjhpNjQiXQorLSAgICBmbiBjdHBv cF91NjR4OCh4OiB1NjR4OCkgLT4gdTY0eDg7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0u Y3Rwb3AudjFpMTI4Il0KKy0gICAgZm4gY3Rwb3BfdTEyOHgxKHg6IHUxMjh4MSkgLT4gdTEyOHgx OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTEyOCJdCistICAgIGZuIGN0cG9w X3UxMjh4Mih4OiB1MTI4eDIpIC0+IHUxMjh4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dHBvcC52NGkxMjgiXQorLSAgICBmbiBjdHBvcF91MTI4eDQoeDogdTEyOHg0KSAtPiB1MTI4eDQ7 CistfQorLQorLXB1YihjcmF0ZSkgdHJhaXQgQml0TWFuaXAgeworLSAgICBmbiBjdHBvcChzZWxm KSAtPiBTZWxmOworLSAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGY7CistICAgIGZuIGN0dHooc2Vs ZikgLT4gU2VsZjsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfYml0X21hbmlwIHsKKy0gICAg KGlubmVyOiAkdHk6aWRlbnQsICRzY2FsYXI6dHksICR1dHk6aWRlbnQsCistICAgICAkY3Rwb3A6 aWRlbnQsICRjdGx6OmlkZW50LCAkY3R0ejppZGVudCkgPT4geworLSAgICAgICAgLy8gRklYTUU6 IHNldmVyYWwgTExWTSBpbnRyaW5zaWNzIGJyZWFrIG9uIHMzOTB4IGh0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTkyCistICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXQorLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2Nh bGFyOiAkdHksICRzY2FsYXIgfQorLSAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gInMz OTB4IikpXQorLSAgICAgICAgaW1wbCBCaXRNYW5pcCBmb3IgJHR5IHsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKKy0gICAgICAgICAgICAgICAgdW5z YWZlIHsgJGN0cG9wKHkpLmNhc3QoKSB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7CistICAgICAgICAgICAgICAgIC8v IHRoZSBjdHh4IGludHJpbnNpY3MgbmVlZCBjb21waWxlLXRpbWUgY29uc3RhbnQKKy0gICAgICAg ICAgICAgICAgLy8gYGlzX3plcm9fdW5kZWZgCistICAgICAgICAgICAgICAgIHVuc2FmZSB7ICRj dGx6KHksIGZhbHNlKS5jYXN0KCkgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgICAgICAgICB1bnNh ZmUgeyAkY3R0eih5LCBmYWxzZSkuY2FzdCgpIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistICAgIChzaXplZF9pbm5lcjogJHR5OmlkZW50LCAkc2NhbGFyOnR5LCAkdXR5 OmlkZW50KSA9PiB7CistICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXQorLSAg ICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2NhbGFyOiAkdHksICRzY2FsYXIgfQorLSAgICAgICAg I1tjZmcobm90KHRhcmdldF9hcmNoID0gInMzOTB4IikpXQorLSAgICAgICAgaW1wbCBCaXRNYW5p cCBmb3IgJHR5IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBjdHBv cChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNh c3QoKTsKKy0gICAgICAgICAgICAgICAgJHV0eTo6Y3Rwb3AoeSkuY2FzdCgpCistICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGN0bHooc2Vs ZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7 CistICAgICAgICAgICAgICAgICR1dHk6OmN0bHooeSkuY2FzdCgpCistICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGN0dHooc2VsZikgLT4g U2VsZiB7CistICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7CistICAg ICAgICAgICAgICAgICR1dHk6OmN0dHooeSkuY2FzdCgpCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLSAgICAoc2NhbGFyOiAkdHk6aWRlbnQsICRzY2FsYXI6dHkpID0+IHsK Ky0gICAgICAgIGltcGwgQml0TWFuaXAgZm9yICR0eSB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg IGxldCBtdXQgb25lcyA9IHNlbGY7CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLlNlbGY6 OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgb25lcyA9IG9uZXMucmVwbGFjZShpLCBz ZWxmLmV4dHJhY3QoaSkuY291bnRfb25lcygpIGFzICRzY2FsYXIpOworLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIG9uZXMKKy0gICAgICAgICAgICB9CistCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gY3RseihzZWxmKSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgbGV0IG11dCBseiA9IHNlbGY7CistICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLlNlbGY6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgbHogPSBsei5yZXBsYWNl KGksIHNlbGYuZXh0cmFjdChpKS5sZWFkaW5nX3plcm9zKCkgYXMgJHNjYWxhcik7CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgbHoKKy0gICAgICAgICAgICB9CistCistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgbGV0IG11dCB0eiA9IHNlbGY7CistICAgICAgICAgICAgICAgIGZv ciBpIGluIDAuLlNlbGY6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgdHogPSB0ei5y ZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpKS50cmFpbGluZ196ZXJvcygpIGFzICRzY2FsYXIpOwor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHR6CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLSAgICAoJHV0eTppZGVudCwgJHVzY2FsYXI6dHksICRpdHk6 aWRlbnQsICRpc2NhbGFyOnR5LAorLSAgICAgJGN0cG9wOmlkZW50LCAkY3RsejppZGVudCwgJGN0 dHo6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IGlubmVyOiAkdXR5LCAk dXNjYWxhciwgJHV0eSwgJGN0cG9wLCAkY3RseiwgJGN0dHogfQorLSAgICAgICAgaW1wbF9iaXRf bWFuaXAhIHsgaW5uZXI6ICRpdHksICRpc2NhbGFyLCAkdXR5LCAkY3Rwb3AsICRjdGx6LCAkY3R0 eiB9CistICAgIH07CistICAgIChzaXplZDogJHVzaXplOmlkZW50LCAkdXNjYWxhcjp0eSwgJGlz aXplOmlkZW50LAorLSAgICAgJGlzY2FsYXI6dHksICR0eTppZGVudCkgPT4geworLSAgICAgICAg aW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWRfaW5uZXI6ICR1c2l6ZSwgJHVzY2FsYXIsICR0eSB9Cist ICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZF9pbm5lcjogJGlzaXplLCAkaXNjYWxhciwg JHR5IH0KKy0gICAgfTsKKy19CistCistaW1wbF9iaXRfbWFuaXAhIHsgdTh4MiAgICwgICB1OCwg aTh4MiwgaTgsICAgY3Rwb3BfdTh4MiwgICBjdGx6X3U4eDIsICAgY3R0el91OHgyICAgfQorLWlt cGxfYml0X21hbmlwISB7IHU4eDQgICAsICAgdTgsIGk4eDQsIGk4LCAgIGN0cG9wX3U4eDQsICAg Y3Rsel91OHg0LCAgIGN0dHpfdTh4NCAgIH0KKy0jW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIpKV0gLy8gc2VlIGJlbG93CistaW1wbF9iaXRfbWFuaXAhIHsgdTh4OCAgICwgICB1OCwg aTh4OCwgaTgsICAgY3Rwb3BfdTh4OCwgICBjdGx6X3U4eDgsICAgY3R0el91OHg4ICAgfQorLWlt cGxfYml0X21hbmlwISB7IHU4eDE2ICAsICB1OCwgaTh4MTYsIGk4LCAgY3Rwb3BfdTh4MTYsICBj dGx6X3U4eDE2LCAgY3R0el91OHgxNiAgfQorLWltcGxfYml0X21hbmlwISB7IHU4eDMyICAsICB1 OCwgaTh4MzIsIGk4LCAgY3Rwb3BfdTh4MzIsICBjdGx6X3U4eDMyLCAgY3R0el91OHgzMiAgfQor LWltcGxfYml0X21hbmlwISB7IHU4eDY0ICAsICB1OCwgaTh4NjQsIGk4LCAgY3Rwb3BfdTh4NjQs ICBjdGx6X3U4eDY0LCAgY3R0el91OHg2NCAgfQorLWltcGxfYml0X21hbmlwISB7IHUxNngyICAs ICB1MTYsIGkxNngyLCBpMTYsICBjdHBvcF91MTZ4MiwgIGN0bHpfdTE2eDIsICBjdHR6X3UxNngy ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTE2eDQgICwgIHUxNiwgaTE2eDQsIGkxNiwgIGN0cG9w X3UxNng0LCAgY3Rsel91MTZ4NCwgIGN0dHpfdTE2eDQgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1 MTZ4OCAgLCAgdTE2LCBpMTZ4OCwgaTE2LCAgY3Rwb3BfdTE2eDgsICBjdGx6X3UxNng4LCAgY3R0 el91MTZ4OCAgfQorLWltcGxfYml0X21hbmlwISB7IHUxNngxNiAsIHUxNiwgaTE2eDE2LCBpMTYs IGN0cG9wX3UxNngxNiwgY3Rsel91MTZ4MTYsIGN0dHpfdTE2eDE2IH0KKy1pbXBsX2JpdF9tYW5p cCEgeyB1MTZ4MzIgLCB1MTYsIGkxNngzMiwgaTE2LCBjdHBvcF91MTZ4MzIsIGN0bHpfdTE2eDMy LCBjdHR6X3UxNngzMiB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTMyeDIgICwgIHUzMiwgaTMyeDIs IGkzMiwgIGN0cG9wX3UzMngyLCAgY3Rsel91MzJ4MiwgIGN0dHpfdTMyeDIgIH0KKy1pbXBsX2Jp dF9tYW5pcCEgeyB1MzJ4NCAgLCAgdTMyLCBpMzJ4NCwgaTMyLCAgY3Rwb3BfdTMyeDQsICBjdGx6 X3UzMng0LCAgY3R0el91MzJ4NCAgfQorLWltcGxfYml0X21hbmlwISB7IHUzMng4ICAsICB1MzIs IGkzMng4LCBpMzIsICBjdHBvcF91MzJ4OCwgIGN0bHpfdTMyeDgsICBjdHR6X3UzMng4ICB9Cist aW1wbF9iaXRfbWFuaXAhIHsgdTMyeDE2ICwgdTMyLCBpMzJ4MTYsIGkzMiwgY3Rwb3BfdTMyeDE2 LCBjdGx6X3UzMngxNiwgY3R0el91MzJ4MTYgfQorLWltcGxfYml0X21hbmlwISB7IHU2NHgyICAs ICB1NjQsIGk2NHgyLCBpNjQsICBjdHBvcF91NjR4MiwgIGN0bHpfdTY0eDIsICBjdHR6X3U2NHgy ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTY0eDQgICwgIHU2NCwgaTY0eDQsIGk2NCwgIGN0cG9w X3U2NHg0LCAgY3Rsel91NjR4NCwgIGN0dHpfdTY0eDQgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1 NjR4OCAgLCAgdTY0LCBpNjR4OCwgaTY0LCAgY3Rwb3BfdTY0eDgsICBjdGx6X3U2NHg4LCAgY3R0 el91NjR4OCAgfQorLWltcGxfYml0X21hbmlwISB7IHUxMjh4MSAsIHUxMjgsIGkxMjh4MSwgaTEy OCwgY3Rwb3BfdTEyOHgxLCBjdGx6X3UxMjh4MSwgY3R0el91MTI4eDEgfQorLWltcGxfYml0X21h bmlwISB7IHUxMjh4MiAsIHUxMjgsIGkxMjh4MiwgaTEyOCwgY3Rwb3BfdTEyOHgyLCBjdGx6X3Ux Mjh4MiwgY3R0el91MTI4eDIgfQorLWltcGxfYml0X21hbmlwISB7IHUxMjh4NCAsIHUxMjgsIGkx Mjh4NCwgaTEyOCwgY3Rwb3BfdTEyOHg0LCBjdGx6X3UxMjh4NCwgY3R0el91MTI4eDQgfQorLQor LSNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy1pbXBsIEJpdE1hbmlwIGZvciB1OHg4 IHsKKy0gICAgI1tpbmxpbmVdCistICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGYgeworLSAgICAg ICAgbGV0IHk6IHU4eDggPSBzZWxmLmNhc3QoKTsKKy0gICAgICAgIHVuc2FmZSB7IGN0cG9wX3U4 eDgoeSkuY2FzdCgpIH0KKy0gICAgfQorLQorLSAgICAjW2lubGluZV0KKy0gICAgZm4gY3Rseihz ZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgIGxldCB5OiB1OHg4ID0gc2VsZi5jYXN0KCk7CistICAg ICAgICB1bnNhZmUgeyBjdGx6X3U4eDgoeSwgZmFsc2UpLmNhc3QoKSB9CistICAgIH0KKy0KKy0g ICAgI1tpbmxpbmVdCistICAgIGZuIGN0dHooc2VsZikgLT4gU2VsZiB7CistICAgICAgICAvLyBG SVhNRTogTExWTSBjdHR6LnY4aTggYnJva2VuIG9uIGFhcmNoNjQgaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xOTEKKy0gICAgICAgIC8vIE9Q VElNSVpFOiBhZGFwdCB0aGUgYWxnb3JpdGhtIHVzZWQgZm9yIHY4aTE2L2V0YyB0byBSdXN0J3Mg YWFyY2g2NAorLSAgICAgICAgLy8gaW50cmluc2ljcworLSAgICAgICAgbGV0IG11dCB0eiA9IHNl bGY7CistICAgICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsKKy0gICAgICAgICAgICB0 eiA9IHR6LnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGkpLnRyYWlsaW5nX3plcm9zKCkgYXMgdTgp OworLSAgICAgICAgfQorLSAgICAgICAgdHoKKy0gICAgfQorLX0KKy0jW2NmZyh0YXJnZXRfYXJj aCA9ICJhYXJjaDY0IildCistaW1wbCBCaXRNYW5pcCBmb3IgaTh4OCB7CistICAgICNbaW5saW5l XQorLSAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgIGxldCB5OiB1OHg4ID0g c2VsZi5jYXN0KCk7CistICAgICAgICB1bnNhZmUgeyBjdHBvcF91OHg4KHkpLmNhc3QoKSB9Cist ICAgIH0KKy0KKy0gICAgI1tpbmxpbmVdCistICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZiB7Cist ICAgICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgdW5zYWZlIHsgY3Rs el91OHg4KHksIGZhbHNlKS5jYXN0KCkgfQorLSAgICB9CistCistICAgICNbaW5saW5lXQorLSAg ICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgLy8gRklYTUU6IExMVk0gY3R0ei52 OGk4IGJyb2tlbiBvbiBhYXJjaDY0IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTkxCistICAgICAgICAvLyBPUFRJTUlaRTogYWRhcHQgdGhl IGFsZ29yaXRobSB1c2VkIGZvciB2OGkxNi9ldGMgdG8gUnVzdCdzIGFhcmNoNjQKKy0gICAgICAg IC8vIGludHJpbnNpY3MKKy0gICAgICAgIGxldCBtdXQgdHogPSBzZWxmOworLSAgICAgICAgZm9y IGkgaW4gMC4uU2VsZjo6bGFuZXMoKSB7CistICAgICAgICAgICAgdHogPSB0ei5yZXBsYWNlKGks IHNlbGYuZXh0cmFjdChpKS50cmFpbGluZ196ZXJvcygpIGFzIGk4KTsKKy0gICAgICAgIH0KKy0g ICAgICAgIHR6CistICAgIH0KKy19CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdl dF9wb2ludGVyX3dpZHRoID0gIjgiKV0geworLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6 ZWQ6IHVzaXpleDIsIHVzaXplLCBpc2l6ZXgyLCBpc2l6ZSwgdTh4MiB9CistICAgICAgICBpbXBs X2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4NCwgdXNpemUsIGlzaXpleDQsIGlzaXplLCB1OHg0 IH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNp emV4OCwgaXNpemUsIHU4eDggfQorLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJf d2lkdGggPSAiMTYiKV0geworLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpl eDIsIHVzaXplLCBpc2l6ZXgyLCBpc2l6ZSwgdTE2eDIgfQorLSAgICAgICAgaW1wbF9iaXRfbWFu aXAhIHsgc2l6ZWQ6IHVzaXpleDQsIHVzaXplLCBpc2l6ZXg0LCBpc2l6ZSwgdTE2eDQgfQorLSAg ICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDgsIHVzaXplLCBpc2l6ZXg4LCBp c2l6ZSwgdTE2eDggfQorLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGgg PSAiMzIiKV0geworLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDIsIHVz aXplLCBpc2l6ZXgyLCBpc2l6ZSwgdTMyeDIgfQorLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsg c2l6ZWQ6IHVzaXpleDQsIHVzaXplLCBpc2l6ZXg0LCBpc2l6ZSwgdTMyeDQgfQorLSAgICAgICAg aW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDgsIHVzaXplLCBpc2l6ZXg4LCBpc2l6ZSwg dTMyeDggfQorLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQi KV0geworLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDIsIHVzaXplLCBp c2l6ZXgyLCBpc2l6ZSwgdTY0eDIgfQorLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6 IHVzaXpleDQsIHVzaXplLCBpc2l6ZXg0LCBpc2l6ZSwgdTY0eDQgfQorLSAgICAgICAgaW1wbF9i aXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDgsIHVzaXplLCBpc2l6ZXg4LCBpc2l6ZSwgdTY0eDgg fQorLSAgICB9IGVsc2UgeworLSAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRh cmdldF9wb2ludGVyX3dpZHRoIik7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9sbHZtLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9sbHZtLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsMTIyICswLDAgQEAKKy0vLyEgTExWTSdzIHBsYXRmb3Jt IGludHJpbnNpY3MKKy0jIVthbGxvdyhkZWFkX2NvZGUpXQorLQorLXVzZSBjcmF0ZTo6c2VhbGVk OjpTaHVmZmxlOworLSNbYWxsb3codW51c2VkX2ltcG9ydHMpXSAvLyBGSVhNRTogc3B1cmlvdXMg d2FybmluZz8KKy11c2UgY3JhdGU6OnNlYWxlZDo6U2ltZDsKKy0KKy1leHRlcm4gInBsYXRmb3Jt LWludHJpbnNpYyIgeworLSAgICBmbiBzaW1kX3NodWZmbGU8VCwgSSwgVT4oeDogVCwgeTogVCwg aWR4OiBJKSAtPiBVOworLX0KKy0KKy0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19zYWZldHlfZG9j KV0KKy0jW2lubGluZV0KKy1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92ZWN0b3IyPGNvbnN0IElE WDogW3UzMjsgMl0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKKy13aGVyZQorLSAgICBUOiBTaW1k LAorLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyAyXSwgT3V0cHV0ID0g VT4sCisteworLSAgICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQorLX0KKy0KKy0jW2FsbG93KGNs aXBweTo6bWlzc2luZ19zYWZldHlfZG9jKV0KKy0jW2lubGluZV0KKy1wdWIgdW5zYWZlIGZuIF9f c2h1ZmZsZV92ZWN0b3I0PGNvbnN0IElEWDogW3UzMjsgNF0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+ IFUKKy13aGVyZQorLSAgICBUOiBTaW1kLAorLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1 ZmZsZTxbdTMyOyA0XSwgT3V0cHV0ID0gVT4sCisteworLSAgICBzaW1kX3NodWZmbGUoeCwgeSwg SURYKQorLX0KKy0KKy0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19zYWZldHlfZG9jKV0KKy0jW2lu bGluZV0KKy1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92ZWN0b3I4PGNvbnN0IElEWDogW3UzMjsg OF0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKKy13aGVyZQorLSAgICBUOiBTaW1kLAorLSAgICA8 VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyA4XSwgT3V0cHV0ID0gVT4sCistewor LSAgICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQorLX0KKy0KKy0jW2FsbG93KGNsaXBweTo6bWlz c2luZ19zYWZldHlfZG9jKV0KKy0jW2lubGluZV0KKy1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92 ZWN0b3IxNjxjb25zdCBJRFg6IFt1MzI7IDE2XSwgVCwgVT4oeDogVCwgeTogVCkgLT4gVQorLXdo ZXJlCistICAgIFQ6IFNpbWQsCistICAgIDxUIGFzIFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1 MzI7IDE2XSwgT3V0cHV0ID0gVT4sCisteworLSAgICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQor LX0KKy0KKy0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19zYWZldHlfZG9jKV0KKy0jW2lubGluZV0K Ky1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92ZWN0b3IzMjxjb25zdCBJRFg6IFt1MzI7IDMyXSwg VCwgVT4oeDogVCwgeTogVCkgLT4gVQorLXdoZXJlCistICAgIFQ6IFNpbWQsCistICAgIDxUIGFz IFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1MzI7IDMyXSwgT3V0cHV0ID0gVT4sCisteworLSAg ICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQorLX0KKy0KKy0jW2FsbG93KGNsaXBweTo6bWlzc2lu Z19zYWZldHlfZG9jKV0KKy0jW2lubGluZV0KKy1wdWIgdW5zYWZlIGZuIF9fc2h1ZmZsZV92ZWN0 b3I2NDxjb25zdCBJRFg6IFt1MzI7IDY0XSwgVCwgVT4oeDogVCwgeTogVCkgLT4gVQorLXdoZXJl CistICAgIFQ6IFNpbWQsCistICAgIDxUIGFzIFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1MzI7 IDY0XSwgT3V0cHV0ID0gVT4sCisteworLSAgICBzaW1kX3NodWZmbGUoeCwgeSwgSURYKQorLX0K Ky0KKy1leHRlcm4gInBsYXRmb3JtLWludHJpbnNpYyIgeworLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfZXE8VCwgVT4oeDogVCwgeTogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX25l PFQsIFU+KHg6IFQsIHk6IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9sdDxULCBV Pih4OiBULCB5OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbGU8VCwgVT4oeDog VCwgeTogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2d0PFQsIFU+KHg6IFQsIHk6 IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9nZTxULCBVPih4OiBULCB5OiBUKSAt PiBVOworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfaW5zZXJ0PFQsIFU+KHg6IFQsIGlkeDog dTMyLCB2YWw6IFUpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9leHRyYWN0PFQsIFU+ KHg6IFQsIGlkeDogdTMyKSAtPiBVOworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfY2FzdDxU LCBVPih4OiBUKSAtPiBVOworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfYWRkPFQ+KHg6IFQs IHk6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9zdWI8VD4oeDogVCwgeTogVCkg LT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX211bDxUPih4OiBULCB5OiBUKSAtPiBUOwor LSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZGl2PFQ+KHg6IFQsIHk6IFQpIC0+IFQ7CistICAgIHB1 YihjcmF0ZSkgZm4gc2ltZF9yZW08VD4oeDogVCwgeTogVCkgLT4gVDsKKy0gICAgcHViKGNyYXRl KSBmbiBzaW1kX3NobDxUPih4OiBULCB5OiBUKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfc2hyPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9hbmQ8 VD4oeDogVCwgeTogVCkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX29yPFQ+KHg6IFQs IHk6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF94b3I8VD4oeDogVCwgeTogVCkg LT4gVDsKKy0KKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9hZGRfdW5vcmRlcmVkPFQs IFU+KHg6IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfbXVsX3Vub3Jk ZXJlZDxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2Fk ZF9vcmRlcmVkPFQsIFU+KHg6IFQsIGFjYzogVSkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBz aW1kX3JlZHVjZV9tdWxfb3JkZXJlZDxULCBVPih4OiBULCBhY2M6IFUpIC0+IFU7CistICAgIHB1 YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfbWluPFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1Yihj cmF0ZSkgZm4gc2ltZF9yZWR1Y2VfbWF4PFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1YihjcmF0 ZSkgZm4gc2ltZF9yZWR1Y2VfbWluX25hbmxlc3M8VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHVi KGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9tYXhfbmFubGVzczxULCBVPih4OiBUKSAtPiBVOworLSAg ICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2FuZDxULCBVPih4OiBUKSAtPiBVOworLSAgICBw dWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX29yPFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1Yihj cmF0ZSkgZm4gc2ltZF9yZWR1Y2VfeG9yPFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1YihjcmF0 ZSkgZm4gc2ltZF9yZWR1Y2VfYWxsPFQ+KHg6IFQpIC0+IGJvb2w7CistICAgIHB1YihjcmF0ZSkg Zm4gc2ltZF9yZWR1Y2VfYW55PFQ+KHg6IFQpIC0+IGJvb2w7CistCistICAgIHB1YihjcmF0ZSkg Zm4gc2ltZF9zZWxlY3Q8TSwgVD4obTogTSwgYTogVCwgYjogVCkgLT4gVDsKKy0KKy0gICAgcHVi KGNyYXRlKSBmbiBzaW1kX2ZtaW48VD4oYTogVCwgYjogVCkgLT4gVDsKKy0gICAgcHViKGNyYXRl KSBmbiBzaW1kX2ZtYXg8VD4oYTogVCwgYjogVCkgLT4gVDsKKy0KKy0gICAgcHViKGNyYXRlKSBm biBzaW1kX2ZzcXJ0PFQ+KGE6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9mbWE8 VD4oYTogVCwgYjogVCwgYzogVCkgLT4gVDsKKy0KKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2dh dGhlcjxULCBQLCBNPih2YWx1ZTogVCwgcG9pbnRlcnM6IFAsIG1hc2s6IE0pIC0+IFQ7CistICAg IHB1YihjcmF0ZSkgZm4gc2ltZF9zY2F0dGVyPFQsIFAsIE0+KHZhbHVlOiBULCBwb2ludGVyczog UCwgbWFzazogTSk7CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9iaXRtYXNrPFQsIFU+KHZh bHVlOiBUKSAtPiBVOworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL21hdGgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoLnJzCisrKysgL2Rldi9udWxs CitAQCAtMSwzICswLDAgQEAKKy0vLyEgVmVydGljYWwgbWF0aCBvcGVyYXRpb25zCistCistcHVi KGNyYXRlKSBtb2QgZmxvYXQ7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTggKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBmbG9h dGluZy1wb2ludCBtYXRoIG9wZXJhdGlvbnMuCistIyFbYWxsb3coY2xpcHB5Ojp1c2VsZXNzX3Ry YW5zbXV0ZSldCistCistI1ttYWNyb191c2VdCistcHViKGNyYXRlKSBtb2QgbWFjcm9zOworLXB1 YihjcmF0ZSkgbW9kIGFiczsKKy1wdWIoY3JhdGUpIG1vZCBjb3M7CistcHViKGNyYXRlKSBtb2Qg Y29zX3BpOworLXB1YihjcmF0ZSkgbW9kIGV4cDsKKy1wdWIoY3JhdGUpIG1vZCBsbjsKKy1wdWIo Y3JhdGUpIG1vZCBtdWxfYWRkOworLXB1YihjcmF0ZSkgbW9kIG11bF9hZGRlOworLXB1YihjcmF0 ZSkgbW9kIHBvd2Y7CistcHViKGNyYXRlKSBtb2Qgc2luOworLXB1YihjcmF0ZSkgbW9kIHNpbl9j b3NfcGk7CistcHViKGNyYXRlKSBtb2Qgc2luX3BpOworLXB1YihjcmF0ZSkgbW9kIHNxcnQ7Cist cHViKGNyYXRlKSBtb2Qgc3FydGU7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0L2Ficy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTAzICswLDAgQEAKKy0v LyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGZhYnNgCistIyFbYWxsb3codW51c2VkKV0KKy0K Ky0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgZmFicworLQorLXVzZSBjcmF0ZTo6KjsK Ky0KKy1wdWIoY3JhdGUpIHRyYWl0IEFicyB7CistICAgIGZuIGFicyhzZWxmKSAtPiBTZWxmOwor LX0KKy0KKy0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCistZXh0ZXJuICJDIiB7CistICAgICNb bGlua19uYW1lID0gImxsdm0uZmFicy52MmYzMiJdCistICAgIGZuIGZhYnNfdjJmMzIoeDogZjMy eDIpIC0+IGYzMngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjRmMzIiXQorLSAg ICBmbiBmYWJzX3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5mYWJzLnY4ZjMyIl0KKy0gICAgZm4gZmFic192OGYzMih4OiBmMzJ4OCkgLT4gZjMyeDg7 CistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52MTZmMzIiXQorLSAgICBmbiBmYWJzX3Yx NmYzMih4OiBmMzJ4MTYpIC0+IGYzMngxNjsKKy0gICAgLyogRklYTUUgNjQtYml0IGZhYnNnbGUg ZWxlbSB2ZWN0b3JzCistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52MWY2NCJdCistICAg IGZuIGZhYnNfdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgxOworLSAgICAgKi8KKy0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5mYWJzLnYyZjY0Il0KKy0gICAgZm4gZmFic192MmY2NCh4OiBmNjR4Mikg LT4gZjY0eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52NGY2NCJdCistICAgIGZu IGZhYnNfdjRmNjQoeDogZjY0eDQpIC0+IGY2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmZhYnMudjhmNjQiXQorLSAgICBmbiBmYWJzX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKKy0K Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLmYzMiJdCistICAgIGZuIGZhYnNfZjMyKHg6 IGYzMikgLT4gZjMyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMuZjY0Il0KKy0gICAg Zm4gZmFic19mNjQoeDogZjY0KSAtPiBmNjQ7CistfQorLQorLWdlbl91bmFyeV9pbXBsX3RhYmxl IShBYnMsIGFicyk7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0g InMzOTB4IildIHsKKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0CistICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4MltmMzI7IDJdOiBmYWJzX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7 IDRdOiBmYWJzX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBmYWJz X2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IGZhYnNfZjMyKTsK Ky0KKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IGZhYnNfZjY0KTsKKy0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06IGZhYnNfZjY0KTsKKy0gICAgICAgIGltcGxf dW5hcnkhKGY2NHg4W2Y2NDsgOF06IGZhYnNfZjY0KTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKGFs bCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAg ICAgICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAg IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZmFic2Y0X2F2eDIxMjgpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2ZhYnNm OF9hdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06 IFNsZWVmX2ZhYnNkNF9hdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDQ6IFNsZWVmX2ZhYnNmNF9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDg6IFNsZWVmX2ZhYnNmOF9hdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IFNsZWVmX2ZhYnNkMl9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IFNsZWVmX2ZhYnNkNF9hdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tj ZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZhYnNmNF9zc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9mYWJzZjhfYXZ4KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2ZhYnNk NF9hdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZmFi c2Y0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfZmFi c2Y4X2F2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9mYWJz ZDJfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9mYWJz ZDRfYXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi c3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4 NF06IFNsZWVmX2ZhYnNmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9mYWJzZDJfc3NlNCk7CistCistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9mYWJzZjRfc3NlNCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRf c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9mYWJzZDJf c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBT bGVlZl9mYWJzZDJfc3NlNCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZmFic19mMzIpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGZhYnNfdjE2ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDg6IGZhYnNfdjhmNjQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4NDogZmFic192NGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz Mng4OiBmYWJzX3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGZh YnNfdjJmNjQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogZmFic192NGY2 NCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZmFic19mMzIpOworLSAgICAgICAgaW1wbF91bmFy eSEoZjMyeDQ6IGZhYnNfdjRmMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGZhYnNf djhmMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBmYWJzX3YxNmYzMik7CistCist ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogZmFic192MmY2NCk7CistICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4NDogZmFic192NGY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZmFi c192OGY2NCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3MucnMKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0L2Nvcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTAzICswLDAgQEAKKy0v LyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGNvc2AKKy0jIVthbGxvdyh1bnVzZWQpXQorLQor LS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9yIGNvcworLQorLXVzZSBjcmF0ZTo6KjsKKy0K Ky1wdWIoY3JhdGUpIHRyYWl0IENvcyB7CistICAgIGZuIGNvcyhzZWxmKSAtPiBTZWxmOworLX0K Ky0KKy0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCistZXh0ZXJuICJDIiB7CistICAgICNbbGlu a19uYW1lID0gImxsdm0uY29zLnYyZjMyIl0KKy0gICAgZm4gY29zX3YyZjMyKHg6IGYzMngyKSAt PiBmMzJ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjRmMzIiXQorLSAgICBmbiBj b3NfdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNv cy52OGYzMiJdCistICAgIGZuIGNvc192OGYzMih4OiBmMzJ4OCkgLT4gZjMyeDg7CistICAgICNb bGlua19uYW1lID0gImxsdm0uY29zLnYxNmYzMiJdCistICAgIGZuIGNvc192MTZmMzIoeDogZjMy eDE2KSAtPiBmMzJ4MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBjb3NnbGUgZWxlbSB2ZWN0b3Jz CistICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnYxZjY0Il0KKy0gICAgZm4gY29zX3YxZjY0 KHg6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAgICovCistICAgICNbbGlua19uYW1lID0gImxsdm0u Y29zLnYyZjY0Il0KKy0gICAgZm4gY29zX3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjRmNjQiXQorLSAgICBmbiBjb3NfdjRmNjQoeDogZjY0 eDQpIC0+IGY2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52OGY2NCJdCistICAg IGZuIGNvc192OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7CistCistICAgICNbbGlua19uYW1lID0g Imxsdm0uY29zLmYzMiJdCistICAgIGZuIGNvc19mMzIoeDogZjMyKSAtPiBmMzI7CistICAgICNb bGlua19uYW1lID0gImxsdm0uY29zLmY2NCJdCistICAgIGZuIGNvc19mNjQoeDogZjY0KSAtPiBm NjQ7CistfQorLQorLWdlbl91bmFyeV9pbXBsX3RhYmxlIShDb3MsIGNvcyk7CistCistY2ZnX2lm ISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKKy0gICAgICAgIC8v IEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv aXNzdWVzLzE0CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBjb3NfZjMyKTsK Ky0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IGNvc19mMzIpOworLSAgICAgICAg aW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogY29zX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4MTZbZjMyOyAxNl06IGNvc19mMzIpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDJbZjY0OyAyXTogY29zX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRd OiBjb3NfZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06IGNvc19mNjQp OworLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1 cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAg ICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4 MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBT bGVlZl9jb3NmNF91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9jb3NmOF91MTBhdngyKTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2Nvc2Q0X3UxMGF2eDIpOworLQor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zZjRfdTEwYXZ4MjEy OCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9jb3NmOF91MTBh dngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc2QyX3Ux MGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfY29z ZDRfdTEwYXZ4Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMy eDRdOiBTbGVlZl9jb3NmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9jb3NmOF91MTBhdngpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfY29zZDRfdTEwYXZ4KTsKKy0K Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc2Y0X3UxMHNzZTQp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfY29zZjhfdTEwYXZ4 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc2QyX3UxMHNz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfY29zZDRfdTEw YXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3Nl NC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfY29zZDJfdTEwc3NlNCk7CistCist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NmNF91MTBzc2U0KTsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2Nv c2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZf Y29zZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4g ZjY0eDJdOiBTbGVlZl9jb3NkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBjb3NfZjMyKTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBjb3NfdjE2ZjMyKTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGNvc192OGY2NCk7CistCistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMng0OiBjb3NfdjRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4ODogY29zX3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDI6IGNvc192MmY2NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBjb3Nf djRmNjQpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAg ICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGNvc19mMzIpOworLSAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDQ6IGNvc192NGYzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogY29z X3Y4ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogY29zX3YxNmYzMik7CistCist ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogY29zX3YyZjY0KTsKKy0gICAgICAgIGltcGxfdW5h cnkhKGY2NHg0OiBjb3NfdjRmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGNvc192 OGY2NCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3NfcGkucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsODcgKzAsMCBA QAorLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgY29zYAorLSMhW2FsbG93KHVudXNlZCld CistCistLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIGNvc19waQorLQorLXVzZSBjcmF0 ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IENvc1BpIHsKKy0gICAgZm4gY29zX3BpKHNlbGYp IC0+IFNlbGY7CistfQorLQorLWdlbl91bmFyeV9pbXBsX3RhYmxlIShDb3NQaSwgY29zX3BpKTsK Ky0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWYgeworLSAgICAoJHZpZDppZGVudCwgJFBJOnBhdGgp ID0+IHsKKy0gICAgICAgIGltcGwgQ29zUGkgZm9yICR2aWQgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGNvc19waShzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgKHNlbGYgKiBTZWxmOjpzcGxhdCgkUEkpKS5jb3MoKQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CistbWFjcm9fcnVsZXMhIGltcGxfZGVmMzIgeworLSAgICAo JHZpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmMzI6OmNv bnN0czo6UEkpOworLSAgICB9OworLX0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWY2NCB7CistICAg ICgkdmlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmY2NDo6 Y29uc3RzOjpQSSk7CistICAgIH07CistfQorLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyhh bGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0g ICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAg ICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2Nvc3BpZjRfdTA1YXZ4MjEyOCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZf Y29zcGlmOF91MDVhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9 PiBmNjR4NF06IFNsZWVmX2Nvc3BpZDRfdTA1YXZ4Mik7CistCistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NwaWY0X3UwNWF2eDIxMjgpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfY29zcGlmOF91MDVhdngyKTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc3BpZDJfdTA1YXZ4MjEyOCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NwaWQ0X3UwNWF2eDIp OworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0g eworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZf Y29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2gg PT4gZjMyeDhdOiBTbGVlZl9jb3NwaWY4X3UwNWF2eCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9jb3NwaWQ0X3UwNWF2eCk7CistCistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NwaWY0X3UwNXNzZTQpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfY29zcGlmOF91MDVhdngp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zcGlkMl91MDVz c2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc3BpZDRf dTA1YXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi c3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4 NF06IFNsZWVmX2Nvc3BpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2Nvc3BpZDJfdTA1c3Nl NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NwaWY0 X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0 XTogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IFNsZWVmX2Nvc3BpZDJfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9jb3NwaWQyX3UwNXNzZTQpOworLSAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngyKTsKKy0gICAg ICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOworLSAgICAgICAgICAgICAgICBpbXBsX2Rl ZjMyIShmMzJ4OCk7CistICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7CistCist ICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKKy0gICAgICAgICAgICAgICAgaW1w bF9kZWY2NCEoZjY0eDQpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaW1wbF9k ZWYzMiEoZjMyeDIpOworLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOworLSAgICAgICAgaW1w bF9kZWYzMiEoZjMyeDgpOworLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKKy0KKy0gICAg ICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKKy0gICAgICAgIGltcGxfZGVmNjQhKGY2NHg0KTsKKy0g ICAgICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvZXhwLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvZXhwLnJzCisrKysgL2Rldi9udWxsCitAQCAt MSwxMTIgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgZXhwYAorLSMhW2Fs bG93KHVudXNlZCldCistCistLy8gRklYTUUgNjQtYml0IGV4cGdsZSBlbGVtIHZlY3RvcnMgbWlz ZXhwZworLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IEV4cCB7CistICAg IGZuIGV4cChzZWxmKSAtPiBTZWxmOworLX0KKy0KKy0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyld CistZXh0ZXJuICJDIiB7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnYyZjMyIl0KKy0g ICAgZm4gZXhwX3YyZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5leHAudjRmMzIiXQorLSAgICBmbiBleHBfdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0Owor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52OGYzMiJdCistICAgIGZuIGV4cF92OGYzMih4 OiBmMzJ4OCkgLT4gZjMyeDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnYxNmYzMiJd CistICAgIGZuIGV4cF92MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7CistICAgIC8qIEZJWE1F IDY0LWJpdCBleHBnbGUgZWxlbSB2ZWN0b3JzCistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhw LnYxZjY0Il0KKy0gICAgZm4gZXhwX3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAgICov CistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnYyZjY0Il0KKy0gICAgZm4gZXhwX3YyZjY0 KHg6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjRmNjQi XQorLSAgICBmbiBleHBfdjRmNjQoeDogZjY0eDQpIC0+IGY2NHg0OworLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmV4cC52OGY2NCJdCistICAgIGZuIGV4cF92OGY2NCh4OiBmNjR4OCkgLT4gZjY0 eDg7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLmYzMiJdCistICAgIGZuIGV4cF9m MzIoeDogZjMyKSAtPiBmMzI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLmY2NCJdCist ICAgIGZuIGV4cF9mNjQoeDogZjY0KSAtPiBmNjQ7CistfQorLQorLWdlbl91bmFyeV9pbXBsX3Rh YmxlIShFeHAsIGV4cCk7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNo ID0gInMzOTB4IildIHsKKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0CistICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4MltmMzI7IDJdOiBleHBfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2Yz MjsgNF06IGV4cF9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogZXhw X2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IGV4cF9mMzIpOwor LQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDJbZjY0OyAyXTogZXhwX2Y2NCk7CistICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRdOiBleHBfZjY0KTsKKy0gICAgICAgIGltcGxfdW5h cnkhKGY2NHg4W2Y2NDsgOF06IGV4cF9mNjQpOworLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRh cmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAg ICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYg I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBhdngyMTI4KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9leHBmOF91 MTBhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06 IFNsZWVmX2V4cGQ0X3UxMGF2eDIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4NDogU2xlZWZfZXhwZjRfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng4OiBTbGVlZl9leHBmOF91MTBhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDI6IFNsZWVmX2V4cGQyX3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfZXhwZDRfdTEwYXZ4Mik7CistICAgICAgICAgICAgfSBl bHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9leHBm OF91MTBhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0 XTogU2xlZWZfZXhwZDRfdTEwYXZ4KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDQ6IFNsZWVmX2V4cGY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4ODogU2xlZWZfZXhwZjhfdTEwYXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDI6IFNsZWVmX2V4cGQyX3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4NDogU2xlZWZfZXhwZDRfdTEwYXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYg I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTQpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3Ux MHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTog U2xlZWZfZXhwZDJfdTEwc3NlNCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz Mng0OiBTbGVlZl9leHBmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZXhwZDJfdTEwc3NlNCk7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9leHBkMl91MTBzc2U0KTsK Ky0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9l eHBmNF91MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4g ZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTIpOworLQorLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZXhwZjRfdTEwc3NlMik7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBz c2UyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2V4cGQyX3Ux MHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTog U2xlZWZfZXhwZDJfdTEwc3NlMik7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZXhwX2YzMik7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNjogZXhwX3YxNmYzMik7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4OiBleHBfdjhmNjQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4NDogZXhwX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDg6IGV4cF92OGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBleHBf djJmNjQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogZXhwX3Y0ZjY0KTsK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBleHBfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYz Mng0OiBleHBfdjRmMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGV4cF92OGYzMik7 CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGV4cF92MTZmMzIpOworLQorLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IGV4cF92MmY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NDogZXhwX3Y0ZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBleHBfdjhmNjQpOwor LSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9sbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9sbi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv bG4ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDExMiArMCwwIEBACistLy8hIFZlcnRpY2FsIGZs b2F0aW5nLXBvaW50IGBsbmAKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8vIEZJWE1FIDY0LWJp dCBsbmdsZSBlbGVtIHZlY3RvcnMgbWlzbG5nCistCistdXNlIGNyYXRlOjoqOworLQorLXB1Yihj cmF0ZSkgdHJhaXQgTG4geworLSAgICBmbiBsbihzZWxmKSAtPiBTZWxmOworLX0KKy0KKy0jW2Fs bG93KGltcHJvcGVyX2N0eXBlcyldCistZXh0ZXJuICJDIiB7CistICAgICNbbGlua19uYW1lID0g Imxsdm0ubG9nLnYyZjMyIl0KKy0gICAgZm4gbG5fdjJmMzIoeDogZjMyeDIpIC0+IGYzMngyOwor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52NGYzMiJdCistICAgIGZuIGxuX3Y0ZjMyKHg6 IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjhmMzIiXQor LSAgICBmbiBsbl92OGYzMih4OiBmMzJ4OCkgLT4gZjMyeDg7CistICAgICNbbGlua19uYW1lID0g Imxsdm0ubG9nLnYxNmYzMiJdCistICAgIGZuIGxuX3YxNmYzMih4OiBmMzJ4MTYpIC0+IGYzMngx NjsKKy0gICAgLyogRklYTUUgNjQtYml0IGxuZ2xlIGVsZW0gdmVjdG9ycworLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmxvZy52MWY2NCJdCistICAgIGZuIGxuX3YxZjY0KHg6IGY2NHgxKSAtPiBm NjR4MTsKKy0gICAgICovCistICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnYyZjY0Il0KKy0g ICAgZm4gbG5fdjJmNjQoeDogZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmxvZy52NGY2NCJdCistICAgIGZuIGxuX3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjhmNjQiXQorLSAgICBmbiBsbl92OGY2NCh4OiBm NjR4OCkgLT4gZjY0eDg7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLmYzMiJdCist ICAgIGZuIGxuX2YzMih4OiBmMzIpIC0+IGYzMjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5s b2cuZjY0Il0KKy0gICAgZm4gbG5fZjY0KHg6IGY2NCkgLT4gZjY0OworLX0KKy0KKy1nZW5fdW5h cnlfaW1wbF90YWJsZSEoTG4sIGxuKTsKKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcodGFy Z2V0X2FyY2ggPSAiczM5MHgiKV0geworLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKKy0gICAgICAgIGlt cGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGxuX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4NFtmMzI7IDRdOiBsbl9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4 XTogbG5fZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltmMzI7IDE2XTogbG5fZjMy KTsKKy0KKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IGxuX2Y2NCk7CistICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRdOiBsbl9mNjQpOworLSAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDhbZjY0OyA4XTogbG5fZjY0KTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0 YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAg ICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlm ICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwYXZ4MjEyOCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfbG9nZjhf dTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRd OiBTbGVlZl9sb2dkNF91MTBhdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDQ6IFNsZWVmX2xvZ2Y0X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4ODogU2xlZWZfbG9nZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2xvZ2Q0X3UxMGF2eDIpOworLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfbG9n ZjhfdTEwYXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4 NF06IFNsZWVmX2xvZ2Q0X3UxMGF2eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng0OiBTbGVlZl9sb2dmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDg6IFNsZWVmX2xvZ2Y4X3UxMGF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDQ6IFNsZWVmX2xvZ2Q0X3UxMGF2eCk7CistICAgICAgICAgICAgfSBlbHNlIGlm ICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBzc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91 MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06 IFNsZWVmX2xvZ2QyX3UxMHNzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4NDogU2xlZWZfbG9nZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2xvZ2QyX3UxMHNzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfbG9nZDJfdTEwc3NlNCk7 CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0g eworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZf bG9nZjRfdTEwc3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+ IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9sb2dkMl91MTBzc2UyKTsKKy0KKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEw c3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91 MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06 IFNsZWVmX2xvZ2QyX3UxMHNzZTIpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGxuX2YzMik7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNjogbG5fdjE2ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDg6IGxuX3Y4ZjY0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDQ6IGxuX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6 IGxuX3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGxuX3YyZjY0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGxuX3Y0ZjY0KTsKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4MltmMzI7IDJdOiBsbl9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGxu X3Y0ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBsbl92OGYzMik7CistICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGxuX3YxNmYzMik7CistCistICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4MjogbG5fdjJmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGxuX3Y0ZjY0 KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBsbl92OGY2NCk7CistICAgIH0KKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L21hY3Jvcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L21hY3Jv cy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDcwICswLDAgQEAKKy0vLyEgVXRpbGl0eSBtYWNy b3MKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLW1hY3JvX3J1bGVzISBpbXBsX3VuYXJ5XyB7Cist ICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBpbmcgMToxCistICAgICh2ZWMgfCAkdHJhaXRfaWQ6 aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAkZnVuOmlk ZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUo JGZ1bih0cmFuc211dGUoc2VsZikpKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBtYXBwaW5nIDE6 MSBmb3Igd2hlbiBgJGZ1bmAgaXMgYSBnZW5lcmljIGZ1bmN0aW9uCistICAgIC8vIGxpa2Ugc29t ZSBvZiB0aGUgZnAgbWF0aCBydXN0YyBpbnRyaW5zaWNzIChlLmcuIGBmbiBmdW48VD4oeDogVCkg LT4gVGApLgorLSAgICAoZ2VuIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50 LCAkdmVjX2lkOmlkZW50LAorLSAgICAgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAk dHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwor LSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4oc2VsZi4wKSkKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKHNjYWxh ciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwKKy0gICAgICR2ZWNfaWQ6 aWRlbnQsIFskc2lkOmlkZW50OyAkc2NvdW50OmV4cHJdLCAkZnVuOmlkZW50KSA9PiB7CistICAg ICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICBzY2FsYXJzOiBbJHNpZDsgJHNjb3VudF0sCistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHNjYWxhcnMgPSBVIHsgdmVjOiBzZWxmIH0uc2NhbGFy czsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluICZtdXQgc2NhbGFycyB7CistICAgICAg ICAgICAgICAgICAgICAgICAgKmkgPSAkZnVuKCppKTsKKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgIFUgeyBzY2FsYXJzIH0udmVjCistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVu dGF0aW9uIGNhbGxpbmcgZnVuIHR3aWNlIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBoYWx2ZXM6Cist ICAgIChoYWx2ZXMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNf aWQ6aWRlbnQsCistICAgICAkdmVjaF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAg ICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAg ICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJh bnNtdXRlOworLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczog WyR2ZWNoX2lkOyAyXSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICpoYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUo JGZ1bih0cmFuc211dGUoKmhhbHZlcy5nZXRfdW5jaGVja2VkKDApKSkpOworLSAgICAgICAgICAg ICAgICAgICAgKmhhbHZlcy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKHRy YW5zbXV0ZSgqaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpKSk7CistCistICAgICAgICAgICAgICAg ICAgICBVIHsgaGFsdmVzIH0udmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVu IGZvdXIgdGltZXMgb24gZWFjaCBvZiB0aGUgdmVjdG9yIHF1YXJ0ZXJzOgorLSAgICAocXVhcnRl ciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwK Ky0gICAgICR2ZWNxX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0 cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5z YWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Cist ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6IFskdmVjcV9p ZDsgNF0sCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHF1YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0ZXJzOworLQorLSAgICAgICAg ICAgICAgICAgICAgKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRm dW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSkpOworLSAgICAgICAgICAg ICAgICAgICAgKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4o dHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDEpKSkpOworLSAgICAgICAgICAgICAg ICAgICAgKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDIpID0gdHJhbnNtdXRlKCRmdW4odHJh bnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSkpOworLSAgICAgICAgICAgICAgICAg ICAgKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDMpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNt dXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSkpOworLQorLSAgICAgICAgICAgICAgICAg ICAgVSB7IHF1YXJ0ZXJzIH0udmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVu IG9uY2Ugb24gYSB2ZWN0b3IgdHdpY2UgYXMgbGFyZ2U6CistICAgICh0d2ljZSB8ICR0cmFpdF9p ZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAgICR2ZWN0 X2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3Ig JHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0 X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp7dHJhbnNtdXRlLCB1bmluaXRpYWxpemVk fTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIHZlYzogWyR2ZWNfaWQ7IDJdLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHR3aWNl OiAkdmVjdF9pZCwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAg ICAgIGxldCB0d2ljZSA9IFUgeyB2ZWM6IFtzZWxmLCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7 CistICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2UgPSB0cmFuc211dGUoJGZ1bih0cmFuc211 dGUodHdpY2UpKSk7CistCistICAgICAgICAgICAgICAgICAgICAqKFUgeyB0d2ljZSB9LnZlYy5n ZXRfdW5jaGVja2VkKDApKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgZ2VuX3VuYXJ5X2ltcGxfdGFi bGUgeworLSAgICAoJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50KSA9PiB7Cist ICAgICAgICBtYWNyb19ydWxlcyEgaW1wbF91bmFyeSB7CistICAgICAgICAgICAgKCR2aWQ6aWRl bnQ6ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHZlYyB8 ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7CistICAgICAgICAgICAgfTsK Ky0gICAgICAgICAgICAoJHZpZDppZGVudFtnXTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5XyEoZ2VuIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlk LCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50WyRzaWQ6 aWRlbnQ7ICRzYzpleHByXTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCBbJHNpZDsg JHNjXSwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFtz XTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEoc2NhbGFy IHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKKy0gICAgICAgICAgICB9 OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50XTogJGZ1bjppZGVu dCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEoaGFsdmVzIHwgJHRyYWl0X2lk LCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX2gsICRmdW4pOworLSAgICAgICAgICAgIH07Cist ICAgICAgICAgICAgKCR2aWQ6aWRlbnRbcSA9PiAkdmlkX3E6aWRlbnRdOiAkZnVuOmlkZW50KSA9 PiB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfIShxdWFydGVyIHwgJHRyYWl0X2lkLCAk dHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3EsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAg ICAgICAgICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfISh0d2ljZSB8ICR0cmFpdF9pZCwgJHRyYWl0 X21ldGhvZCwgJHZpZCwgJHZpZF90LCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAg fQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF90ZXJ0aWFyeV8geworLSAgICAv LyBpbXBsZW1lbnRhdGlvbiBtYXBwaW5nIDE6MQorLSAgICAodmVjIHwgJHRyYWl0X2lkOmlkZW50 LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAorLSAgICAgJGZ1bjppZGVudCkg PT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwg ejogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAg ICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHNlbGYpLCB0cmFuc211dGUoeSksIHRyYW5zbXV0 ZSh6KSkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistICAgIChzY2FsYXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRl bnQsCistICAgICAkdmVjX2lkOmlkZW50LCBbJHNpZDppZGVudDsgJHNjb3VudDpleHByXSwgJGZ1 bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwg eTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyczogWyRzaWQ7ICRz Y291bnRdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB4ID0gVSB7IHZlYzogc2VsZiB9LnNjYWxhcnM7CistICAgICAgICAgICAgICAgICAgICBs ZXQgeSA9IFUgeyB2ZWM6IHkgfS5zY2FsYXJzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHog PSBVIHsgdmVjOiB6IH0uc2NhbGFyczsKKy0gICAgICAgICAgICAgICAgICAgIGZvciAoeCwgKHks IHopKSBpbiAoJm11dCBzY2FsYXJzKS56aXAoJnkpLnppcCgmeikgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICppID0gJGZ1bigqaSwgKnksICp6KTsKKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgIFUgeyB2ZWM6IHggfS52ZWMKKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50 YXRpb24gY2FsbGluZyBmdW4gdHdpY2Ugb24gZWFjaCBvZiB0aGUgdmVjdG9yIGhhbHZlczoKKy0g ICAgKGhhbHZlcyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19p ZDppZGVudCwKKy0gICAgICR2ZWNoX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAg ICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAg ICAgICAgICAgaGFsdmVzOiBbJHZlY2hfaWQ7IDJdLAorLSAgICAgICAgICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4X2hhbHZlcyA9IFUgeyB2ZWM6IHNlbGYg fS5oYWx2ZXM7CistICAgICAgICAgICAgICAgICAgICBsZXQgeV9oYWx2ZXMgPSBVIHsgdmVjOiB5 IH0uaGFsdmVzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHpfaGFsdmVzID0gVSB7IHZlYzog eiB9LmhhbHZlczsKKy0KKy0gICAgICAgICAgICAgICAgICAgICp4X2hhbHZlcy5nZXRfdW5jaGVj a2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRy YW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAgICAgICAgICAgICAg ICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICB0cmFuc211dGUoKnpfaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpLAorLSAg ICAgICAgICAgICAgICAgICAgKSk7CistICAgICAgICAgICAgICAgICAgICAqeF9oYWx2ZXMuZ2V0 X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0cmFuc211dGUoKnhfaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSksCistICAg ICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6X2hhbHZlcy5nZXRfdW5jaGVja2VkKDEp KSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgVSB7 IGhhbHZlczogeF9oYWx2ZXMgfS52ZWMKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGluZyBm dW4gZm91ciB0aW1lcyBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgcXVhcnRlcnM6CistICAgIChxdWFy dGVyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50 LAorLSAgICAgJHZlY3FfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwg JHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICBxdWFydGVyczogWyR2ZWNxX2lkOyA0XSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeF9xdWFydGVycyA9IFUgeyB2ZWM6IHNlbGYgfS5x dWFydGVyczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB5X3F1YXJ0ZXJzID0gVSB7IHZlYzog eSB9LnF1YXJ0ZXJzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHpfcXVhcnRlcnMgPSBVIHsg dmVjOiB6IH0ucXVhcnRlcnM7CistCistICAgICAgICAgICAgICAgICAgICAqeF9xdWFydGVycy5n ZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAgICAgICAg ICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSks CistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6X3F1YXJ0ZXJzLmdldF91bmNo ZWNrZWQoMCkpLAorLSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAg ICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAor LSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVj a2VkKDEpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMu Z2V0X3VuY2hlY2tlZCgxKSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6 X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpLAorLSAgICAgICAgICAgICAgICAgICAgKSk7Cist CistICAgICAgICAgICAgICAgICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgyKSA9 IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9x dWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFu c211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSksCistICAgICAgICAgICAgICAgICAg ICAgICAgdHJhbnNtdXRlKCp6X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpLAorLSAgICAgICAg ICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAgICAqeF9xdWFydGVycy5nZXRf dW5jaGVja2VkX211dCgzKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAgICAgICAgICAg ICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSksCist ICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6X3F1YXJ0ZXJzLmdldF91bmNoZWNr ZWQoMykpLAorLSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAg ICBVIHsgcXVhcnRlcnM6IHhfcXVhcnRlcnMgfS52ZWMKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24g Y2FsbGluZyBmdW4gb25jZSBvbiBhIHZlY3RvciB0d2ljZSBhcyBsYXJnZToKKy0gICAgKHR3aWNl IHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAor LSAgICAgJHZlY3RfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRy YWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpt ZW06Ont0cmFuc211dGUsIHVuaW5pdGlhbGl6ZWR9OworLQorLSAgICAgICAgICAgICAgICAgICAg dW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiBbJHZlY19pZDsgMl0sCist ICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICR2ZWN0X2lkLAorLSAgICAgICAgICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbGV0IHhfdHdpY2UgPSBVIHsgdmVjOiBb c2VsZiwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOworLSAgICAgICAgICAgICAgICAgICAgbGV0 IHlfdHdpY2UgPSBVIHsgdmVjOiBbeSwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOworLSAgICAg ICAgICAgICAgICAgICAgbGV0IHpfdHdpY2UgPSBVIHsgdmVjOiBbeiwgdW5pbml0aWFsaXplZCgp XSB9LnR3aWNlOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHR3aWNlOiAkdmVjdF9pZCA9Cist ICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHhfdHdpY2Up LCB0cmFuc211dGUoeV90d2ljZSksIHRyYW5zbXV0ZSh6X3R3aWNlKSkpOworLQorLSAgICAgICAg ICAgICAgICAgICAgKihVIHsgdHdpY2UgfS52ZWMuZ2V0X3VuY2hlY2tlZCgwKSkKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCist bWFjcm9fcnVsZXMhIGdlbl90ZXJ0aWFyeV9pbXBsX3RhYmxlIHsKKy0gICAgKCR0cmFpdF9pZDpp ZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCkgPT4geworLSAgICAgICAgbWFjcm9fcnVsZXMhIGlt cGxfdGVydGlhcnkgeworLSAgICAgICAgICAgICgkdmlkOmlkZW50OiAkZnVuOmlkZW50KSA9PiB7 CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnlfISh2ZWMgfCAkdHJhaXRfaWQsICR0cmFp dF9tZXRob2QsICR2aWQsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2 aWQ6aWRlbnRbJHNpZDppZGVudDsgJHNjOmV4cHJdOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAg ICAgICAgICAgIGltcGxfdGVydGlhcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRo b2QsICR2aWQsIFskc2lkOyAkc2NdLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAg ICAgICgkdmlkOmlkZW50W3NdOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGlt cGxfdGVydGlhcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRm dW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbaCA9PiAkdmlk X2g6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlh cnlfIShoYWx2ZXMgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfaCwgJGZ1 bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFtxID0+ICR2aWRf cTppZGVudF06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFy eV8hKHF1YXJ0ZXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfcSwgJGZ1 bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFt0ID0+ICR2aWRf dDppZGVudF06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFy eV8hKHR3aWNlIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3QsICRmdW4p OworLSAgICAgICAgICAgIH07CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1 bGVzISBpbXBsX2JpbmFyeV8geworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBtYXBwaW5nIDE6MQor LSAgICAodmVjIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lk OmlkZW50LAorLSAgICAgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQg Zm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0 cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwor LSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHNlbGYpLCB0cmFu c211dGUoeSkpKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICB9OworLSAgICAoc2NhbGFyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9k OmlkZW50LAorLSAgICAgJHZlY19pZDppZGVudCwgWyRzaWQ6aWRlbnQ7ICRzY291bnQ6ZXhwcl0s ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNl bGYsIHk6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAg ICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAk dmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcnM6IFskc2lkOyAkc2NvdW50 XSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQg eCA9IFUgeyB2ZWM6IHNlbGYgfS5zY2FsYXJzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHkg PSBVIHsgdmVjOiB5IH0uc2NhbGFyczsKKy0gICAgICAgICAgICAgICAgICAgIGZvciAoeCwgeSkg aW4geC5pdGVyX211dCgpLnppcCgmeSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICp4ID0g JGZ1bigqeCwgKnkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgVSB7IHNjYWxhcnM6IHggfS52ZWMKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGluZyBm dW4gdHdpY2Ugb24gZWFjaCBvZiB0aGUgdmVjdG9yIGhhbHZlczoKKy0gICAgKGhhbHZlcyB8ICR0 cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAg ICR2ZWNoX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9p ZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4g JHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg dW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7 CistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB2ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiBbJHZlY2hf aWQ7IDJdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAg bGV0IG11dCB4X2hhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7CistICAgICAgICAgICAg ICAgICAgICBsZXQgeV9oYWx2ZXMgPSBVIHsgdmVjOiB5IH0uaGFsdmVzOworLQorLSAgICAgICAg ICAgICAgICAgICAgKnhfaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRm dW4oCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X2hhbHZlcy5nZXRfdW5j aGVja2VkKDApKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfaGFsdmVz LmdldF91bmNoZWNrZWQoMCkpLAorLSAgICAgICAgICAgICAgICAgICAgKSk7CistICAgICAgICAg ICAgICAgICAgICAqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1 bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfaGFsdmVzLmdldF91bmNo ZWNrZWQoMSkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9oYWx2ZXMu Z2V0X3VuY2hlY2tlZCgxKSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgIFUgeyBoYWx2ZXM6IHhfaGFsdmVzIH0udmVjCistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVu dGF0aW9uIGNhbGxpbmcgZnVuIGZvdXIgdGltZXMgb24gZWFjaCBvZiB0aGUgdmVjdG9yIHF1YXJ0 ZXJzOgorLSAgICAocXVhcnRlciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVu dCwgJHZlY19pZDppZGVudCwKKy0gICAgICR2ZWNxX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7 CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAg ICAgICAgICAgcXVhcnRlcnM6IFskdmVjcV9pZDsgNF0sCistICAgICAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHhfcXVhcnRlcnMgPSBVIHsgdmVjOiBz ZWxmIH0ucXVhcnRlcnM7CistICAgICAgICAgICAgICAgICAgICBsZXQgeV9xdWFydGVycyA9IFUg eyB2ZWM6IHkgfS5xdWFydGVyczsKKy0KKy0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJz LmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDAp KSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhf cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSks CistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNo ZWNrZWQoMSkpLAorLSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAg ICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgyKSA9IHRyYW5zbXV0ZSgkZnVuKAor LSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVj a2VkKDIpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMu Z2V0X3VuY2hlY2tlZCgyKSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDMpID0gdHJhbnNtdXRl KCRmdW4oCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdl dF91bmNoZWNrZWQoMykpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9x dWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQor LSAgICAgICAgICAgICAgICAgICAgVSB7IHF1YXJ0ZXJzOiB4X3F1YXJ0ZXJzIH0udmVjCistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAg IC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIG9uY2Ugb24gYSB2ZWN0b3IgdHdpY2UgYXMg bGFyZ2U6CistICAgICh0d2ljZSB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVu dCwgJHZlY19pZDppZGVudCwKKy0gICAgICR2ZWN0X2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7 CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bWVtOjp7dHJhbnNtdXRlLCB1bmluaXRpYWxpemVkfTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogWyR2ZWNf aWQ7IDJdLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHR3aWNlOiAkdmVjdF9pZCwKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIGxldCB4X3R3aWNlID0g VSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKKy0gICAgICAgICAgICAg ICAgICAgIGxldCB5X3R3aWNlID0gVSB7IHZlYzogW3ksIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2lj ZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB0d2ljZTogJHZlY3RfaWQgPSB0cmFuc211dGUo JGZ1bih0cmFuc211dGUoeF90d2ljZSksIHRyYW5zbXV0ZSh5X3R3aWNlKSkpOworLQorLSAgICAg ICAgICAgICAgICAgICAgKihVIHsgdHdpY2UgfS52ZWMuZ2V0X3VuY2hlY2tlZCgwKSkKKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19Cist CistbWFjcm9fcnVsZXMhIGdlbl9iaW5hcnlfaW1wbF90YWJsZSB7CistICAgICgkdHJhaXRfaWQ6 aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQpID0+IHsKKy0gICAgICAgIG1hY3JvX3J1bGVzISBp bXBsX2JpbmFyeSB7CistICAgICAgICAgICAgKCR2aWQ6aWRlbnQ6ICRmdW46aWRlbnQpID0+IHsK Ky0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfISh2ZWMgfCAkdHJhaXRfaWQsICR0cmFpdF9t ZXRob2QsICR2aWQsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6 aWRlbnRbJHNpZDppZGVudDsgJHNjOmV4cHJdOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAg ICAgICAgIGltcGxfYmluYXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAk dmlkLCBbJHNpZDsgJHNjXSwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAo JHZpZDppZGVudFtzXTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX2Jp bmFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7Cist ICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFtoID0+ICR2aWRfaDppZGVu dF06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfIShoYWx2 ZXMgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfaCwgJGZ1bik7CistICAg ICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFtxID0+ICR2aWRfcTppZGVudF06 ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfIShxdWFydGVy IHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3EsICRmdW4pOworLSAgICAg ICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6aWRlbnRdOiAk ZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEodHdpY2UgfCAk dHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfdCwgJGZ1bik7CistICAgICAgICAg ICAgfTsKKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGQucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZC5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZC5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsMTA5ICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYG11bF9hZGRg CistIyFbYWxsb3codW51c2VkKV0KKy11c2UgY3JhdGU6Oio7CistCistLy8gRklYTUU6IDY0LWJp dCAxIGVsZW1lbnQgbXVsX2FkZAorLQorLXB1YihjcmF0ZSkgdHJhaXQgTXVsQWRkIHsKKy0gICAg Zm4gbXVsX2FkZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmOworLX0KKy0KKy0jW2Nm Zyhub3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSldCistI1thbGxvdyhpbXByb3Blcl9jdHlwZXMp XQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52MmYzMiJdCist ICAgIGZuIGZtYV92MmYzMih4OiBmMzJ4MiwgeTogZjMyeDIsIHo6IGYzMngyKSAtPiBmMzJ4MjsK Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjRmMzIiXQorLSAgICBmbiBmbWFfdjRmMzIo eDogZjMyeDQsIHk6IGYzMng0LCB6OiBmMzJ4NCkgLT4gZjMyeDQ7CistICAgICNbbGlua19uYW1l ID0gImxsdm0uZm1hLnY4ZjMyIl0KKy0gICAgZm4gZm1hX3Y4ZjMyKHg6IGYzMng4LCB5OiBmMzJ4 OCwgejogZjMyeDgpIC0+IGYzMng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52MTZm MzIiXQorLSAgICBmbiBmbWFfdjE2ZjMyKHg6IGYzMngxNiwgeTogZjMyeDE2LCB6OiBmMzJ4MTYp IC0+IGYzMngxNjsKKy0gICAgLyogRklYTUUgNjQtYml0IHNpbmdsZSBlbGVtIHZlY3RvcnMKKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjFmNjQiXQorLSAgICBmbiBmbWFfdjFmNjQoeDog ZjY0eDEsIHk6IGY2NHgxLCB6OiBmNjR4MSkgLT4gZjY0eDE7CistICAgICovCistICAgICNbbGlu a19uYW1lID0gImxsdm0uZm1hLnYyZjY0Il0KKy0gICAgZm4gZm1hX3YyZjY0KHg6IGY2NHgyLCB5 OiBmNjR4MiwgejogZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZt YS52NGY2NCJdCistICAgIGZuIGZtYV92NGY2NCh4OiBmNjR4NCwgeTogZjY0eDQsIHo6IGY2NHg0 KSAtPiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjhmNjQiXQorLSAgICBm biBmbWFfdjhmNjQoeDogZjY0eDgsIHk6IGY2NHg4LCB6OiBmNjR4OCkgLT4gZjY0eDg7CistfQor LQorLWdlbl90ZXJ0aWFyeV9pbXBsX3RhYmxlIShNdWxBZGQsIG11bF9hZGQpOworLQorLWNmZ19p ZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7CistICAgICAgICAv LyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L2lzc3Vlcy8xNAorLSAgICAgICAgbWFjcm9fcnVsZXMhIGltcGxfYnJva2VuIHsKKy0gICAgICAg ICAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGwgTXVsQWRkIGZvciAk aWQgeworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgICAgICAg ICBmbiBtdWxfYWRkKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYgKiB5ICsgegorLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAg IGltcGxfYnJva2VuIShmMzJ4Mik7CistICAgICAgICBpbXBsX2Jyb2tlbiEoZjMyeDQpOworLSAg ICAgICAgaW1wbF9icm9rZW4hKGYzMng4KTsKKy0gICAgICAgIGltcGxfYnJva2VuIShmMzJ4MTYp OworLQorLSAgICAgICAgaW1wbF9icm9rZW4hKGY2NHgyKTsKKy0gICAgICAgIGltcGxfYnJva2Vu IShmNjR4NCk7CistICAgICAgICBpbXBsX2Jyb2tlbiEoZjY0eDgpOworLSAgICB9IGVsc2UgaWYg I1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikp XSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAg ICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAg ICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9hdngy MTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2W2ggPT4gZjMyeDhd OiBTbGVlZl9mbWFmOF9hdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0 eDhbaCA9PiBmNjR4NF06IFNsZWVmX2ZtYWQ0X2F2eDIpOworLQorLSAgICAgICAgICAgICAgICBp bXBsX3RlcnRpYXJ5IShmMzJ4NDogU2xlZWZfZm1hZjRfYXZ4MjEyOCk7CistICAgICAgICAgICAg ICAgIGltcGxfdGVydGlhcnkhKGYzMng4OiBTbGVlZl9mbWFmOF9hdngyKTsKKy0gICAgICAgICAg ICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IFNsZWVmX2ZtYWQyX2F2eDIxMjgpOworLSAgICAg ICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogU2xlZWZfZm1hZDRfYXZ4Mik7CistICAg ICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAg ICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mbWFm NF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2W2ggPT4gZjMy eDhdOiBTbGVlZl9mbWFmOF9hdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShm NjR4OFtoID0+IGY2NHg0XTogU2xlZWZfZm1hZDRfYXZ4KTsKKy0KKy0gICAgICAgICAgICAgICAg aW1wbF90ZXJ0aWFyeSEoZjMyeDQ6IFNsZWVmX2ZtYWY0X3NzZTQpOworLSAgICAgICAgICAgICAg ICBpbXBsX3RlcnRpYXJ5IShmMzJ4ODogU2xlZWZfZm1hZjhfYXZ4KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IFNsZWVmX2ZtYWQyX3NzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogU2xlZWZfZm1hZDRfYXZ4KTsKKy0gICAgICAgICAg ICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKKy0gICAgICAg ICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZtYWY0X3Nz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06 IFNsZWVmX2ZtYWY0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4 OFtxID0+IGY2NHgyXTogU2xlZWZfZm1hZDJfc3NlNCk7CistCistICAgICAgICAgICAgICAgIGlt cGxfdGVydGlhcnkhKGYzMng0OiBTbGVlZl9mbWFmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF90ZXJ0aWFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2ZtYWY0X3NzZTQpOworLSAg ICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogU2xlZWZfZm1hZDJfc3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9m bWFkMl9zc2U0KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmMzJ4MjogZm1hX3YyZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0 aWFyeSEoZjMyeDE2OiBmbWFfdjE2ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFy eSEoZjY0eDg6IGZtYV92OGY2NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkh KGYzMng0OiBmbWFfdjRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4 ODogZm1hX3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IGZt YV92MmY2NCk7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg0OiBmbWFfdjRm NjQpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAg IGltcGxfdGVydGlhcnkhKGYzMngyOiBmbWFfdjJmMzIpOworLSAgICAgICAgaW1wbF90ZXJ0aWFy eSEoZjMyeDQ6IGZtYV92NGYzMik7CistICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4ODogZm1h X3Y4ZjMyKTsKKy0gICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNjogZm1hX3YxNmYzMik7Cist ICAgICAgICAvLyBpbXBsX3RlcnRpYXJ5IShmNjR4MTogZm1hX3YxZjY0KTsgLy8gRklYTUUgNjQt Yml0IGZtYWdsZSBlbGVtIHZlY3RvcnMKKy0gICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHgyOiBm bWFfdjJmNjQpOworLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDQ6IGZtYV92NGY2NCk7Cist ICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4ODogZm1hX3Y4ZjY0KTsKKy0gICAgfQorLX0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvbXVsX2FkZGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvbXVsX2FkZGUucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211 bF9hZGRlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2MCArMCwwIEBACistLy8hIEFwcHJveGlt YXRpb24gZm9yIGZsb2F0aW5nLXBvaW50IGBtdWxfYWRkYAorLXVzZSBjcmF0ZTo6KjsKKy0KKy0v LyBGSVhNRTogNjQtYml0IDEgZWxlbWVudCBtdWxfYWRkZQorLQorLXB1YihjcmF0ZSkgdHJhaXQg TXVsQWRkRSB7CistICAgIGZuIG11bF9hZGRlKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNl bGY7CistfQorLQorLSNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KKy0jW2FsbG93 KGltcHJvcGVyX2N0eXBlcyldCistZXh0ZXJuICJDIiB7CistICAgICNbbGlua19uYW1lID0gImxs dm0uZm11bGFkZC52MmYzMiJdCistICAgIGZuIGZtdWxhZGRfdjJmMzIoeDogZjMyeDIsIHk6IGYz MngyLCB6OiBmMzJ4MikgLT4gZjMyeDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZm11bGFk ZC52NGYzMiJdCistICAgIGZuIGZtdWxhZGRfdjRmMzIoeDogZjMyeDQsIHk6IGYzMng0LCB6OiBm MzJ4NCkgLT4gZjMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZm11bGFkZC52OGYzMiJd CistICAgIGZuIGZtdWxhZGRfdjhmMzIoeDogZjMyeDgsIHk6IGYzMng4LCB6OiBmMzJ4OCkgLT4g ZjMyeDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZm11bGFkZC52MTZmMzIiXQorLSAgICBm biBmbXVsYWRkX3YxNmYzMih4OiBmMzJ4MTYsIHk6IGYzMngxNiwgejogZjMyeDE2KSAtPiBmMzJ4 MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0b3JzCistICAgICNbbGlu a19uYW1lID0gImxsdm0uZm11bGFkZC52MWY2NCJdCistICAgIGZuIGZtdWxhZGRfdjFmNjQoeDog ZjY0eDEsIHk6IGY2NHgxLCB6OiBmNjR4MSkgLT4gZjY0eDE7CistICAgICovCistICAgICNbbGlu a19uYW1lID0gImxsdm0uZm11bGFkZC52MmY2NCJdCistICAgIGZuIGZtdWxhZGRfdjJmNjQoeDog ZjY0eDIsIHk6IGY2NHgyLCB6OiBmNjR4MikgLT4gZjY0eDI7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uZm11bGFkZC52NGY2NCJdCistICAgIGZuIGZtdWxhZGRfdjRmNjQoeDogZjY0eDQsIHk6 IGY2NHg0LCB6OiBmNjR4NCkgLT4gZjY0eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZm11 bGFkZC52OGY2NCJdCistICAgIGZuIGZtdWxhZGRfdjhmNjQoeDogZjY0eDgsIHk6IGY2NHg4LCB6 OiBmNjR4OCkgLT4gZjY0eDg7CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX211bF9hZGRlIHsK Ky0gICAgKCRpZDppZGVudCA6ICRmbjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBNdWxBZGRF IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG11bF9h ZGRlKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAj W2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSldCistICAgICAgICAgICAgICAgIHsKKy0g ICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAgICAgICAg ICAgICAgICAgICB1bnNhZmUgeyB0cmFuc211dGUoJGZuKHRyYW5zbXV0ZShzZWxmKSwgdHJhbnNt dXRlKHkpLCB0cmFuc211dGUoeikpKSB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0KKy0gICAgICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKKy0gICAgICAgICAgICAgICAgICAgIHNl bGYgKiB5ICsgegorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICB9OworLX0KKy0KKy1pbXBsX211bF9hZGRlIShmMzJ4MjogZm11bGFkZF92MmYzMik7 CistaW1wbF9tdWxfYWRkZSEoZjMyeDQ6IGZtdWxhZGRfdjRmMzIpOworLWltcGxfbXVsX2FkZGUh KGYzMng4OiBmbXVsYWRkX3Y4ZjMyKTsKKy1pbXBsX211bF9hZGRlIShmMzJ4MTY6IGZtdWxhZGRf djE2ZjMyKTsKKy0vLyBpbXBsX211bF9hZGRlIShmNjR4MTogZm1hX3YxZjY0KTsgLy8gRklYTUUg NjQtYml0IGZtYWdsZSBlbGVtIHZlY3RvcnMKKy1pbXBsX211bF9hZGRlIShmNjR4MjogZm11bGFk ZF92MmY2NCk7CistaW1wbF9tdWxfYWRkZSEoZjY0eDQ6IGZtdWxhZGRfdjRmNjQpOworLWltcGxf bXVsX2FkZGUhKGY2NHg4OiBmbXVsYWRkX3Y4ZjY0KTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9wb3dmLnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9wb3dmLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwx MTIgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgcG93ZmAKKy0jIVthbGxv dyh1bnVzZWQpXQorLQorLS8vIEZJWE1FIDY0LWJpdCBwb3dmZ2xlIGVsZW0gdmVjdG9ycyBtaXNw b3dmZworLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IFBvd2YgeworLSAg ICBmbiBwb3dmKHNlbGYsIHg6IFNlbGYpIC0+IFNlbGY7CistfQorLQorLSNbYWxsb3coaW1wcm9w ZXJfY3R5cGVzKV0KKy1leHRlcm4gIkMiIHsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cu djJmMzIiXQorLSAgICBmbiBwb3dmX3YyZjMyKHg6IGYzMngyLCB5OiBmMzJ4MikgLT4gZjMyeDI7 CistICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnY0ZjMyIl0KKy0gICAgZm4gcG93Zl92NGYz Mih4OiBmMzJ4NCwgeTogZjMyeDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LnBvdy52OGYzMiJdCistICAgIGZuIHBvd2ZfdjhmMzIoeDogZjMyeDgsIHk6IGYzMng4KSAtPiBm MzJ4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjE2ZjMyIl0KKy0gICAgZm4gcG93 Zl92MTZmMzIoeDogZjMyeDE2LCB5OiBmMzJ4MTYpIC0+IGYzMngxNjsKKy0gICAgLyogRklYTUUg NjQtYml0IHBvd2ZnbGUgZWxlbSB2ZWN0b3JzCistICAgICNbbGlua19uYW1lID0gImxsdm0ucG93 LnYxZjY0Il0KKy0gICAgZm4gcG93Zl92MWY2NCh4OiBmNjR4MSwgeTogZjY0eDEpIC0+IGY2NHgx OworLSAgICAgKi8KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjJmNjQiXQorLSAgICBm biBwb3dmX3YyZjY0KHg6IGY2NHgyLCB5OiBmNjR4MikgLT4gZjY0eDI7CistICAgICNbbGlua19u YW1lID0gImxsdm0ucG93LnY0ZjY0Il0KKy0gICAgZm4gcG93Zl92NGY2NCh4OiBmNjR4NCwgeTog ZjY0eDQpIC0+IGY2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52OGY2NCJdCist ICAgIGZuIHBvd2ZfdjhmNjQoeDogZjY0eDgsIHk6IGY2NHg4KSAtPiBmNjR4ODsKKy0KKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5wb3cuZjMyIl0KKy0gICAgZm4gcG93Zl9mMzIoeDogZjMyLCB5 OiBmMzIpIC0+IGYzMjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cuZjY0Il0KKy0gICAg Zm4gcG93Zl9mNjQoeDogZjY0LCB5OiBmNjQpIC0+IGY2NDsKKy19CistCistZ2VuX2JpbmFyeV9p bXBsX3RhYmxlIShQb3dmLCBwb3dmKTsKKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcodGFy Z2V0X2FyY2ggPSAiczM5MHgiKV0geworLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKKy0gICAgICAgIGlt cGxfYmluYXJ5IShmMzJ4MltmMzI7IDJdOiBwb3dmX2YzMik7CistICAgICAgICBpbXBsX2JpbmFy eSEoZjMyeDRbZjMyOyA0XTogcG93Zl9mMzIpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4 W2YzMjsgOF06IHBvd2ZfZjMyKTsKKy0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZbZjMyOyAx Nl06IHBvd2ZfZjMyKTsKKy0KKy0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4MltmNjQ7IDJdOiBw b3dmX2Y2NCk7CistICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDRbZjY0OyA0XTogcG93Zl9mNjQp OworLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4W2Y2NDsgOF06IHBvd2ZfZjY0KTsKKy0gICAg fSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNs ZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19p ZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewor LSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3Bv d2Y0X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2W2gg PT4gZjMyeDhdOiBTbGVlZl9wb3dmOF91MTBhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9i aW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9wb3dkNF91MTBhdngyKTsKKy0KKy0gICAg ICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBhdngyMTI4KTsK Ky0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4OiBTbGVlZl9wb3dmOF91MTBhdngy KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBTbGVlZl9wb3dkMl91MTBh dngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0OiBTbGVlZl9wb3dk NF91MTBhdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW3QgPT4gZjMy eDRdOiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkh KGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfcG93ZjhfdTEwYXZ4KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF9iaW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9wb3dkNF91MTBhdngpOwor LQorLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IFNsZWVmX3Bvd2Y0X3UxMHNz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDg6IFNsZWVmX3Bvd2Y4X3Ux MGF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4MjogU2xlZWZfcG93ZDJf dTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4NDogU2xlZWZfcG93 ZDRfdTEwYXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAic3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW3QgPT4g ZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5h cnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlNCk7CistICAgICAgICAg ICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfcG93ZDJfdTEwc3Nl NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NDogU2xlZWZfcG93ZjRf dTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4OFtoID0+IGYzMng0 XTogU2xlZWZfcG93ZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShm NjR4MjogU2xlZWZfcG93ZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfcG93ZDJfdTEwc3NlNCk7CistICAgICAgICAgICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0geworLSAgICAgICAgICAg ICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTIp OworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVl Zl9wb3dmNF91MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4W3Eg PT4gZjY0eDJdOiBTbGVlZl9wb3dkMl91MTBzc2UyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1w bF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAg aW1wbF9iaW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2UyKTsKKy0g ICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBTbGVlZl9wb3dkMl91MTBzc2UyKTsK Ky0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9w b3dkMl91MTBzc2UyKTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBp bXBsX2JpbmFyeSEoZjMyeDJbZjMyOyAyXTogcG93Zl9mMzIpOworLSAgICAgICAgICAgICAgICBp bXBsX2JpbmFyeSEoZjMyeDQ6IHBvd2ZfdjRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX2Jp bmFyeSEoZjMyeDg6IHBvd2ZfdjhmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEo ZjMyeDE2OiBwb3dmX3YxNmYzMik7CistCistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShm NjR4MjogcG93Zl92MmY2NCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4NDog cG93Zl92NGY2NCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4ODogcG93Zl92 OGY2NCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAg ICAgaW1wbF9iaW5hcnkhKGYzMngyW2YzMjsgMl06IHBvd2ZfZjMyKTsKKy0gICAgICAgIGltcGxf YmluYXJ5IShmMzJ4NDogcG93Zl92NGYzMik7CistICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDg6 IHBvd2ZfdjhmMzIpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNjogcG93Zl92MTZmMzIp OworLQorLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBwb3dmX3YyZjY0KTsKKy0gICAgICAg IGltcGxfYmluYXJ5IShmNjR4NDogcG93Zl92NGY2NCk7CistICAgICAgICBpbXBsX2JpbmFyeSEo ZjY0eDg6IHBvd2ZfdjhmNjQpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW4ucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW4ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwMyAr MCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBzaW5gCistIyFbYWxsb3codW51 c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgc2luCistCistdXNlIGNy YXRlOjoqOworLQorLXB1YihjcmF0ZSkgdHJhaXQgU2luIHsKKy0gICAgZm4gc2luKHNlbGYpIC0+ IFNlbGY7CistfQorLQorLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KKy1leHRlcm4gIkMiIHsK Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjJmMzIiXQorLSAgICBmbiBzaW5fdjJmMzIo eDogZjMyeDIpIC0+IGYzMngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52NGYzMiJd CistICAgIGZuIHNpbl92NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7CistICAgICNbbGlua19uYW1l ID0gImxsdm0uc2luLnY4ZjMyIl0KKy0gICAgZm4gc2luX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4 ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjE2ZjMyIl0KKy0gICAgZm4gc2luX3Yx NmYzMih4OiBmMzJ4MTYpIC0+IGYzMngxNjsKKy0gICAgLyogRklYTUUgNjQtYml0IHNpbmdsZSBl bGVtIHZlY3RvcnMKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjFmNjQiXQorLSAgICBm biBzaW5fdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgxOworLSAgICAgKi8KKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5zaW4udjJmNjQiXQorLSAgICBmbiBzaW5fdjJmNjQoeDogZjY0eDIpIC0+IGY2 NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52NGY2NCJdCistICAgIGZuIHNpbl92 NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnY4 ZjY0Il0KKy0gICAgZm4gc2luX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKKy0KKy0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5zaW4uZjMyIl0KKy0gICAgZm4gc2luX2YzMih4OiBmMzIpIC0+IGYz MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4uZjY0Il0KKy0gICAgZm4gc2luX2Y2NCh4 OiBmNjQpIC0+IGY2NDsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKFNpbiwgc2luKTsK Ky0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewor LSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMTQKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06 IHNpbl9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogc2luX2YzMik7 CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBzaW5fZjMyKTsKKy0gICAgICAg IGltcGxfdW5hcnkhKGYzMngxNltmMzI7IDE2XTogc2luX2YzMik7CistCistICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBzaW5fZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2 NHg0W2Y2NDsgNF06IHNpbl9mNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZjY0OyA4 XTogc2luX2Y2NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2 XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVzZSBzbGVlZl9zeXM6 Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9 PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NpbmY4X3UxMGF2eDIpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2luZDRfdTEw YXZ4Mik7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zaW5m NF91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVm X3NpbmY4X3UxMGF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xl ZWZfc2luZDJfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBTbGVlZl9zaW5kNF91MTBhdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NpbmY4X3UxMGF2eCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5kNF91 MTBhdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lu ZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9z aW5mOF91MTBhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZf c2luZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVl Zl9zaW5kNF91MTBhdngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0 ID0+IGYzMng0XTogU2xlZWZfc2luZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfc2luZjRfdTEwc3NlNCk7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zaW5kMl91MTBz c2U0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NpbmY0 X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0 XTogU2xlZWZfc2luZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHgyOiBTbGVlZl9zaW5kMl91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NpbmQyX3UxMHNzZTQpOworLSAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IHNpbl9m MzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IHNpbl92MTZmMzIpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogc2luX3Y4ZjY0KTsKKy0KKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IHNpbl92NGYzMik7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng4OiBzaW5fdjhmMzIpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4Mjogc2luX3YyZjY0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDQ6IHNpbl92NGY2NCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVs c2UgeworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc2luX2YzMik7CistICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogc2luX3Y0ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkh KGYzMng4OiBzaW5fdjhmMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzaW5fdjE2 ZjMyKTsKKy0KKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBzaW5fdjJmNjQpOworLSAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDQ6IHNpbl92NGY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShm NjR4ODogc2luX3Y4ZjY0KTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX2Nvc19waS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fY29z X3BpLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fY29zX3BpLnJzCisrKysgL2Rl di9udWxsCitAQCAtMSwxODggKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBg c2luX2Nvc2AKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0g dmVjdG9ycyBzaW5fY29zCistCistdXNlIGNyYXRlOjoqOworLQorLXB1YihjcmF0ZSkgdHJhaXQg U2luQ29zUGk6IFNpemVkIHsKKy0gICAgdHlwZSBPdXRwdXQ7CistICAgIGZuIHNpbl9jb3NfcGko c2VsZikgLT4gU2VsZjo6T3V0cHV0OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWYgewor LSAgICAoJHZpZDppZGVudCwgJFBJOnBhdGgpID0+IHsKKy0gICAgICAgIGltcGwgU2luQ29zUGkg Zm9yICR2aWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4g U2VsZjo6T3V0cHV0IHsKKy0gICAgICAgICAgICAgICAgbGV0IHYgPSBzZWxmICogU2VsZjo6c3Bs YXQoJFBJKTsKKy0gICAgICAgICAgICAgICAgKHYuc2luKCksIHYuY29zKCkpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWYz MiB7CistICAgICgkdmlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3Jh dGU6OmYzMjo6Y29uc3RzOjpQSSk7CistICAgIH07CistfQorLW1hY3JvX3J1bGVzISBpbXBsX2Rl ZjY0IHsKKy0gICAgKCR2aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfZGVmISgkdmlkLCBj cmF0ZTo6ZjY0Ojpjb25zdHM6OlBJKTsKKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGlt cGxfdW5hcnlfdCB7CistICAgICgkdmlkOmlkZW50OiAkZnVuOmlkZW50KSA9PiB7CistICAgICAg ICBpbXBsIFNpbkNvc1BpIGZvciAkdmlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IChT ZWxmLCBTZWxmKTsKKy0gICAgICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91 dHB1dCB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRl KCRmdW4odHJhbnNtdXRlKHNlbGYpKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6aWRl bnRdOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIFNpbkNvc1BpIGZvciAkdmlkIHsK Ky0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKKy0gICAgICAgICAgICBm biBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7CistICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6e3RyYW5zbXV0ZSwg dW5pbml0aWFsaXplZH07CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB2ZWM6IFskdmlkOyAyXSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0d2ljZTogJHZpZF90LAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgICAgICAgICAgbGV0IHR3aWNlID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0g fS50d2ljZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB0d2ljZSA9IHRyYW5zbXV0ZSgkZnVu KHRyYW5zbXV0ZSh0d2ljZSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFIgewor LSAgICAgICAgICAgICAgICAgICAgICAgIHR3aWNlOiAoJHZpZF90LCAkdmlkX3QpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIHZlY3M6IChbJHZpZDsgMl0sIFskdmlkOyAyXSksCistICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBsZXQgciA9IFIgeyB0d2ljZSB9 LnZlY3M7CistICAgICAgICAgICAgICAgICAgICAoKnIuMC5nZXRfdW5jaGVja2VkKDApLCAqci4w LmdldF91bmNoZWNrZWQoMSkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50XTog JGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3IgJHZpZCB7CistICAg ICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7CistICAgICAgICAgICAgZm4gc2lu X2Nvc19waShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgeworLSAgICAgICAgICAgICAgICB1bnNhZmUg eworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHZl YzogJHZpZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6IFskdmlkX2g7IDJdLAor LSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbGV0IGhhbHZl cyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7CistCistICAgICAgICAgICAgICAgICAgICBsZXQg cmVzXzA6ICgkdmlkX2gsICR2aWRfaCkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKmhhbHZl cy5nZXRfdW5jaGVja2VkKDApKSkpOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHJlc18xOiAo JHZpZF9oLCAkdmlkX2gpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpoYWx2ZXMuZ2V0X3Vu Y2hlY2tlZCgxKSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFIgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIHJlc3VsdDogKCR2aWQsICR2aWQpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgIGhhbHZlczogKFskdmlkX2g7IDJdLCBbJHZpZF9oOyAyXSksCistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBSIHsgaGFsdmVzOiAoW3Jlc18wLjAs IHJlc18xLjBdLCBbcmVzXzAuMSwgcmVzXzEuMV0pIH0ucmVzdWx0CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgICgkdmlkOmlkZW50 W3EgPT4gJHZpZF9xOmlkZW50XTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBTaW5D b3NQaSBmb3IgJHZpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7 CistICAgICAgICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgeworLSAg ICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpt ZW06OnRyYW5zbXV0ZTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIHZlYzogJHZpZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBx dWFydGVyczogWyR2aWRfcTsgNF0sCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAg ICAgICAgICAgICAgICBsZXQgcXVhcnRlcnMgPSBVIHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7Cist CistICAgICAgICAgICAgICAgICAgICBsZXQgcmVzXzA6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFu c211dGUoJGZ1bih0cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpKSk7CistICAg ICAgICAgICAgICAgICAgICBsZXQgcmVzXzE6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUo JGZ1bih0cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpKSk7CistICAgICAgICAg ICAgICAgICAgICBsZXQgcmVzXzI6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0 cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpKSk7CistICAgICAgICAgICAgICAg ICAgICBsZXQgcmVzXzM6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211 dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpKSk7CistCistICAgICAgICAgICAgICAgICAg ICB1bmlvbiBSIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6ICgkdmlkLCAkdmlk KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVyczogKFskdmlkX3E7IDRdLCBbJHZp ZF9xOyA0XSksCistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBS IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVyczogKAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbcmVzXzAuMCwgcmVzXzEuMCwgcmVzXzIuMCwgcmVzXzMuMF0sCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXNfMC4xLCByZXNfMS4xLCByZXNfMi4xLCByZXNf My4xXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICApLAorLSAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgLnJlc3VsdAorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1jZmdfaWYhIHsKKy0gICAg aWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lz IikpXSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7Cist ICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3Bp ZjRfdTA1YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDE2W2gg PT4gZjMyeDhdOiBTbGVlZl9zaW5jb3NwaWY4X3UwNWF2eDIpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5X3QhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eDIp OworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng0OiBTbGVlZl9zaW5jb3Nw aWY0X3UwNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng4OiBT bGVlZl9zaW5jb3NwaWY4X3UwNWF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3Qh KGY2NHgyOiBTbGVlZl9zaW5jb3NwaWQyX3UwNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5X3QhKGY2NHg0OiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eDIpOworLSAgICAgICAg ICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0 X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngxNltoID0+IGYz Mng4XTogU2xlZWZfc2luY29zcGlmOF91MDVhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5X3QhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eCk7CistCist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDQ6IFNsZWVmX3NpbmNvc3BpZjRfdTA1 c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDg6IFNsZWVmX3NpbmNv c3BpZjhfdTA1YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4MjogU2xl ZWZfc2luY29zcGlkMl91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShm NjR4NDogU2xlZWZfc2luY29zcGlkNF91MDVhdngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5X3QhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNzZTQpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZf c2luY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4 OFtxID0+IGY2NHgyXTogU2xlZWZfc2luY29zcGlkMl91MDVzc2U0KTsKKy0KKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeV90IShmMzJ4NDogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfc2lu Y29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4Mjog U2xlZWZfc2luY29zcGlkMl91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90 IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfc2luY29zcGlkMl91MDVzc2U0KTsKKy0gICAgICAg ICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7CistICAg ICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9k ZWYzMiEoZjMyeDgpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOworLQor LSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7CistICAgICAgICAgICAgICAgIGlt cGxfZGVmNjQhKGY2NHg0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOwor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxf ZGVmMzIhKGYzMngyKTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKKy0gICAgICAgIGlt cGxfZGVmMzIhKGYzMng4KTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7CistCistICAg ICAgICBpbXBsX2RlZjY0IShmNjR4Mik7CistICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7Cist ICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9waS5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9z aW5fcGkucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9waS5ycworKysrIC9kZXYv bnVsbAorQEAgLTEsODcgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc2lu X3BpYAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0 b3JzIHNpbl9waQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IFNpblBp IHsKKy0gICAgZm4gc2luX3BpKHNlbGYpIC0+IFNlbGY7CistfQorLQorLWdlbl91bmFyeV9pbXBs X3RhYmxlIShTaW5QaSwgc2luX3BpKTsKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWYgeworLSAg ICAoJHZpZDppZGVudCwgJFBJOnBhdGgpID0+IHsKKy0gICAgICAgIGltcGwgU2luUGkgZm9yICR2 aWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHNpbl9waShzZWxm KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgKHNlbGYgKiBTZWxmOjpzcGxhdCgkUEkpKS5z aW4oKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistbWFjcm9fcnVs ZXMhIGltcGxfZGVmMzIgeworLSAgICAoJHZpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbF9k ZWYhKCR2aWQsIGNyYXRlOjpmMzI6OmNvbnN0czo6UEkpOworLSAgICB9OworLX0KKy1tYWNyb19y dWxlcyEgaW1wbF9kZWY2NCB7CistICAgICgkdmlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBs X2RlZiEoJHZpZCwgY3JhdGU6OmY2NDo6Y29uc3RzOjpQSSk7CistICAgIH07CistfQorLQorLWNm Z19pZiEgeworLSAgICBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVy ZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7CistICAgICAg ICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngy IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNs ZWVmX3NpbnBpZjRfdTA1YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngxNltoID0+IGYzMng4XTogU2xlZWZfc2lucGlmOF91MDVhdngyKTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbnBpZDRfdTA1YXZ4Mik7 CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zaW5waWY0X3Uw NWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc2lu cGlmOF91MDVhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVm X3NpbnBpZDJfdTA1YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBTbGVlZl9zaW5waWQ0X3UwNWF2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5waWY4X3UwNWF2eCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9z aW5waWQ0X3UwNWF2eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBT bGVlZl9zaW5waWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 ODogU2xlZWZfc2lucGlmOF91MDVhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4MjogU2xlZWZfc2lucGlkMl91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IFNsZWVmX3NpbnBpZDRfdTA1YXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYg I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfc2lucGlm NF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4 Ml06IFNsZWVmX3NpbnBpZDJfdTA1c3NlNCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng0OiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbnBpZDJfdTA1c3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9zaW5w aWQyX3UwNXNzZTQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGlt cGxfZGVmMzIhKGYzMngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOwor LSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4OCk7CistICAgICAgICAgICAgICAgIGlt cGxfZGVmMzIhKGYzMngxNik7CistCistICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHgy KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDQpOworLSAgICAgICAgICAgICAg ICBpbXBsX2RlZjY0IShmNjR4OCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 IGVsc2UgeworLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDIpOworLSAgICAgICAgaW1wbF9kZWYz MiEoZjMyeDQpOworLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDgpOworLSAgICAgICAgaW1wbF9k ZWYzMiEoZjMyeDE2KTsKKy0KKy0gICAgICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKKy0gICAgICAg IGltcGxfZGVmNjQhKGY2NHg0KTsKKy0gICAgICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKKy0gICAg fQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvc3FydC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9z cXJ0LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMDMgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBm bG9hdGluZy1wb2ludCBgc3FydGAKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8vIEZJWE1FIDY0 LWJpdCAxIGVsZW0gdmVjdG9ycyBzcXJ0CistCistdXNlIGNyYXRlOjoqOworLQorLXB1YihjcmF0 ZSkgdHJhaXQgU3FydCB7CistICAgIGZuIHNxcnQoc2VsZikgLT4gU2VsZjsKKy19CistCistI1th bGxvdyhpbXByb3Blcl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLnNxcnQudjJmMzIiXQorLSAgICBmbiBzcXJ0X3YyZjMyKHg6IGYzMngyKSAtPiBmMzJ4 MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnY0ZjMyIl0KKy0gICAgZm4gc3FydF92 NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC52 OGYzMiJdCistICAgIGZuIHNxcnRfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OworLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLnNxcnQudjE2ZjMyIl0KKy0gICAgZm4gc3FydF92MTZmMzIoeDogZjMy eDE2KSAtPiBmMzJ4MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBzcXJ0Z2xlIGVsZW0gdmVjdG9y cworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjFmNjQiXQorLSAgICBmbiBzcXJ0X3Yx ZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAgICovCistICAgICNbbGlua19uYW1lID0gImxs dm0uc3FydC52MmY2NCJdCistICAgIGZuIHNxcnRfdjJmNjQoeDogZjY0eDIpIC0+IGY2NHgyOwor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjRmNjQiXQorLSAgICBmbiBzcXJ0X3Y0ZjY0 KHg6IGY2NHg0KSAtPiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnY4ZjY0 Il0KKy0gICAgZm4gc3FydF92OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7CistCistICAgICNbbGlu a19uYW1lID0gImxsdm0uc3FydC5mMzIiXQorLSAgICBmbiBzcXJ0X2YzMih4OiBmMzIpIC0+IGYz MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LmY2NCJdCistICAgIGZuIHNxcnRfZjY0 KHg6IGY2NCkgLT4gZjY0OworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoU3FydCwgc3Fy dCk7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4Iild IHsKKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7 IDJdOiBzcXJ0X2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBzcXJ0 X2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBzcXJ0X2YzMik7Cist ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IHNxcnRfZjMyKTsKKy0KKy0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IHNxcnRfZjY0KTsKKy0gICAgICAgIGltcGxf dW5hcnkhKGY2NHg0W2Y2NDsgNF06IHNxcnRfZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4W2Y2NDsgOF06IHNxcnRfZjY0KTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRf YXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNl IHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X2F2eDIxMjgpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NxcnRmOF9hdngyKTsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3Nx cnRkNF9hdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVm X3NxcnRmNF9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNs ZWVmX3NxcnRmOF9hdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNs ZWVmX3NxcnRkMl9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6 IFNsZWVmX3NxcnRkNF9hdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb dCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zcXJ0ZjhfYXZ4KTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NxcnRkNF9hdngpOwor LQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X3NzZTQp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc3FydGY4X2F2eCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfc3NlNCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0ZDRfYXZ4KTsK Ky0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIild IHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVm X3NxcnRmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4g ZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zcXJ0ZDJfc3NlNCk7CistCistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfc3NlNCk7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfc3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfc3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9zcXJ0 ZDJfc3NlNCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDJbZjMyOyAyXTogc3FydF9mMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTY6IHNxcnRfdjE2ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDg6IHNxcnRfdjhmNjQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 NDogc3FydF92NGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBzcXJ0 X3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IHNxcnRfdjJmNjQp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogc3FydF92NGY2NCk7CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaW1wbF91bmFy eSEoZjMyeDJbZjMyOyAyXTogc3FydF9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6 IHNxcnRfdjRmMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IHNxcnRfdjhmMzIpOwor LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzcXJ0X3YxNmYzMik7CistCistICAgICAgICBp bXBsX3VuYXJ5IShmNjR4Mjogc3FydF92MmY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NDogc3FydF92NGY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogc3FydF92OGY2NCk7 CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnRlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC9zcXJ0ZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNjcgKzAsMCBAQAorLS8vISBW ZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc3FydGAKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8v IEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzcXJ0ZQorLQorLXVzZSBjcmF0ZTo6bGx2bTo6 c2ltZF9mc3FydDsKKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBTcXJ0ZSB7 CistICAgIGZuIHNxcnRlKHNlbGYpIC0+IFNlbGY7CistfQorLQorLWdlbl91bmFyeV9pbXBsX3Rh YmxlIShTcXJ0ZSwgc3FydGUpOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyhhbGwodGFy Z2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAg IHVzZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAj W2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVhdngyMTI4KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zcXJ0Zjhf dTM1YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRd OiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4Mik7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng0OiBTbGVlZl9zcXJ0ZjRfdTM1YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMng4OiBTbGVlZl9zcXJ0ZjhfdTM1YXZ4Mik7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfdTM1YXZ4MjEyOCk7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4Mik7CistICAgICAgICAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfdTM1c3Nl NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xl ZWZfc3FydGY4X3UzNWF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2gg PT4gZjY0eDRdOiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NxcnRmOF91MzVhdngpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3UzNXNzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc3FydGQ0X3UzNWF2eCk7CistICAgICAgICAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfdTM1 c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTog U2xlZWZfc3FydGY0X3UzNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 OFtxID0+IGY2NHgyXTogU2xlZWZfc3FydGQyX3UzNXNzZTQpOworLQorLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X3UzNXNzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3UzNXNzZTQp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3UzNXNz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xl ZWZfc3FydGQyX3UzNXNzZTQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngyW2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDE2W2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDhbZ106IHNpbWRfZnNxcnQpOworLQorLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4NFtnXTogc2ltZF9mc3FydCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng4W2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDJbZ106IHNpbWRfZnNxcnQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtnXTogc2ltZF9mc3FydCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVs c2UgeworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZ106IHNpbWRfZnNxcnQpOworLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDRbZ106IHNpbWRfZnNxcnQpOworLSAgICAgICAgaW1wbF91bmFy eSEoZjMyeDhbZ106IHNpbWRfZnNxcnQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2dd OiBzaW1kX2ZzcXJ0KTsKKy0KKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2ddOiBzaW1kX2Zz cXJ0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHg4W2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgfQorLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3BvaW50ZXJf c2l6ZWRfaW50LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9w b2ludGVyX3NpemVkX2ludC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3BvaW50ZXJfc2l6ZWRfaW50LnJz CisrKysgL2Rldi9udWxsCitAQCAtMSwyOCArMCwwIEBACistLy8hIFByb3ZpZGVzIGBpc2l6ZWAg YW5kIGB1c2l6ZWAKKy0KKy11c2UgY2ZnX2lmOjpjZmdfaWY7CistCistY2ZnX2lmISB7CistICAg IGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjgiKV0geworLSAgICAgICAgcHViKGNy YXRlKSB0eXBlIGlzaXplXyA9IGk4OworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIHVzaXplXyA9 IHU4OworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMTYiKV0g eworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIGlzaXplXyA9IGkxNjsKKy0gICAgICAgIHB1Yihj cmF0ZSkgdHlwZSB1c2l6ZV8gPSB1MTY7CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9p bnRlcl93aWR0aCA9ICIzMiIpXSB7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0g aTMyOworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIHVzaXplXyA9IHUzMjsKKy0KKy0gICAgfSBl bHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgIHB1 YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpNjQ7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNp emVfID0gdTY0OworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAi NjQiKV0geworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIGlzaXplXyA9IGk2NDsKKy0gICAgICAg IHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1NjQ7CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJn ZXRfcG9pbnRlcl93aWR0aCA9ICIxMjgiKV0geworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIGlz aXplXyA9IGkxMjg7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0gdTEyODsKKy0g ICAgfSBlbHNlIHsKKy0gICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRf cG9pbnRlcl93aWR0aCIpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEgKzAsMCBAQAorLXB1YihjcmF0 ZSkgbW9kIG1hc2s7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNjkgKzAsMCBAQAorLS8vISBDb2Rl IGdlbmVyYXRpb24gd29ya2Fyb3VuZCBmb3IgYGFsbCgpYCBtYXNrIGhvcml6b250YWwgcmVkdWN0 aW9uLgorLS8vIQorLS8vISBXb3JrcyBhcm91bmQgW0xMVk0gYnVnIDM2NzAyXS4KKy0vLyEKKy0v LyEgW0xMVk0gYnVnIDM2NzAyXTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9p ZD0zNjcwMgorLSMhW2FsbG93KHVudXNlZF9tYWNyb3MpXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0K Ky1wdWIoY3JhdGUpIHRyYWl0IEFsbDogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgeworLSAgICB1bnNh ZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2w7CistfQorLQorLXB1YihjcmF0ZSkgdHJhaXQgQW55OiBj cmF0ZTo6bWFya2VyOjpTaXplZCB7CistICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbDsK Ky19CistCistI1ttYWNyb191c2VdCistbW9kIGZhbGxiYWNrX2ltcGw7CistCistY2ZnX2lmISB7 CistICAgIGlmICNbY2ZnKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9ICJ4 ODZfNjQiKSldIHsKKy0gICAgICAgICNbbWFjcm9fdXNlXQorLSAgICAgICAgbW9kIHg4NjsKKy0g ICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJhcm0iLCB0YXJnZXRfZmVhdHVy ZSA9ICJ2NyIsCistICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVv biIsCistICAgICAgICAgICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwg bGliY29yZV9uZW9uKSkpXSB7CistICAgICAgICAjW21hY3JvX3VzZV0KKy0gICAgICAgIG1vZCBh cm07CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsIHRh cmdldF9mZWF0dXJlID0gIm5lb24iKSldIHsKKy0gICAgICAgICNbbWFjcm9fdXNlXQorLSAgICAg ICAgbW9kIGFhcmNoNjQ7CistICAgIH0gZWxzZSB7CistICAgICAgICAjW21hY3JvX3VzZV0KKy0g ICAgICAgIG1vZCBmYWxsYmFjazsKKy0gICAgfQorLX0KKy0KKy1pbXBsX21hc2tfcmVkdWN0aW9u cyEobTh4Mik7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDQpOworLWltcGxfbWFza19yZWR1 Y3Rpb25zIShtOHg4KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4MTYpOworLWltcGxfbWFz a19yZWR1Y3Rpb25zIShtOHgzMik7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDY0KTsKKy0K Ky1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDIpOworLWltcGxfbWFza19yZWR1Y3Rpb25zISht MTZ4NCk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xNng4KTsKKy1pbXBsX21hc2tfcmVkdWN0 aW9ucyEobTE2eDE2KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDMyKTsKKy0KKy1pbXBs X21hc2tfcmVkdWN0aW9ucyEobTMyeDIpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMzJ4NCk7 CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0zMng4KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEo bTMyeDE2KTsKKy0KKy0vLyBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcgorLS8v IGltcGxfbWFza19yZWR1Y3Rpb25zIShtNjR4MSk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG02 NHgyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTY0eDQpOworLWltcGxfbWFza19yZWR1Y3Rp b25zIShtNjR4OCk7CistCistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xMjh4MSk7CistaW1wbF9t YXNrX3JlZHVjdGlvbnMhKG0xMjh4Mik7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xMjh4NCk7 CistCistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG1zaXpleDIpOworLWltcGxfbWFza19yZWR1Y3Rp b25zIShtc2l6ZXg0KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobXNpemV4OCk7CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25z L21hc2svYWFyY2g2NC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25z L21hc2svYWFyY2g2NC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsODEgKzAsMCBAQAorLS8vISBN YXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24gZm9yIGBhYXJjaDY0YCB0YXJnZXRzCistCist Ly8vIDEyOC1iaXQgd2lkZSB2ZWN0b3JzCistbWFjcm9fcnVsZXMhIGFhcmNoNjRfMTI4X25lb25f aW1wbCB7CistICAgICgkaWQ6aWRlbnQsICR2bWluOmlkZW50LCAkdm1heDppZGVudCkgPT4gewor LSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAibmVvbiIpXQorLSAgICAgICAgICAg IHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6YXJjaDo6YWFyY2g2NDo6JHZtaW47CistICAgICAgICAgICAgICAgICR2bWluKGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gIm5lb24iKV0KKy0gICAgICAgICAgICB1 bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmFyY2g6OmFhcmNoNjQ6OiR2bWF4OworLSAgICAgICAgICAgICAgICAkdm1heChjcmF0ZTo6bWVt Ojp0cmFuc211dGUoc2VsZikpICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistfQorLQorLS8vLyA2NC1iaXQgd2lkZSB2ZWN0b3JzCistbWFjcm9fcnVsZXMhIGFhcmNo NjRfNjRfbmVvbl9pbXBsIHsKKy0gICAgKCRpZDppZGVudCwgJHZlYzEyODppZGVudCkgPT4gewor LSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAibmVvbiIpXQorLSAgICAgICAgICAg IHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIC8vIER1cGxp Y2F0ZXMgdGhlIDY0LWJpdCB2ZWN0b3IgaW50byBhIDEyOC1iaXQgb25lIGFuZAorLSAgICAgICAg ICAgICAgICAvLyBjYWxscyBhbGwgb24gdGhhdC4KKy0gICAgICAgICAgICAgICAgdW5pb24gVSB7 CistICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaWQsICRpZCksCistICAgICAgICAgICAg ICAgICAgICB2ZWM6ICR2ZWMxMjgsCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgVSB7IGhhbHZlczogKHNlbGYsIHNlbGYpIH0udmVjLmFsbCgpCistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAibmVvbiIpXQor LSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAg ICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGlkLCAkaWQpLAor LSAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjMTI4LAorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIFUgeyBoYWx2ZXM6IChzZWxmLCBzZWxmKSB9LnZlYy5hbnkoKQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIE1hc2sgcmVkdWN0 aW9uIGltcGxlbWVudGF0aW9uIGZvciBgYWFyY2g2NGAgdGFyZ2V0cworLW1hY3JvX3J1bGVzISBp bXBsX21hc2tfcmVkdWN0aW9ucyB7CistICAgIC8vIDY0LWJpdCB3aWRlIG1hc2tzCistICAgICht OHg4KSA9PiB7CistICAgICAgICBhYXJjaDY0XzY0X25lb25faW1wbCEobTh4OCwgbTh4MTYpOwor LSAgICB9OworLSAgICAobTE2eDQpID0+IHsKKy0gICAgICAgIGFhcmNoNjRfNjRfbmVvbl9pbXBs IShtMTZ4NCwgbTE2eDgpOworLSAgICB9OworLSAgICAobTMyeDIpID0+IHsKKy0gICAgICAgIGFh cmNoNjRfNjRfbmVvbl9pbXBsIShtMzJ4MiwgbTMyeDQpOworLSAgICB9OworLSAgICAvLyAxMjgt Yml0IHdpZGUgbWFza3MKKy0gICAgKG04eDE2KSA9PiB7CistICAgICAgICBhYXJjaDY0XzEyOF9u ZW9uX2ltcGwhKG04eDE2LCB2bWludnFfdTgsIHZtYXh2cV91OCk7CistICAgIH07CistICAgICht MTZ4OCkgPT4geworLSAgICAgICAgYWFyY2g2NF8xMjhfbmVvbl9pbXBsIShtMTZ4OCwgdm1pbnZx X3UxNiwgdm1heHZxX3UxNik7CistICAgIH07CistICAgIChtMzJ4NCkgPT4geworLSAgICAgICAg YWFyY2g2NF8xMjhfbmVvbl9pbXBsIShtMzJ4NCwgdm1pbnZxX3UzMiwgdm1heHZxX3UzMik7Cist ICAgIH07CistICAgIC8vIEZhbGxiYWNrIHRvIExMVk0ncyBkZWZhdWx0IGNvZGUtZ2VuZXJhdGlv bjoKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsK Ky0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNTYgKzAsMCBA QAorLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24gZm9yIGBhcm1gIHRhcmdldHMK Ky0KKy0vLy8gSW1wbGVtZW50YXRpb24gZm9yIEFSTSArIHY3ICsgTkVPTiBmb3IgNjQtYml0IG9y IDEyOC1iaXQgd2lkZSB2ZWN0b3JzIHdpdGgKKy0vLy8gbW9yZSB0aGFuIHR3byBlbGVtZW50cy4K Ky1tYWNyb19ydWxlcyEgYXJtXzEyOF92N19uZW9uX2ltcGwgeworLSAgICAoJGlkOmlkZW50LCAk aGFsZjppZGVudCwgJHZwbWluOmlkZW50LCAkdnBtYXg6aWRlbnQpID0+IHsKKy0gICAgICAgIGlt cGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNb dGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInY3LG5lb24iKV0KKy0gICAgICAgICAgICB1bnNhZmUg Zm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6 OmFybTo6JHZwbWluOworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRl OworLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgIGhhbHZl czogKCRoYWxmLCAkaGFsZiksCistICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogc2Vs ZiB9LmhhbHZlczsKKy0gICAgICAgICAgICAgICAgbGV0IGg6ICRoYWxmID0gdHJhbnNtdXRlKCR2 cG1pbih0cmFuc211dGUoaGFsdmVzLjApLCB0cmFuc211dGUoaGFsdmVzLjEpKSk7CistICAgICAg ICAgICAgICAgIGguYWxsKCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBp bXBsIEFueSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAj W3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJ2NyxuZW9uIildCistICAgICAgICAgICAgdW5zYWZl IGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNo Ojphcm06OiR2cG1heDsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0 ZTsKKy0gICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICBoYWx2 ZXM6ICgkaGFsZiwgJGhhbGYpLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNl bGYgfS5oYWx2ZXM7CistICAgICAgICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRyYW5zbXV0ZSgk dnBtYXgodHJhbnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkpOworLSAgICAg ICAgICAgICAgICBoLmFueSgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Owor LX0KKy0KKy0vLy8gTWFzayByZWR1Y3Rpb24gaW1wbGVtZW50YXRpb24gZm9yIGBhcm1gIHRhcmdl dHMKKy1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMgeworLSAgICAvLyAxMjgtYml0 IHdpZGUgbWFza3MKKy0gICAgKG04eDE2KSA9PiB7CistICAgICAgICBhcm1fMTI4X3Y3X25lb25f aW1wbCEobTh4MTYsIG04eDgsIHZwbWluX3U4LCB2cG1heF91OCk7CistICAgIH07CistICAgICht MTZ4OCkgPT4geworLSAgICAgICAgYXJtXzEyOF92N19uZW9uX2ltcGwhKG0xNng4LCBtMTZ4NCwg dnBtaW5fdTE2LCB2cG1heF91MTYpOworLSAgICB9OworLSAgICAobTMyeDQpID0+IHsKKy0gICAg ICAgIGFybV8xMjhfdjdfbmVvbl9pbXBsIShtMzJ4NCwgbTMyeDIsIHZwbWluX3UzMiwgdnBtYXhf dTMyKTsKKy0gICAgfTsKKy0gICAgLy8gRmFsbGJhY2sgdG8gTExWTSdzIGRlZmF1bHQgY29kZS1n ZW5lcmF0aW9uOgorLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBmYWxsYmFja19pbXBs ISgkaWQpOworLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNr LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrLnJzCisrKysgL2Rl di9udWxsCitAQCAtMSw4ICswLDAgQEAKKy0vLyEgRGVmYXVsdCBtYXNrIHJlZHVjdGlvbiBpbXBs ZW1lbnRhdGlvbnMuCistCistLy8vIERlZmF1bHQgbWFzayByZWR1Y3Rpb24gaW1wbGVtZW50YXRp b24KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMgeworLSAgICAoJGlkOmlkZW50 KSA9PiB7CistICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOworLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlv bnMvbWFzay9mYWxsYmFja19pbXBsLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1wbC5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFja19pbXBsLnJzCisrKysgL2Rldi9udWxsCitAQCAt MSwyMzcgKzAsMCBAQAorLS8vISBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIGEgbWFzayByZWR1 Y3Rpb24gZm9yIGFueSB0YXJnZXQuCistCistbWFjcm9fcnVsZXMhIGZhbGxiYWNrX3RvX290aGVy X2ltcGwgeworLSAgICAoJGlkOmlkZW50LCAkb3RoZXI6aWRlbnQpID0+IHsKKy0gICAgICAgIGlt cGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVu c2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBtOiAkb3Ro ZXIgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgIG0uYWxs KCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlk IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNl bGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgbTogJG90aGVyID0gY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBtLmFueSgpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8gRmFsbGJhY2sgaW1wbGVtZW50 YXRpb24uCistbWFjcm9fcnVsZXMhIGZhbGxiYWNrX2ltcGwgeworLSAgICAvLyAxNi1iaXQgd2lk ZSBtYXNrczoKKy0gICAgKG04eDIpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciBtOHgyIHsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYp IC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgaTogdTE2ID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBpID09IHUxNjo6bWF4X3ZhbHVlKCkKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgbTh4MiB7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAt PiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IHUxNiA9IGNyYXRlOjptZW06OnRyYW5z bXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgaSAhPSAwCistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLSAgICB9OworLSAgICAvLyAzMi1iaXQgd2lkZSBtYXNrcworLSAgICAobTh4NCkg PT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDQgeworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAg ICAgICAgIGxldCBpOiB1MzIgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAg ICAgICAgICAgIGkgPT0gdTMyOjptYXhfdmFsdWUoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgICAgIGltcGwgQW55IGZvciBtOHg0IHsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAg ICAgICBsZXQgaTogdTMyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAg ICAgICAgICBpICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAg IChtMTZ4MikgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTE2eDIsIG04 eDQpOworLSAgICB9OworLSAgICAvLyA2NC1iaXQgd2lkZSBtYXNrczoKKy0gICAgKG04eDgpID0+ IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciBtOHg4IHsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAg ICAgICBsZXQgaTogdTY0ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAg ICAgICAgICBpID09IHU2NDo6bWF4X3ZhbHVlKCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgICAgICBpbXBsIEFueSBmb3IgbTh4OCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAg ICAgbGV0IGk6IHU2NCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAg ICAgICAgaSAhPSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAo bTE2eDQpID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNng0LCBtOHg4 KTsKKy0gICAgfTsKKy0gICAgKG0zMngyKSA9PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhl cl9pbXBsIShtMzJ4MiwgbTE2eDQpOworLSAgICB9OworLSAgICAvLyBGSVhNRTogNjR4MSBtYXhr CistICAgIC8vIDEyOC1iaXQgd2lkZSBtYXNrczoKKy0gICAgKG04eDE2KSA9PiB7CistICAgICAg ICBpbXBsIEFsbCBmb3IgbTh4MTYgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBp OiB1MTI4ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBp ID09IHUxMjg6Om1heF92YWx1ZSgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAg ICAgaW1wbCBBbnkgZm9yIG04eDE2IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQg aTogdTEyOCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAg aSAhPSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAobTE2eDgp ID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNng4LCBtOHgxNik7Cist ICAgIH07CistICAgIChtMzJ4NCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1w bCEobTMyeDQsIG0xNng4KTsKKy0gICAgfTsKKy0gICAgKG02NHgyKSA9PiB7CistICAgICAgICBm YWxsYmFja190b19vdGhlcl9pbXBsIShtNjR4MiwgbTMyeDQpOworLSAgICB9OworLSAgICAobTEy OHgxKSA9PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTI4eDEsIG02NHgy KTsKKy0gICAgfTsKKy0gICAgLy8gMjU2LWJpdCB3aWRlIG1hc2tzCistICAgIChtOHgzMikgPT4g eworLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDMyIHsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAg ICAgICBsZXQgaTogW3UxMjg7IDJdID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAg ICAgICAgICAgICAgICBsZXQgbzogW3UxMjg7IDJdID0gW3UxMjg6Om1heF92YWx1ZSgpOyAyXTsK Ky0gICAgICAgICAgICAgICAgaSA9PSBvCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICAgICAgaW1wbCBBbnkgZm9yIG04eDMyIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBs ZXQgaTogW3UxMjg7IDJdID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAg ICAgICAgICBsZXQgbzogW3UxMjg7IDJdID0gWzA7IDJdOworLSAgICAgICAgICAgICAgICBpICE9 IG8KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIChtMTZ4MTYpID0+ IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNngxNiwgbTh4MzIpOworLSAg ICB9OworLSAgICAobTMyeDgpID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwh KG0zMng4LCBtMTZ4MTYpOworLSAgICB9OworLSAgICAobTY0eDQpID0+IHsKKy0gICAgICAgIGZh bGxiYWNrX3RvX290aGVyX2ltcGwhKG02NHg0LCBtMzJ4OCk7CistICAgIH07CistICAgIChtMTI4 eDIpID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xMjh4MiwgbTY0eDQp OworLSAgICB9OworLSAgICAvLyA1MTItYml0IHdpZGUgbWFza3MKKy0gICAgKG04eDY0KSA9PiB7 CistICAgICAgICBpbXBsIEFsbCBmb3IgbTh4NjQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAg ICAgIGxldCBpOiBbdTEyODsgNF0gPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAg ICAgICAgICAgICAgIGxldCBvOiBbdTEyODsgNF0gPSBbdTEyODo6bWF4X3ZhbHVlKCk7IDRdOwor LSAgICAgICAgICAgICAgICBpID09IG8KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg ICAgICBpbXBsIEFueSBmb3IgbTh4NjQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxl dCBpOiBbdTEyODsgNF0gPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAg ICAgICAgIGxldCBvOiBbdTEyODsgNF0gPSBbMDsgNF07CistICAgICAgICAgICAgICAgIGkgIT0g bworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKG0xNngzMikgPT4g eworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTE2eDMyLCBtOHg2NCk7CistICAg IH07CistICAgIChtMzJ4MTYpID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwh KG0zMngxNiwgbTE2eDMyKTsKKy0gICAgfTsKKy0gICAgKG02NHg4KSA9PiB7CistICAgICAgICBm YWxsYmFja190b19vdGhlcl9pbXBsIShtNjR4OCwgbTMyeDE2KTsKKy0gICAgfTsKKy0gICAgKG0x Mjh4NCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTEyOHg0LCBtNjR4 OCk7CistICAgIH07CistICAgIC8vIE1hc2tzIHdpdGggcG9pbnRlci1zaXplZCBlbGVtZW50czY0 CistICAgIChtc2l6ZXgyKSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBp ZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICAgICAgICAg IGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDIsIG02NHgyKTsKKy0gICAgICAgICAgICB9 IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0geworLSAgICAgICAg ICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXgyLCBtMzJ4Mik7CistICAgICAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9y dGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICB9OworLSAgICAobXNpemV4NCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAg ICAgICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAgICAg ICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg0LCBtNjR4NCk7CistICAgICAg ICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0g ICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4NCwgbTMyeDQpOwor LSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1 bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOworLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy0gICAgKG1zaXpleDgpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgewor LSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0g ICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4OCwgbTY0eDgpOwor LSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIp XSB7CistICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDgsIG0z Mng4KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBjb21waWxlX2Vy cm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISByZWN1cnNlX2hhbGYg eworLSAgICAoJHZpZDppZGVudCwgJHZpZF9oOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFs bCBmb3IgJHZpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZl IGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAg ICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkdmlkX2gsICR2aWRfaCksCistICAgICAgICAgICAg ICAgICAgICB2ZWM6ICR2aWQsCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg bGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7CistICAgICAgICAgICAgICAgIGhh bHZlcy4wLmFsbCgpICYmIGhhbHZlcy4xLmFsbCgpCistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICAgICAgaW1wbCBBbnkgZm9yICR2aWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAg ICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJHZpZF9oLCAkdmlk X2gpLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmlkLAorLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwor LSAgICAgICAgICAgICAgICBoYWx2ZXMuMC5hbnkoKSB8fCBoYWx2ZXMuMS5hbnkoKQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv eDg2LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5ycworKysrIC9kZXYv bnVsbAorQEAgLTEsMjE2ICswLDAgQEAKKy0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0 aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFyZ2V0cworLQorLSNbY2ZnKHRhcmdldF9mZWF0 dXJlID0gInNzZSIpXQorLSNbbWFjcm9fdXNlXQorLW1vZCBzc2U7CistCistI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlMiIpXQorLSNbbWFjcm9fdXNlXQorLW1vZCBzc2UyOworLQorLSNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eCIpXQorLSNbbWFjcm9fdXNlXQorLW1vZCBhdng7CistCist I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXQorLSNbbWFjcm9fdXNlXQorLW1vZCBhdngy OworLQorLS8vLyB4ODYgNjQtYml0IG04eDggaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEg eDg2X204eDhfaW1wbCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGZhbGxiYWNr X2ltcGwhKCRpZCk7CistICAgIH07CistfQorLQorLS8vLyB4ODYgMTI4LWJpdCBtOHgxNiBpbXBs ZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTh4MTZfaW1wbCB7CistICAgICgkaWQ6aWRl bnQpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdl dF9mZWF0dXJlID0gInNzZTIiKV0geworLSAgICAgICAgICAgICAgICB4ODZfbTh4MTZfc3NlMl9p bXBsISgkaWQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGZhbGxi YWNrX2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K Ky0KKy0vLy8geDg2IDEyOC1iaXQgbTMyeDQgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEg eDg2X20zMng0X2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBjZmdfaWYh IHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UiKV0geworLSAg ICAgICAgICAgICAgICB4ODZfbTMyeDRfc3NlX2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfSBl bHNlIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLS8vLyB4ODYgMTI4LWJpdCBtNjR4MiBp bXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTY0eDJfaW1wbCB7CistICAgICgkaWQ6 aWRlbnQpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTIiKV0geworLSAgICAgICAgICAgICAgICB4ODZfbTY0eDJfc3Nl Ml9pbXBsISgkaWQpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVy ZSA9ICJzc2UiKV0geworLSAgICAgICAgICAgICAgICB4ODZfbTMyeDRfc3NlX2ltcGwhKCRpZCk7 CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEo JGlkKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLS8vLyB4 ODYgMjU2LWJpdCBtOHgzMiBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTh4MzJf aW1wbCB7CistICAgICgkaWQ6aWRlbnQsICRoYWxmX2lkOmlkZW50KSA9PiB7CistICAgICAgICBj ZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIild IHsKKy0gICAgICAgICAgICAgICAgeDg2X204eDMyX2F2eDJfaW1wbCEoJGlkKTsKKy0gICAgICAg ICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAg ICAgICAgICAgeDg2X204eDMyX2F2eF9pbXBsISgkaWQpOworLSAgICAgICAgICAgIH0gZWxzZSBp ZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKy0gICAgICAgICAgICAgICAgcmVj dXJzZV9oYWxmISgkaWQsICRoYWxmX2lkKTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAg ICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOworLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy19CistCistLy8vIHg4NiAyNTYtYml0IG0zMng4IGltcGxlbWVudGF0aW9u CistbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4OF9pbXBsIHsKKy0gICAgKCRpZDppZGVudCwgJGhhbGZf aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAgIHg4Nl9tMzJ4OF9h dnhfaW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1 cmUgPSAic3NlIildIHsKKy0gICAgICAgICAgICAgICAgcmVjdXJzZV9oYWxmISgkaWQsICRoYWxm X2lkKTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBmYWxsYmFja19p bXBsISgkaWQpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCist Ly8vIHg4NiAyNTYtYml0IG02NHg0IGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9t NjR4NF9pbXBsIHsKKy0gICAgKCRpZDppZGVudCwgJGhhbGZfaWQ6aWRlbnQpID0+IHsKKy0gICAg ICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2 eCIpXSB7CistICAgICAgICAgICAgICAgIHg4Nl9tNjR4NF9hdnhfaW1wbCEoJGlkKTsKKy0gICAg ICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlIildIHsKKy0gICAg ICAgICAgICAgICAgcmVjdXJzZV9oYWxmISgkaWQsICRoYWxmX2lkKTsKKy0gICAgICAgICAgICB9 IGVsc2UgeworLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOworLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIEZhbGxiYWNrIGltcGxlbWVu dGF0aW9uLgorLW1hY3JvX3J1bGVzISB4ODZfaW50cl9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkg PT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hbGw7CistICAgICAgICAgICAgICAg IHNpbWRfcmVkdWNlX2FsbChzZWxmLjApCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hbnk7CistICAgICAgICAgICAgICAgIHNpbWRfcmVk dWNlX2FueShzZWxmLjApCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K Ky0KKy0vLy8gTWFzayByZWR1Y3Rpb24gaW1wbGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2 XzY0YCB0YXJnZXRzCistbWFjcm9fcnVsZXMhIGltcGxfbWFza19yZWR1Y3Rpb25zIHsKKy0gICAg Ly8gNjQtYml0IHdpZGUgbWFza3MKKy0gICAgKG04eDgpID0+IHsKKy0gICAgICAgIHg4Nl9tOHg4 X2ltcGwhKG04eDgpOworLSAgICB9OworLSAgICAobTE2eDQpID0+IHsKKy0gICAgICAgIHg4Nl9t OHg4X2ltcGwhKG0xNng0KTsKKy0gICAgfTsKKy0gICAgKG0zMngyKSA9PiB7CistICAgICAgICB4 ODZfbTh4OF9pbXBsIShtMzJ4Mik7CistICAgIH07CistICAgIC8vIDEyOC1iaXQgd2lkZSBtYXNr cworLSAgICAobTh4MTYpID0+IHsKKy0gICAgICAgIHg4Nl9tOHgxNl9pbXBsIShtOHgxNik7Cist ICAgIH07CistICAgIChtMTZ4OCkgPT4geworLSAgICAgICAgeDg2X204eDE2X2ltcGwhKG0xNng4 KTsKKy0gICAgfTsKKy0gICAgKG0zMng0KSA9PiB7CistICAgICAgICB4ODZfbTMyeDRfaW1wbCEo bTMyeDQpOworLSAgICB9OworLSAgICAobTY0eDIpID0+IHsKKy0gICAgICAgIHg4Nl9tNjR4Ml9p bXBsIShtNjR4Mik7CistICAgIH07CistICAgIChtMTI4eDEpID0+IHsKKy0gICAgICAgIHg4Nl9p bnRyX2ltcGwhKG0xMjh4MSk7CistICAgIH07CistICAgIC8vIDI1Ni1iaXQgd2lkZSBtYXNrczoK Ky0gICAgKG04eDMyKSA9PiB7CistICAgICAgICB4ODZfbTh4MzJfaW1wbCEobTh4MzIsIG04eDE2 KTsKKy0gICAgfTsKKy0gICAgKG0xNngxNikgPT4geworLSAgICAgICAgeDg2X204eDMyX2ltcGwh KG0xNngxNiwgbTE2eDgpOworLSAgICB9OworLSAgICAobTMyeDgpID0+IHsKKy0gICAgICAgIHg4 Nl9tMzJ4OF9pbXBsIShtMzJ4OCwgbTMyeDQpOworLSAgICB9OworLSAgICAobTY0eDQpID0+IHsK Ky0gICAgICAgIHg4Nl9tNjR4NF9pbXBsIShtNjR4NCwgbTY0eDIpOworLSAgICB9OworLSAgICAo bTEyOHgyKSA9PiB7CistICAgICAgICB4ODZfaW50cl9pbXBsIShtMTI4eDIpOworLSAgICB9Owor LSAgICAobXNpemV4MikgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYg I1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAgICAgICAgICAgICBm YWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXgyLCBtNjR4Mik7CistICAgICAgICAgICAgfSBl bHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0gICAgICAgICAg ICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTMyeDIpOworLSAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRl ZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy0gICAgKG1zaXpleDQpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAg ICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgICAg ICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4NCwgbTY0eDQpOworLSAgICAgICAg ICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7CistICAg ICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQsIG0zMng0KTsKKy0g ICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5z dXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistICAgIChtc2l6ZXg4KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0g ICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAg ICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDgsIG02NHg4KTsKKy0g ICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0g eworLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtMzJ4 OCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJv ciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLQorLSAgICAvLyBGYWxsYmFjayB0byBMTFZNJ3MgZGVmYXVs dCBjb2RlLWdlbmVyYXRpb246CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGZhbGxi YWNrX2ltcGwhKCRpZCk7CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94 ODYvYXZ4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDk1ICswLDAgQEAKKy0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxl bWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFyZ2V0cyB3aXRoIGBBVlhgCistCist Ly8vIGB4ODZgL2B4ODZfNjRgIDI1Ni1iaXQgYEFWWGAgaW1wbGVtZW50YXRpb24KKy0vLy8gRklY TUU6IGl0IG1pZ2h0IGJlIGZhc3RlciBoZXJlIHRvIGRvIHR3byBgX21tX21vdm1hc2tfZXBpOGAK Ky0jW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0KKy1tYWNyb19ydWxlcyEgeDg2X204eDMy X2F2eF9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9y ICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVh dHVyZShlbmFibGUgPSAiYXZ4IildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAt PiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfdGVzdGNfc2kyNTY7 CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X3Rlc3RjX3NpMjU2Owor LSAgICAgICAgICAgICAgICBfbW0yNTZfdGVzdGNfc2kyNTYoY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHNlbGYpLCBjcmF0ZTo6bWVtOjp0cmFuc211dGUoJGlkOjpzcGxhdCh0cnVlKSkpICE9IDAKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJs ZSA9ICJhdngiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewor LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl90ZXN0el9zaTI1NjsKKy0gICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfdGVzdHpfc2kyNTY7CistICAgICAgICAg ICAgICAgIF9tbTI1Nl90ZXN0el9zaTI1NihjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZiksIGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy19CistCistLy8vIGB4ODZgL2B4ODZfNjRgIDI1Ni1iaXQgbTMyeDggYEFW WGAgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2X20zMng4X2F2eF9pbXBsIHsKKy0g ICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAi c3NlIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAg ICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfcHM7CistICAgICAgICAgICAg ICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNrX3BzOworLSAgICAgICAgICAgICAg ICAvLyBfbW0yNTZfbW92ZW1hc2tfcHMoYSkgY3JlYXRlcyBhIDhiaXQgbWFzayBjb250YWluaW5n IHRoZQorLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBlYWNoIGxh bmUgb2YgYGFgLiBJZiBhbGwgYml0cyBhcmUKKy0gICAgICAgICAgICAgICAgLy8gc2V0LCB0aGVu IGFsbCA4IGxhbmVzIG9mIHRoZSBtYXNrIGFyZSB0cnVlLgorLSAgICAgICAgICAgICAgICBfbW0y NTZfbW92ZW1hc2tfcHMoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAwYl8xMTExXzEx MTFfaTMyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9y ICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVh dHVyZShlbmFibGUgPSAic3NlIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAt PiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfcHM7 CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNrX3BzOwor LQorLSAgICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1hc2tfcHMoY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHNlbGYpKSAhPSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K Ky0KKy0vLy8gYHg4NmAvYHg4Nl82NGAgMjU2LWJpdCBtNjR4NCBgQVZYYCBpbXBsZW1lbnRhdGlv bgorLW1hY3JvX3J1bGVzISB4ODZfbTY0eDRfYXZ4X2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9 PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KKy0gICAgICAg ICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNo Ojp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19wZDsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2 XzY0OjpfbW0yNTZfbW92ZW1hc2tfcGQ7CistICAgICAgICAgICAgICAgIC8vIF9tbTI1Nl9tb3Zl bWFza19wZChhKSBjcmVhdGVzIGEgNGJpdCBtYXNrIGNvbnRhaW5pbmcgdGhlCistICAgICAgICAg ICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggbGFuZSBvZiBgYWAuIElmIGFs bCBiaXRzIGFyZQorLSAgICAgICAgICAgICAgICAvLyBzZXQsIHRoZW4gYWxsIDQgbGFuZXMgb2Yg dGhlIG1hc2sgYXJlIHRydWUuCistICAgICAgICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19wZChj cmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpID09IDBiXzExMTFfaTMyCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIild CistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfcGQ7CistICAgICAgICAgICAgICAgICNb Y2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNrX3BkOworLQorLSAgICAgICAgICAgICAgICBf bW0yNTZfbW92ZW1hc2tfcGQoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAwCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4 Mi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrL3g4Ni9hdngyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9h dngyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNSArMCwwIEBACistLy8hIE1hc2sgcmVkdWN0 aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0aCBg QVZYMmAuCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLy8geDg2L3g4Nl82NCAyNTYtYml0IG04 eDMyIEFWWDIgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2X204eDMyX2F2eDJfaW1w bCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5h YmxlID0gInNzZTIiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wg eworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4OworLSAg ICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4OworLSAg ICAgICAgICAgICAgICAvLyBfbW0yNTZfbW92ZW1hc2tfZXBpOChhKSBjcmVhdGVzIGEgMzJiaXQg bWFzayBjb250YWluaW5nIHRoZQorLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50 IGJpdCBvZiBlYWNoIGJ5dGUgb2YgYGFgLiBJZiBhbGwKKy0gICAgICAgICAgICAgICAgLy8gYml0 cyBhcmUgc2V0LCB0aGVuIGFsbCAzMiBsYW5lcyBvZiB0aGUgbWFzayBhcmUKKy0gICAgICAgICAg ICAgICAgLy8gdHJ1ZS4KKy0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX2VwaTgoY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAtMV9pMzIKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UyIildCistICAg ICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg I1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKKy0gICAgICAgICAgICAgICAgI1tjZmco dGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJj aDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKKy0KKy0gICAgICAgICAgICAgICAgX21t MjU2X21vdmVtYXNrX2VwaTgoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAwCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3Nl LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25z L21hc2sveDg2L3NzZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3Nl LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNSArMCwwIEBACistLy8hIE1hc2sgcmVkdWN0aW9u cyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0aCBgU1NF YC4KKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8vLyBgeDg2YC9geDg2XzY0YCAxMjgtYml0IGBt MzJ4NGAgYFNTRWAgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2X20zMng0X3NzZV9p bXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShl bmFibGUgPSAic3NlIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29s IHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfcHM7CistICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX3BzOworLSAgICAgICAgICAg ICAgICAvLyBfbW1fbW92ZW1hc2tfcHMoYSkgY3JlYXRlcyBhIDRiaXQgbWFzayBjb250YWluaW5n IHRoZQorLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBlYWNoIGxh bmUgb2YgYGFgLiBJZiBhbGwKKy0gICAgICAgICAgICAgICAgLy8gYml0cyBhcmUgc2V0LCB0aGVu IGFsbCA0IGxhbmVzIG9mIHRoZSBtYXNrIGFyZQorLSAgICAgICAgICAgICAgICAvLyB0cnVlLgor LSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfcHMoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNl bGYpKSA9PSAwYl8xMTExX2kzMgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAg IGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg ICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQorLSAgICAgICAgICAgIHVuc2FmZSBm biBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNo ID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX21v dmVtYXNrX3BzOworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQi KV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3ZlbWFz a19wczsKKy0KKy0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRy YW5zbXV0ZShzZWxmKSkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZTIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlMi5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlMi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNjgg KzAsMCBAQAorLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24gZm9yIGB4ODZgIGFu ZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGggYFNTRTJgLgorLSMhW2FsbG93KHVudXNlZCldCistCist Ly8vIGB4ODZgL2B4ODZfNjRgIDEyOC1iaXQgbTY0eDIgYFNTRTJgIGltcGxlbWVudGF0aW9uCist bWFjcm9fcnVsZXMhIHg4Nl9tNjR4Ml9zc2UyX2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7 CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KKy0gICAgICAgICAg ICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4 ODY6Ol9tbV9tb3ZlbWFza19wZDsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2gg PSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0Ojpf bW1fbW92ZW1hc2tfcGQ7CistICAgICAgICAgICAgICAgIC8vIF9tbV9tb3ZlbWFza19wZChhKSBj cmVhdGVzIGEgMmJpdCBtYXNrIGNvbnRhaW5pbmcgdGhlCistICAgICAgICAgICAgICAgIC8vIG1v c3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggbGFuZSBvZiBgYWAuIElmIGFsbAorLSAgICAgICAg ICAgICAgICAvLyBiaXRzIGFyZSBzZXQsIHRoZW4gYWxsIDIgbGFuZXMgb2YgdGhlIG1hc2sgYXJl CistICAgICAgICAgICAgICAgIC8vIHRydWUuCistICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFz a19wZChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpID09IDBiXzExX2kzMgorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNz ZSIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX3BkOworLSAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3ZlbWFza19wZDsKKy0KKy0gICAgICAgICAgICAgICAgX21t X21vdmVtYXNrX3BkKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIGB4ODZgL2B4ODZfNjRgIDEy OC1iaXQgbTh4MTYgYFNTRTJgIGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tOHgx Nl9zc2UyX2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBm b3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9m ZWF0dXJlKGVuYWJsZSA9ICJzc2UyIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxm KSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2Iild CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfZXBp ODsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfZXBpODsK Ky0gICAgICAgICAgICAgICAgLy8gX21tX21vdmVtYXNrX2VwaTgoYSkgY3JlYXRlcyBhIDE2Yml0 IG1hc2sgY29udGFpbmluZyB0aGUKKy0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2Fu dCBiaXQgb2YgZWFjaCBieXRlIG9mIGBhYC4gSWYgYWxsCistICAgICAgICAgICAgICAgIC8vIGJp dHMgYXJlIHNldCwgdGhlbiBhbGwgMTYgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCistICAgICAgICAg ICAgICAgIC8vIHRydWUuCistICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KGNyYXRl OjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gaTMyOjpmcm9tKHUxNjo6bWF4X3ZhbHVlKCkpCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFi bGUgPSAic3NlMiIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7 CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX2VwaTg7CistICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX2VwaTg7CistCistICAgICAg ICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkg IT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxlLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxlLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vc2h1ZmZsZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTUwICswLDAgQEAK Ky0vLyEgSW1wbGVtZW50YXRpb25zIG9mIHRoZSBgU2h1ZmZsZVJlc3VsdGAgdHJhaXQgZm9yIHRo ZSBkaWZmZXJlbnQgbnVtYmVycyBvZgorLS8vISBsYW5lcyBhbmQgdmVjdG9yIGVsZW1lbnQgdHlw ZXMuCistCistdXNlIGNyYXRlOjptYXNrczo6KjsKKy11c2UgY3JhdGU6OnNlYWxlZDo6e1NlYWws IFNodWZmbGV9OworLQorLW1hY3JvX3J1bGVzISBpbXBsX3NodWZmbGUgeworLSAgICAoJGFycmF5 OnR5LCAkYmFzZTp0eSwgJG91dDp0eSkgPT4geworLSAgICAgICAgaW1wbCBTZWFsPCRhcnJheT4g Zm9yICRiYXNlIHt9CistICAgICAgICBpbXBsIFNodWZmbGU8JGFycmF5PiBmb3IgJGJhc2Ugewor LSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJG91dDsKKy0gICAgICAgIH0KKy0gICAgfTsKKy19 CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDIg fQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHg0IH0K Ky1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4OCB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgxNiB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDMyXSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgzMiB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDY0XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHg2NCB9Cist CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDIgfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHg0IH0KKy1p bXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4OCB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHgxNiB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDMyXSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHgzMiB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDY0XSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHg2NCB9CistCist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDIgfQorLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHg0IH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgOF0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4OCB9CistaW1wbF9z aHVmZmxlISB7IFt1MzI7IDE2XSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHgxNiB9CistaW1wbF9z aHVmZmxlISB7IFt1MzI7IDMyXSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHgzMiB9CistaW1wbF9z aHVmZmxlISB7IFt1MzI7IDY0XSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHg2NCB9CistCistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4MiB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4NCB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDhdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4OCB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDE2IH0KKy1p bXBsX3NodWZmbGUhIHsgW3UzMjsgMzJdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4MzIgfQor LQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDIg fQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDQg fQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDgg fQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngx NiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDMyXSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2 eDMyIH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG0xNiwgY3JhdGU6OmNvZGVnZW46 Om0xNngyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIG0xNiwgY3JhdGU6OmNvZGVnZW46 Om0xNng0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIG0xNiwgY3JhdGU6OmNvZGVnZW46 Om0xNng4IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBtMTYsIGNyYXRlOjpjb2RlZ2Vu OjptMTZ4MTYgfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgaTMyLCBjcmF0ZTo6Y29k ZWdlbjo6aTMyeDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaTMyLCBjcmF0ZTo6Y29k ZWdlbjo6aTMyeDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgaTMyLCBjcmF0ZTo6Y29k ZWdlbjo6aTMyeDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIGkzMiwgY3JhdGU6OmNv ZGVnZW46OmkzMngxNiB9CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1MzIsIGNyYXRl Ojpjb2RlZ2VuOjp1MzJ4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1MzIsIGNyYXRl Ojpjb2RlZ2VuOjp1MzJ4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1MzIsIGNyYXRl Ojpjb2RlZ2VuOjp1MzJ4OCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgdTMyLCBjcmF0 ZTo6Y29kZWdlbjo6dTMyeDE2IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGYzMiwg Y3JhdGU6OmNvZGVnZW46OmYzMngyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGYzMiwg Y3JhdGU6OmNvZGVnZW46OmYzMng0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGYzMiwg Y3JhdGU6OmNvZGVnZW46OmYzMng4IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBmMzIs IGNyYXRlOjpjb2RlZ2VuOjpmMzJ4MTYgfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwg bTMyLCBjcmF0ZTo6Y29kZWdlbjo6bTMyeDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwg bTMyLCBjcmF0ZTo6Y29kZWdlbjo6bTMyeDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwg bTMyLCBjcmF0ZTo6Y29kZWdlbjo6bTMyeDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0s IG0zMiwgY3JhdGU6OmNvZGVnZW46Om0zMngxNiB9CistCistLyogRklYTUU6IDY0LWJpdCBzaW5n bGUgZWxlbWVudCB2ZWN0b3IKKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwgY3JhdGU6 OmNvZGVnZW46Omk2NHgxIH0KKy0qLworLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgaTY0LCBj cmF0ZTo6Y29kZWdlbjo6aTY0eDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaTY0LCBj cmF0ZTo6Y29kZWdlbjo6aTY0eDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgaTY0LCBj cmF0ZTo6Y29kZWdlbjo6aTY0eDggfQorLQorLS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1l bnQgdmVjdG9yCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2Vu OjppNjR4MSB9CistKi8KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHU2NCwgY3JhdGU6OmNv ZGVnZW46OnU2NHgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIHU2NCwgY3JhdGU6OmNv ZGVnZW46OnU2NHg0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIHU2NCwgY3JhdGU6OmNv ZGVnZW46OnU2NHg4IH0KKy0KKy0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3Rv cgorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDEg fQorLSovCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpm NjR4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpm NjR4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpm NjR4OCB9CistCistLyogRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgxIH0KKy0qLwor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDIgfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDQgfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgbTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDggfQor LQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgaXNpemUsIGNyYXRlOjpjb2RlZ2VuOjppc2l6 ZXgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGlzaXplLCBjcmF0ZTo6Y29kZWdlbjo6 aXNpemV4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBpc2l6ZSwgY3JhdGU6OmNvZGVn ZW46OmlzaXpleDggfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdXNpemUsIGNyYXRl Ojpjb2RlZ2VuOjp1c2l6ZXgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIHVzaXplLCBj cmF0ZTo6Y29kZWdlbjo6dXNpemV4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1c2l6 ZSwgY3JhdGU6OmNvZGVnZW46OnVzaXpleDggfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAy XSwgbXNpemUsIGNyYXRlOjpjb2RlZ2VuOjptc2l6ZXgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgNF0sIG1zaXplLCBjcmF0ZTo6Y29kZWdlbjo6bXNpemV4NCB9CistaW1wbF9zaHVmZmxlISB7 IFt1MzI7IDhdLCBtc2l6ZSwgY3JhdGU6OmNvZGVnZW46Om1zaXpleDggfQorLQorLWltcGw8VD4g U2VhbDxbdTMyOyAyXT4gZm9yICpjb25zdCBUIHt9CistaW1wbDxUPiBTaHVmZmxlPFt1MzI7IDJd PiBmb3IgKmNvbnN0IFQgeworLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjpjcHRy eDI8VD47CistfQorLWltcGw8VD4gU2VhbDxbdTMyOyA0XT4gZm9yICpjb25zdCBUIHt9CistaW1w bDxUPiBTaHVmZmxlPFt1MzI7IDRdPiBmb3IgKmNvbnN0IFQgeworLSAgICB0eXBlIE91dHB1dCA9 IGNyYXRlOjpjb2RlZ2VuOjpjcHRyeDQ8VD47CistfQorLWltcGw8VD4gU2VhbDxbdTMyOyA4XT4g Zm9yICpjb25zdCBUIHt9CistaW1wbDxUPiBTaHVmZmxlPFt1MzI7IDhdPiBmb3IgKmNvbnN0IFQg eworLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjpjcHRyeDg8VD47CistfQorLQor LWltcGw8VD4gU2VhbDxbdTMyOyAyXT4gZm9yICptdXQgVCB7fQorLWltcGw8VD4gU2h1ZmZsZTxb dTMyOyAyXT4gZm9yICptdXQgVCB7CistICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46 Om1wdHJ4MjxUPjsKKy19CistaW1wbDxUPiBTZWFsPFt1MzI7IDRdPiBmb3IgKm11dCBUIHt9Cist aW1wbDxUPiBTaHVmZmxlPFt1MzI7IDRdPiBmb3IgKm11dCBUIHsKKy0gICAgdHlwZSBPdXRwdXQg PSBjcmF0ZTo6Y29kZWdlbjo6bXB0cng0PFQ+OworLX0KKy1pbXBsPFQ+IFNlYWw8W3UzMjsgOF0+ IGZvciAqbXV0IFQge30KKy1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgOF0+IGZvciAqbXV0IFQgewor LSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjptcHRyeDg8VD47CistfQorLQorLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgaTEyOCwgY3JhdGU6OmNvZGVnZW46OmkxMjh4MSB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpMTI4LCBjcmF0ZTo6Y29kZWdlbjo6aTEyOHgyIH0K Ky1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGkxMjgsIGNyYXRlOjpjb2RlZ2VuOjppMTI4eDQg fQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgdTEyOCwgY3JhdGU6OmNvZGVnZW46OnUx Mjh4MSB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1MTI4LCBjcmF0ZTo6Y29kZWdlbjo6 dTEyOHgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIHUxMjgsIGNyYXRlOjpjb2RlZ2Vu Ojp1MTI4eDQgfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgbTEyOCwgY3JhdGU6OmNv ZGVnZW46Om0xMjh4MSB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtMTI4LCBjcmF0ZTo6 Y29kZWdlbjo6bTEyOHgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIG0xMjgsIGNyYXRl Ojpjb2RlZ2VuOjptMTI4eDQgfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZTFfZHluLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxlMV9keW4ucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVm ZmxlMV9keW4ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQwOCArMCwwIEBACistLy8hIFNodWZm bGUgdmVjdG9yIGxhbmVzIHdpdGggcnVuLXRpbWUgaW5kaWNlcy4KKy0KKy11c2UgY3JhdGU6Oio7 CistCistcHViIHRyYWl0IFNodWZmbGUxRHluIHsKKy0gICAgdHlwZSBJbmRpY2VzOworLSAgICBm biBzaHVmZmxlMV9keW4oc2VsZiwgXzogU2VsZjo6SW5kaWNlcykgLT4gU2VsZjsKKy19CistCist Ly8gRmFsbGJhY2sgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgaW1wbF9mYWxsYmFjayB7 CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yICRp ZCB7CistICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6 SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGxldCBtdXQgcmVzdWx0ID0gU2Vs Zjo6c3BsYXQoMCk7CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7 CistICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShpLCBzZWxmLmV4 dHJhY3QoaW5kaWNlcy5leHRyYWN0KGkpIGFzIHVzaXplKSk7CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgcmVzdWx0CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlMV9keW4geworLSAgICAodTh4 OCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcoYWxsKAor LSAgICAgICAgICAgICAgICBhbnkoCistICAgICAgICAgICAgICAgICAgICBhbGwodGFyZ2V0X2Fy Y2ggPSAiYWFyY2g2NCIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iKSwKKy0gICAgICAgICAgICAg ICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9ICJkb2Vzbm90ZXhpc3QiLCB0YXJnZXRfZmVhdHVyZSA9 ICJ2NyIsCistICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIp CistICAgICAgICAgICAgICAgICksCistICAgICAgICAgICAgICAgIGFueShmZWF0dXJlID0gImNv cmVfYXJjaCIsIGxpYmNvcmVfbmVvbikKKy0gICAgICAgICAgICApCistICAgICAgICAgICAgKV0g eworLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1OHg4IHsKKy0gICAgICAg ICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRp Y2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCistICAgICAgICAgICAgICAgICAgICAgICAg dXNlIGNyYXRlOjphcmNoOjphYXJjaDY0Ojp2dGJsMV91ODsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJkb2Vzbm90ZXhpc3QiKV0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFybTo6dnRibDFfdTg7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhlIGJpbmFyeSBpcyBjb21w aWxlZCB3aXRoCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVvbiBlbmFibGVkIGF0IGNv bXBpbGUtdGltZSBhbmQgY2FuIHRoZXJlZm9yZSBvbmx5CistICAgICAgICAgICAgICAgICAgICAg ICAgLy8gcnVuIG9uIENQVXMgdGhhdCBoYXZlIGl0IGVuYWJsZWQuCistICAgICAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2ltZChtZW06 OnRyYW5zbXV0ZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ0YmwxX3U4KG1l bTo6dHJhbnNtdXRlKHNlbGYuMCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzLjApKQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICApKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0gZWxzZSB7Cist ICAgICAgICAgICAgICAgIGltcGxfZmFsbGJhY2shKHU4eDgpOworLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy0gICAgKHU4eDE2KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsK Ky0gICAgICAgICAgICBpZiAjW2NmZyhhbGwoYW55KHRhcmdldF9hcmNoID0gIng4NiIsIHRhcmdl dF9hcmNoID0gIng4Nl82NCIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZmVh dHVyZSA9ICJzc3NlMyIpKV0geworLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZv ciB1OHgxNiB7CistICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAg ICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgICAgICAgICBmbiBzaHVm ZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAg ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9zaHVmZmxlX2VwaTg7Cist ICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCist ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9zaHVm ZmxlX2VwaTg7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzYWZlIGJlY2F1 c2UgdGhlIGJpbmFyeSBpcyBjb21waWxlZCB3aXRoCistICAgICAgICAgICAgICAgICAgICAgICAg Ly8gc3NzZTMgZW5hYmxlZCBhdCBjb21waWxlLXRpbWUgYW5kIGNhbiB0aGVyZWZvcmUgb25seQor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1biBvbiBDUFVzIHRoYXQgaGF2ZSBpdCBlbmFi bGVkLgorLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFuc211dGUoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBfbW1fc2h1ZmZsZV9lcGk4KG1lbTo6dHJhbnNtdXRlKHNlbGYuMCksCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKGluZGljZXMpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQorLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2gg PSAiYWFyY2g2NCIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9uKSkp XSB7CistICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU4eDE2IHsKKy0gICAg ICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBp bmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmFyY2g6OmFhcmNoNjQ6OnZxdGJsMXFfdTg7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgLy8gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhlIGJpbmFyeSBpcyBjb21waWxl ZCB3aXRoCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVvbiBlbmFibGVkIGF0IGNvbXBp bGUtdGltZSBhbmQgY2FuIHRoZXJlZm9yZSBvbmx5CistICAgICAgICAgICAgICAgICAgICAgICAg Ly8gcnVuIG9uIENQVXMgdGhhdCBoYXZlIGl0IGVuYWJsZWQuCistICAgICAgICAgICAgICAgICAg ICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2ltZChtZW06OnRy YW5zbXV0ZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZxdGJsMXFfdTgobWVt Ojp0cmFuc211dGUoc2VsZi4wKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoaW5kaWNlcy4wKSkKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9IGVsc2UgaWYg I1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImRvZXNub3RleGlzdCIsIHRhcmdldF9mZWF0dXJlID0g InY3IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0g Im5lb24iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAi Y29yZV9hcmNoIiwgbGliY29yZV9uZW9uKSkpXSB7CistICAgICAgICAgICAgICAgIGltcGwgU2h1 ZmZsZTFEeW4gZm9yIHU4eDE2IHsKKy0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9 IFNlbGY7CistICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAgICAg ICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFybTo6dnRibDJf dTg7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzYWZlIGJlY2F1c2Ug dGhlIGJpbmFyeSBpcyBjb21waWxlZCB3aXRoCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g bmVvbiBlbmFibGVkIGF0IGNvbXBpbGUtdGltZSBhbmQgY2FuIHRoZXJlZm9yZSBvbmx5CistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gcnVuIG9uIENQVXMgdGhhdCBoYXZlIGl0IGVuYWJsZWQu CistICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqOiB1 OHgxNiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6ICh1OHg4LCB1OHg4KSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgKGkwLCBpMSkgPSBVIHsgajogeSB9LnM7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCByMCA9IHZ0YmwyX3U4KAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWVtOjp0cmFuc211dGUoeCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoaTApCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByMSA9IHZ0YmwyX3U4KAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtOjp0cmFuc211dGUoeCksCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoaTEpCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCByID0gVSB7IHM6IChyMCwgcjEpIH0uajsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2ltZChtZW06OnRyYW5zbXV0ZShyKSkKKy0gICAgICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBsX2ZhbGxiYWNrISh1OHgxNik7 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAodTE2eDgpID0+IHsK Ky0gICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHUxNng4IHsKKy0gICAgICAgICAgICB0eXBl IEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4eDggPSAoaW5kaWNlcyAqIDIpLmNhc3QoKTsK Ky0gICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4eDE2ID0gc2h1ZmZsZSEoaW5kaWNlcywg WzAsIDAsIDEsIDEsIDIsIDIsIDMsIDMsIDQsIDQsIDUsIDUsIDYsIDYsIDcsIDddKTsKKy0gICAg ICAgICAgICAgICAgbGV0IHYgPSB1OHgxNjo6bmV3KDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEpOworLSAgICAgICAgICAgICAgICBsZXQgaW5kaWNlcyA9IGlu ZGljZXMgKyB2OworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAg ICAgbGV0IHM6IHU4eDE2ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHMuc2h1ZmZsZTFfZHluKGluZGljZXMp KQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLSAgICAodTMyeDQpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlm ICNbY2ZnKGFsbChhbnkodGFyZ2V0X2FyY2ggPSAieDg2IiwgdGFyZ2V0X2FyY2ggPSAieDg2XzY0 IiksCistICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gImF2eCIpKV0g eworLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1MzJ4NCB7CistICAgICAg ICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5k aWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICAgICAg I1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjphcmNoOjp4ODY6OntfbW1fcGVybXV0ZXZhcl9wc307CistICAgICAgICAgICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6OntfbW1fcGVybXV0ZXZhcl9wc307Cist CistICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgX21tX3Blcm11dGV2YXJfcHMoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYuMCksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGluZGljZXMuMCkKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAg ICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHUzMng0IHsKKy0gICAgICAgICAgICAgICAgICAg IHR5cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJ bmRpY2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczog dTh4NCA9IChpbmRpY2VzICogNCkuY2FzdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBpbmRpY2VzOiB1OHgxNiA9IHNodWZmbGUhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbmRpY2VzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMCwgMCwgMCwgMCwgMSwg MSwgMSwgMSwgMiwgMiwgMiwgMiwgMywgMywgMywgM10KKy0gICAgICAgICAgICAgICAgICAgICAg ICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdTh4MTY6Om5ldygKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgMCwgMSwgMiwgMywgMCwgMSwgMiwg MywgMCwgMSwgMiwgMworLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzICsgdjsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogdTh4 MTYgPWNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocy5zaHVmZmxlMV9keW4oaW5kaWNlcykpCistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAodTY0 eDIpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKGFsbChh bnkodGFyZ2V0X2FyY2ggPSAieDg2IiwgdGFyZ2V0X2FyY2ggPSAieDg2XzY0IiksCistICAgICAg ICAgICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gImF2eCIpKV0geworLSAgICAgICAg ICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1NjR4MiB7CistICAgICAgICAgICAgICAgICAg ICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6 SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNo Ojp4ODY6OntfbW1fcGVybXV0ZXZhcl9wZH07CistICAgICAgICAgICAgICAgICAgICAgICAgI1tj ZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjphcmNoOjp4ODZfNjQ6OntfbW1fcGVybXV0ZXZhcl9wZH07CistICAgICAgICAgICAg ICAgICAgICAgICAgLy8gX21tX3Blcm11dGV2YXJfcGQgdXNlcyB0aGUgX3NlY29uZF8gYml0IG9m IGVhY2gKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50IHRvIHBlcmZvcm0gdGhl IHNlbGVjdGlvbiwgdGhhdCBpczogMGIwMCA9PiAwLAorLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIDBiMTAgPT4gMToKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNlcyA9IGlu ZGljZXMgPDwgMTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfbW1fcGVybXV0ZXZhcl9wZCgKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZiksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGluZGlj ZXMpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9IGVsc2UgeworLSAg ICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1NjR4MiB7CistICAgICAgICAgICAg ICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczog U2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlu ZGljZXM6IHU4eDIgPSAoaW5kaWNlcyAqIDgpLmNhc3QoKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgaW5kaWNlczogdTh4MTYgPSBzaHVmZmxlISgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5kaWNlcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWzAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDFdCistICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHU4eDE2OjpuZXco CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDAs IDEsIDIsIDMsIDQsIDUsIDYsIDcKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzID0gaW5kaWNlcyArIHY7CistICAgICAgICAg ICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHM6IHU4eDE2ID1jcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHMuc2h1ZmZsZTFfZHluKGluZGljZXMp KQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0g ICAgKHUxMjh4MSkgPT4geworLSAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTEyOHgxIHsK Ky0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBfaW5kaWNlczogU2VsZjo6SW5k aWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxf ZmFsbGJhY2shKCRpZCk7CistICAgIH07CistfQorLQorLWltcGxfc2h1ZmZsZTFfZHluISh1OHgy KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTh4NCk7CistaW1wbF9zaHVmZmxlMV9keW4hKHU4eDgp OworLWltcGxfc2h1ZmZsZTFfZHluISh1OHgxNik7CistaW1wbF9zaHVmZmxlMV9keW4hKHU4eDMy KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTh4NjQpOworLQorLWltcGxfc2h1ZmZsZTFfZHluISh1 MTZ4Mik7CistaW1wbF9zaHVmZmxlMV9keW4hKHUxNng0KTsKKy1pbXBsX3NodWZmbGUxX2R5biEo dTE2eDgpOworLWltcGxfc2h1ZmZsZTFfZHluISh1MTZ4MTYpOworLWltcGxfc2h1ZmZsZTFfZHlu ISh1MTZ4MzIpOworLQorLWltcGxfc2h1ZmZsZTFfZHluISh1MzJ4Mik7CistaW1wbF9zaHVmZmxl MV9keW4hKHUzMng0KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTMyeDgpOworLWltcGxfc2h1ZmZs ZTFfZHluISh1MzJ4MTYpOworLQorLWltcGxfc2h1ZmZsZTFfZHluISh1NjR4Mik7CistaW1wbF9z aHVmZmxlMV9keW4hKHU2NHg0KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTY0eDgpOworLQorLWlt cGxfc2h1ZmZsZTFfZHluISh1c2l6ZXgyKTsKKy1pbXBsX3NodWZmbGUxX2R5biEodXNpemV4NCk7 CistaW1wbF9zaHVmZmxlMV9keW4hKHVzaXpleDgpOworLQorLWltcGxfc2h1ZmZsZTFfZHluISh1 MTI4eDEpOworLWltcGxfc2h1ZmZsZTFfZHluISh1MTI4eDIpOworLWltcGxfc2h1ZmZsZTFfZHlu ISh1MTI4eDQpOworLQorLS8vIEltcGxlbWVudGF0aW9uIGZvciBub24tdW5zaWduZWQgdmVjdG9y IHR5cGVzCistbWFjcm9fcnVsZXMhIGltcGxfc2h1ZmZsZTFfZHluX25vbl91IHsKKy0gICAgKCRp ZDppZGVudCwgJHVpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3Ig JGlkIHsKKy0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSAkdWlkOworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxm OjpJbmRpY2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCB1OiAkdWlkID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwor LSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHUuc2h1ZmZsZTFfZHlu KGluZGljZXMpKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICB9OworLX0KKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4MiwgdTh4Mik7 CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDQsIHU4eDQpOworLWltcGxfc2h1ZmZsZTFf ZHluX25vbl91IShpOHg4LCB1OHg4KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4MTYs IHU4eDE2KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4MzIsIHU4eDMyKTsKKy1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoaTh4NjQsIHU4eDY0KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5 bl9ub25fdSEoaTE2eDIsIHUxNngyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTE2eDQs IHUxNng0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTE2eDgsIHUxNng4KTsKKy1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoaTE2eDE2LCB1MTZ4MTYpOworLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShpMTZ4MzIsIHUxNngzMik7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkz MngyLCB1MzJ4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkzMng0LCB1MzJ4NCk7Cist aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkzMng4LCB1MzJ4OCk7CistaW1wbF9zaHVmZmxlMV9k eW5fbm9uX3UhKGkzMngxNiwgdTMyeDE2KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEo aTY0eDIsIHU2NHgyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTY0eDQsIHU2NHg0KTsK Ky1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTY0eDgsIHU2NHg4KTsKKy0KKy1pbXBsX3NodWZm bGUxX2R5bl9ub25fdSEoaXNpemV4MiwgdXNpemV4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9u X3UhKGlzaXpleDQsIHVzaXpleDQpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpc2l6ZXg4 LCB1c2l6ZXg4KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTEyOHgxLCB1MTI4eDEp OworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTI4eDIsIHUxMjh4Mik7CistaW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKGkxMjh4NCwgdTEyOHg0KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9u b25fdSEobTh4MiwgdTh4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDQsIHU4eDQp OworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHg4LCB1OHg4KTsKKy1pbXBsX3NodWZmbGUx X2R5bl9ub25fdSEobTh4MTYsIHU4eDE2KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTh4 MzIsIHU4eDMyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTh4NjQsIHU4eDY0KTsKKy0K Ky1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTE2eDIsIHUxNngyKTsKKy1pbXBsX3NodWZmbGUx X2R5bl9ub25fdSEobTE2eDQsIHUxNng0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTE2 eDgsIHUxNng4KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTE2eDE2LCB1MTZ4MTYpOwor LWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4MzIsIHUxNngzMik7CistCistaW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKG0zMngyLCB1MzJ4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3Uh KG0zMng0LCB1MzJ4NCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0zMng4LCB1MzJ4OCk7 CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0zMngxNiwgdTMyeDE2KTsKKy0KKy1pbXBsX3No dWZmbGUxX2R5bl9ub25fdSEobTY0eDIsIHU2NHgyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25f dSEobTY0eDQsIHU2NHg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTY0eDgsIHU2NHg4 KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobXNpemV4MiwgdXNpemV4Mik7CistaW1w bF9zaHVmZmxlMV9keW5fbm9uX3UhKG1zaXpleDQsIHVzaXpleDQpOworLWltcGxfc2h1ZmZsZTFf ZHluX25vbl91IShtc2l6ZXg4LCB1c2l6ZXg4KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9ub25f dSEobTEyOHgxLCB1MTI4eDEpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTI4eDIsIHUx Mjh4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xMjh4NCwgdTEyOHg0KTsKKy0KKy1p bXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjMyeDIsIHUzMngyKTsKKy1pbXBsX3NodWZmbGUxX2R5 bl9ub25fdSEoZjMyeDQsIHUzMng0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjMyeDgs IHUzMng4KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjMyeDE2LCB1MzJ4MTYpOworLQor LWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmNjR4MiwgdTY0eDIpOworLWltcGxfc2h1ZmZsZTFf ZHluX25vbl91IShmNjR4NCwgdTY0eDQpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmNjR4 OCwgdTY0eDgpOworLQorLS8vIEltcGxlbWVudGF0aW9uIGZvciBub24tdW5zaWduZWQgdmVjdG9y IHR5cGVzCistbWFjcm9fcnVsZXMhIGltcGxfc2h1ZmZsZTFfZHluX3B0ciB7CistICAgICgkaWQ6 aWRlbnQsICR1aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGw8VD4gU2h1ZmZsZTFEeW4gZm9y ICRpZDxUPiB7CistICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gJHVpZDsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczog U2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAg ICAgICAgICAgICAgICAgICBsZXQgdTogJHVpZCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KTsKKy0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSh1LnNodWZmbGUx X2R5bihpbmRpY2VzKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy19CistCistaW1wbF9zaHVmZmxlMV9keW5fcHRyIShjcHRyeDIsIHVz aXpleDIpOworLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEoY3B0cng0LCB1c2l6ZXg0KTsKKy1pbXBs X3NodWZmbGUxX2R5bl9wdHIhKGNwdHJ4OCwgdXNpemV4OCk7CistCistaW1wbF9zaHVmZmxlMV9k eW5fcHRyIShtcHRyeDIsIHVzaXpleDIpOworLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEobXB0cng0 LCB1c2l6ZXg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9wdHIhKG1wdHJ4OCwgdXNpemV4OCk7Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zd2Fw X2J5dGVzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zd2Fw X2J5dGVzLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsMTQ5ICswLDAgQEAKKy0vLyEgSG9yaXpvbnRhbCBzd2FwIGJ5dGVzIHJlZHVjdGlvbnMu CistCistLy8gRklYTUU6IGludmVzdGlnYXRlIHVzaW5nIGBsbHZtLmJzd2FwYAorLS8vIGh0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTkKKy0K Ky11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBTd2FwQnl0ZXMgeworLSAgICBm biBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGY7CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX3N3 YXBfYnl0ZXMgeworLSAgICAodjE2OiAkKCRpZDppZGVudCwpKykgPT4geworLSAgICAgICAgJCgK Ky0gICAgICAgICAgICBpbXBsIFN3YXBCeXRlcyBmb3IgJGlkIHsKKy0gICAgICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZiB7 CistICAgICAgICAgICAgICAgICAgICBzaHVmZmxlIShzZWxmLCBbMSwgMF0pCistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICApKworLSAgICB9OworLSAgICAodjMy OiAkKCRpZDppZGVudCwpKykgPT4geworLSAgICAgICAgJCgKKy0gICAgICAgICAgICBpbXBsIFN3 YXBCeXRlcyBmb3IgJGlkIHsKKy0gICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgICAgICNbYWxsb3coY2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCistICAgICAgICAgICAg ICAgIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBieXRlczogdTh4NCA9IGNyYXRl OjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVz dWx0OiB1OHg0ID0gc2h1ZmZsZSEoYnl0ZXMsIFszLCAyLCAxLCAwXSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHJlc3VsdCkKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICkr CistICAgIH07CistICAgICh2NjQ6ICQoJGlkOmlkZW50LCkrKSA9PiB7CistICAgICAgICAkKAor LSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgeworLSAgICAgICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnVzZWxlc3NfdHJhbnNt dXRlKV0KKy0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGJ5dGVzOiB1OHg4ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDggPSBzaHVmZmxlISgKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnl0ZXMsIFs3LCA2LCA1LCA0LCAzLCAyLCAxLCAwXQorLSAgICAgICAg ICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKHJlc3VsdCkKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICkrCistICAgIH07CistICAgICh2MTI4OiAk KCRpZDppZGVudCwpKykgPT4geworLSAgICAgICAgJCgKKy0gICAgICAgICAgICBpbXBsIFN3YXBC eXRlcyBmb3IgJGlkIHsKKy0gICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg ICAgICNbYWxsb3coY2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCistICAgICAgICAgICAgICAg IGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICB1bnNh ZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBieXRlczogdTh4MTYgPSBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3Vs dDogdTh4MTYgPSBzaHVmZmxlIShieXRlcywgWworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCistICAgICAgICAgICAgICAgICAgICAgICAgXSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHJlc3VsdCkK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgICkrCistICAgIH07CistICAgICh2MjU2OiAkKCRpZDppZGVudCwpKykgPT4g eworLSAgICAgICAgJCgKKy0gICAgICAgICAgICBpbXBsIFN3YXBCeXRlcyBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5 Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCistICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0ZXMoc2Vs ZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBieXRlczogdTh4MzIgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs Zik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogdTh4MzIgPSBzaHVmZmxl IShieXRlcywgWworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMSwgMzAsIDI5LCAyOCwg MjcsIDI2LCAyNSwgMjQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLCAyMiwgMjEs IDIwLCAxOSwgMTgsIDE3LCAxNiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsIDE0 LCAxMywgMTIsIDExLCAxMCwgOSwgIDgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcs ICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsICAwCistICAgICAgICAgICAgICAgICAgICAgICAgXSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHJlc3VsdCkK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgICkrCistICAgIH07CistICAgICh2NTEyOiAkKCRpZDppZGVudCwpKykgPT4g eworLSAgICAgICAgJCgKKy0gICAgICAgICAgICBpbXBsIFN3YXBCeXRlcyBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5 Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCistICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0ZXMoc2Vs ZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBieXRlczogdTh4NjQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs Zik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogdTh4NjQgPSBzaHVmZmxl IShieXRlcywgWworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MywgNjIsIDYxLCA2MCwg NTksIDU4LCA1NywgNTYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU1LCA1NCwgNTMs IDUyLCA1MSwgNTAsIDQ5LCA0OCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcsIDQ2 LCA0NSwgNDQsIDQzLCA0MiwgNDEsIDQwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAz OSwgMzgsIDM3LCAzNiwgMzUsIDM0LCAzMywgMzIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDMxLCAzMCwgMjksIDI4LCAyNywgMjYsIDI1LCAyNCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgMjMsIDIyLCAyMSwgMjAsIDE5LCAxOCwgMTcsIDE2LAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCAgOCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgIDAKKy0gICAgICAg ICAgICAgICAgICAgICAgICBdKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVt Ojp0cmFuc211dGUocmVzdWx0KQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgKSsKKy0gICAgfTsKKy19CistCistaW1w bF9zd2FwX2J5dGVzISh2MTY6IHU4eDIsIGk4eDIsKTsKKy1pbXBsX3N3YXBfYnl0ZXMhKHYzMjog dTh4NCwgaTh4NCwgdTE2eDIsIGkxNngyLCk7CistLy8gRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxl bWVudCB2ZWN0b3IKKy1pbXBsX3N3YXBfYnl0ZXMhKHY2NDogdTh4OCwgaTh4OCwgdTE2eDQsIGkx Nng0LCB1MzJ4MiwgaTMyeDIgLyogdTY0eDEsIGk2NHgxLCAqLywpOworLQorLWltcGxfc3dhcF9i eXRlcyEodjEyODogdTh4MTYsIGk4eDE2LCB1MTZ4OCwgaTE2eDgsIHUzMng0LCBpMzJ4NCwgdTY0 eDIsIGk2NHgyLCB1MTI4eDEsIGkxMjh4MSwpOworLWltcGxfc3dhcF9ieXRlcyEodjI1NjogdTh4 MzIsIGk4eDMyLCB1MTZ4MTYsIGkxNngxNiwgdTMyeDgsIGkzMng4LCB1NjR4NCwgaTY0eDQsIHUx Mjh4MiwgaTEyOHgyLCk7CistCistaW1wbF9zd2FwX2J5dGVzISh2NTEyOiB1OHg2NCwgaTh4NjQs IHUxNngzMiwgaTE2eDMyLCB1MzJ4MTYsIGkzMngxNiwgdTY0eDgsIGk2NHg4LCB1MTI4eDQsIGkx Mjh4NCwpOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0 aCA9ICI4IildIHsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjE2OiBpc2l6ZXgyLCB1c2l6 ZXgyLCk7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYzMjogaXNpemV4NCwgdXNpemV4NCwp OworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2NjQ6IGlzaXpleDgsIHVzaXpleDgsKTsKKy0g ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjE2IildIHsKKy0gICAg ICAgIGltcGxfc3dhcF9ieXRlcyEodjMyOiBpc2l6ZXgyLCB1c2l6ZXgyLCk7CistICAgICAgICBp bXBsX3N3YXBfYnl0ZXMhKHY2NDogaXNpemV4NCwgdXNpemV4NCwpOworLSAgICAgICAgaW1wbF9z d2FwX2J5dGVzISh2MTI4OiBpc2l6ZXg4LCB1c2l6ZXg4LCk7CistICAgIH0gZWxzZSBpZiAjW2Nm Zyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7CistICAgICAgICBpbXBsX3N3YXBfYnl0 ZXMhKHY2NDogaXNpemV4MiwgdXNpemV4MiwpOworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2 MTI4OiBpc2l6ZXg0LCB1c2l6ZXg0LCk7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYyNTY6 IGlzaXpleDgsIHVzaXpleDgsKTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVy X3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjEyODogaXNpemV4 MiwgdXNpemV4MiwpOworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MjU2OiBpc2l6ZXg0LCB1 c2l6ZXg0LCk7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHY1MTI6IGlzaXpleDgsIHVzaXpl eDgsKTsKKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRl ZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjEyOC5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjEyOC5ycworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Yx MjgucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ2ICswLDAgQEAKKy0vLyEgSW50ZXJuYWwgMTI4 LWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6bWFza3M6Oio7CistCistI1ty dXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtpODsgMTZdOiBpOHgxNiB8 CistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4 LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCist aW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW3U4OyAxNl06IHU4eDE2IHwKKy0gICAgdTgsIHU4LCB1 OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAg dTgsIHU4LCB1OCwgdTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkh KAorLSAgICBbbTg7IDE2XTogbTh4MTYgfAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgs IGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOAor LSk7CistCistaW1wbF9zaW1kX2FycmF5IShbaTE2OyA4XTogaTE2eDggfCBpMTYsIGkxNiwgaTE2 LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNik7CistaW1wbF9zaW1kX2FycmF5IShbdTE2OyA4XTog dTE2eDggfCB1MTYsIHUxNiwgdTE2LCB1MTYsIHUxNiwgdTE2LCB1MTYsIHUxNik7CistaW1wbF9z aW1kX2FycmF5IShbbTE2OyA4XTogbTE2eDggfCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2 LCBpMTYsIGkxNik7CistCistaW1wbF9zaW1kX2FycmF5IShbaTMyOyA0XTogaTMyeDQgfCBpMzIs IGkzMiwgaTMyLCBpMzIpOworLWltcGxfc2ltZF9hcnJheSEoW3UzMjsgNF06IHUzMng0IHwgdTMy LCB1MzIsIHUzMiwgdTMyKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFtmMzI7IDRdOiBmMzJ4NCB8IGYz MiwgZjMyLCBmMzIsIGYzMik7CistaW1wbF9zaW1kX2FycmF5IShbbTMyOyA0XTogbTMyeDQgfCBp MzIsIGkzMiwgaTMyLCBpMzIpOworLQorLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgMl06IGk2NHgy IHwgaTY0LCBpNjQpOworLWltcGxfc2ltZF9hcnJheSEoW3U2NDsgMl06IHU2NHgyIHwgdTY0LCB1 NjQpOworLWltcGxfc2ltZF9hcnJheSEoW2Y2NDsgMl06IGY2NHgyIHwgZjY0LCBmNjQpOworLWlt cGxfc2ltZF9hcnJheSEoW202NDsgMl06IG02NHgyIHwgaTY0LCBpNjQpOworLQorLWltcGxfc2lt ZF9hcnJheSEoW2kxMjg7IDFdOiBpMTI4eDEgfCBpMTI4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1 MTI4OyAxXTogdTEyOHgxIHwgdTEyOCk7CistaW1wbF9zaW1kX2FycmF5IShbbTEyODsgMV06IG0x Mjh4MSB8IGkxMjgpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vdjE2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi92MTYucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTYucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDcgKzAsMCBAQAorLS8vISBJbnRlcm5hbCAxNi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy11 c2UgY3JhdGU6Om1hc2tzOjoqOworLQorLWltcGxfc2ltZF9hcnJheSEoW2k4OyAyXTogaTh4MiB8 IGk4LCBpOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTg7IDJdOiB1OHgyIHwgdTgsIHU4KTsKKy1p bXBsX3NpbWRfYXJyYXkhKFttODsgMl06IG04eDIgfCBpOCwgaTgpOworZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjI1Ni5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjI1Ni5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3YyNTYucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDc4ICswLDAgQEAKKy0vLyEgSW50ZXJuYWwg MjU2LWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6bWFza3M6Oio7CistCist I1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtpODsgMzJdOiBpOHgz MiB8CistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgs IGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwK Ky0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgs IGk4LCBpOAorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAg IFt1ODsgMzJdOiB1OHgzMiB8CistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4 LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1 OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4 LAorLSAgICB1OCwgdTgsIHU4LCB1OAorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2lt ZF9hcnJheSEoCistICAgIFttODsgMzJdOiBtOHgzMiB8CistICAgIGk4LCBpOCwgaTgsIGk4LAor LSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwg aTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAg IGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOAorLSk7CistI1tydXN0Zm10Ojpz a2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtpMTY7IDE2XTogaTE2eDE2IHwKKy0gICAg aTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwg aTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2CistKTsKKy0jW3J1c3RmbXQ6 OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW3UxNjsgMTZdOiB1MTZ4MTYgfAorLSAg ICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKKy0gICAgdTE2 LCB1MTYsIHUxNiwgdTE2LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYKKy0pOworLSNbcnVzdGZt dDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbbTE2OyAxNl06IG0xNngxNiB8Cist ICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBp MTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNgorLSk7CistCistaW1w bF9zaW1kX2FycmF5IShbaTMyOyA4XTogaTMyeDggfCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwg aTMyLCBpMzIsIGkzMik7CistaW1wbF9zaW1kX2FycmF5IShbdTMyOyA4XTogdTMyeDggfCB1MzIs IHUzMiwgdTMyLCB1MzIsIHUzMiwgdTMyLCB1MzIsIHUzMik7CistaW1wbF9zaW1kX2FycmF5IShb ZjMyOyA4XTogZjMyeDggfCBmMzIsIGYzMiwgZjMyLCBmMzIsIGYzMiwgZjMyLCBmMzIsIGYzMik7 CistaW1wbF9zaW1kX2FycmF5IShbbTMyOyA4XTogbTMyeDggfCBpMzIsIGkzMiwgaTMyLCBpMzIs IGkzMiwgaTMyLCBpMzIsIGkzMik7CistCistaW1wbF9zaW1kX2FycmF5IShbaTY0OyA0XTogaTY0 eDQgfCBpNjQsIGk2NCwgaTY0LCBpNjQpOworLWltcGxfc2ltZF9hcnJheSEoW3U2NDsgNF06IHU2 NHg0IHwgdTY0LCB1NjQsIHU2NCwgdTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFtmNjQ7IDRdOiBm NjR4NCB8IGY2NCwgZjY0LCBmNjQsIGY2NCk7CistaW1wbF9zaW1kX2FycmF5IShbbTY0OyA0XTog bTY0eDQgfCBpNjQsIGk2NCwgaTY0LCBpNjQpOworLQorLWltcGxfc2ltZF9hcnJheSEoW2kxMjg7 IDJdOiBpMTI4eDIgfCBpMTI4LCBpMTI4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1MTI4OyAyXTog dTEyOHgyIHwgdTEyOCwgdTEyOCk7CistaW1wbF9zaW1kX2FycmF5IShbbTEyODsgMl06IG0xMjh4 MiB8IGkxMjgsIGkxMjgpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vdjMyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi92MzIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MzIucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDExICswLDAgQEAKKy0vLyEgSW50ZXJuYWwgMzItYml0IHdpZGUgdmVjdG9yIHR5cGVzCist CistdXNlIGNyYXRlOjptYXNrczo6KjsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpODsgNF06IGk4 eDQgfCBpOCwgaTgsIGk4LCBpOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTg7IDRdOiB1OHg0IHwg dTgsIHU4LCB1OCwgdTgpOworLWltcGxfc2ltZF9hcnJheSEoW204OyA0XTogbTh4NCB8IGk4LCBp OCwgaTgsIGk4KTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpMTY7IDJdOiBpMTZ4MiB8IGkxNiwg aTE2KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1MTY7IDJdOiB1MTZ4MiB8IHUxNiwgdTE2KTsKKy1p bXBsX3NpbWRfYXJyYXkhKFttMTY7IDJdOiBtMTZ4MiB8IGkxNiwgaTE2KTsKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y1MTIucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y1MTIucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi92NTEyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNDUgKzAsMCBAQAorLS8vISBJbnRl cm5hbCA1MTItYml0IHdpZGUgdmVjdG9yIHR5cGVzCistCistdXNlIGNyYXRlOjptYXNrczo6KjsK Ky0KKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW2k4OyA2NF06 IGk4eDY0IHwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAg ICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgs IGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4 LCBpOCwgaTgsIGk4LAorLQorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwg aTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgs IGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwK Ky0gICAgaTgsIGk4LCBpOCwgaTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRf YXJyYXkhKAorLSAgICBbdTg7IDY0XTogdTh4NjQgfAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0g ICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4 LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1 OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistCistICAgIHU4LCB1OCwgdTgs IHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4 LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgs CistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OAorLSk7CistI1tydXN0 Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFttODsgNjRdOiBtOHg2NCB8Cist ICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBp OCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAg aTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBp OCwKKy0KKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBp OCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4 LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBp OCwgaTgsIGk4CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0g ICAgW2kxNjsgMzJdOiBpMTZ4MzIgfAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkx NiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkx NiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkx NiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkx NgorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFt1MTY7 IDMyXTogdTE2eDMyIHwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAorLSAgICB1MTYsIHUxNiwg dTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwg dTE2LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwK Ky0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYKKy0pOwor LSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbbTE2OyAzMl06IG0x NngzMiB8CistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2 LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0g ICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkx NiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2CistKTsKKy0KKy0jW3J1 c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW2kzMjsgMTZdOiBpMzJ4MTYg fAorLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCistICAgIGkzMiwgaTMyLCBpMzIsIGkzMiwKKy0g ICAgaTMyLCBpMzIsIGkzMiwgaTMyLAorLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIKKy0pOworLSNb cnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbdTMyOyAxNl06IHUzMngx NiB8CistICAgIHUzMiwgdTMyLCB1MzIsIHUzMiwKKy0gICAgdTMyLCB1MzIsIHUzMiwgdTMyLAor LSAgICB1MzIsIHUzMiwgdTMyLCB1MzIsCistICAgIHUzMiwgdTMyLCB1MzIsIHUzMgorLSk7Cist I1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtmMzI7IDE2XTogZjMy eDE2IHwKKy0gICAgZjMyLCBmMzIsIGYzMiwgZjMyLAorLSAgICBmMzIsIGYzMiwgZjMyLCBmMzIs CistICAgIGYzMiwgZjMyLCBmMzIsIGYzMiwKKy0gICAgZjMyLCBmMzIsIGYzMiwgZjMyCistKTsK Ky0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW20zMjsgMTZdOiBt MzJ4MTYgfAorLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCistICAgIGkzMiwgaTMyLCBpMzIsIGkz MiwKKy0gICAgaTMyLCBpMzIsIGkzMiwgaTMyLAorLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIKKy0p OworLQorLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgOF06IGk2NHg4IHwgaTY0LCBpNjQsIGk2NCwg aTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQpOworLWltcGxfc2ltZF9hcnJheSEoW3U2NDsgOF06IHU2 NHg4IHwgdTY0LCB1NjQsIHU2NCwgdTY0LCB1NjQsIHU2NCwgdTY0LCB1NjQpOworLWltcGxfc2lt ZF9hcnJheSEoW2Y2NDsgOF06IGY2NHg4IHwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQsIGY2NCwg ZjY0LCBmNjQpOworLWltcGxfc2ltZF9hcnJheSEoW202NDsgOF06IG02NHg4IHwgaTY0LCBpNjQs IGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQpOworLQorLWltcGxfc2ltZF9hcnJheSEoW2kx Mjg7IDRdOiBpMTI4eDQgfCBpMTI4LCBpMTI4LCBpMTI4LCBpMTI4KTsKKy1pbXBsX3NpbWRfYXJy YXkhKFt1MTI4OyA0XTogdTEyOHg0IHwgdTEyOCwgdTEyOCwgdTEyOCwgdTEyOCk7CistaW1wbF9z aW1kX2FycmF5IShbbTEyODsgNF06IG0xMjh4NCB8IGkxMjgsIGkxMjgsIGkxMjgsIGkxMjgpOwor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjY0 LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NjQucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi92NjQucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIxICswLDAgQEAKKy0v LyEgSW50ZXJuYWwgNjQtYml0IHdpZGUgdmVjdG9yIHR5cGVzCistCistdXNlIGNyYXRlOjptYXNr czo6KjsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpODsgOF06IGk4eDggfCBpOCwgaTgsIGk4LCBp OCwgaTgsIGk4LCBpOCwgaTgpOworLWltcGxfc2ltZF9hcnJheSEoW3U4OyA4XTogdTh4OCB8IHU4 LCB1OCwgdTgsIHU4LCB1OCwgdTgsIHU4LCB1OCk7CistaW1wbF9zaW1kX2FycmF5IShbbTg7IDhd OiBtOHg4IHwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4KTsKKy0KKy1pbXBsX3NpbWRf YXJyYXkhKFtpMTY7IDRdOiBpMTZ4NCB8IGkxNiwgaTE2LCBpMTYsIGkxNik7CistaW1wbF9zaW1k X2FycmF5IShbdTE2OyA0XTogdTE2eDQgfCB1MTYsIHUxNiwgdTE2LCB1MTYpOworLWltcGxfc2lt ZF9hcnJheSEoW20xNjsgNF06IG0xNng0IHwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKKy0KKy1pbXBs X3NpbWRfYXJyYXkhKFtpMzI7IDJdOiBpMzJ4MiB8IGkzMiwgaTMyKTsKKy1pbXBsX3NpbWRfYXJy YXkhKFt1MzI7IDJdOiB1MzJ4MiB8IHUzMiwgdTMyKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFtmMzI7 IDJdOiBmMzJ4MiB8IGYzMiwgZjMyKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttMzI7IDJdOiBtMzJ4 MiB8IGkzMiwgaTMyKTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpNjQ7IDFdOiBpNjR4MSB8IGk2 NCk7CistaW1wbF9zaW1kX2FycmF5IShbdTY0OyAxXTogdTY0eDEgfCB1NjQpOworLWltcGxfc2lt ZF9hcnJheSEoW2Y2NDsgMV06IGY2NHgxIHwgZjY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttNjQ7 IDFdOiBtNjR4MSB8IGk2NCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi92UHRyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi92UHRyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlB0ci5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMzUgKzAsMCBAQAorLS8vISBQb2ludGVyIHZlY3RvciB0eXBlcworLQorLW1hY3Jv X3J1bGVzISBpbXBsX3NpbWRfcHRyIHsKKy0gICAgKFskcHRyX3R5OnR5OyAkZWxlbV9jb3VudDpl eHByXTogJHR1cGxlX2lkOmlkZW50IHwgJHR5OmlkZW50CistICAgICB8ICQoJHR5czp0eSksKikg PT4geworLSAgICAgICAgI1tkZXJpdmUoQ29weSwgQ2xvbmUpXQorLSAgICAgICAgI1tyZXByKHNp bWQpXQorLSAgICAgICAgcHViIHN0cnVjdCAkdHVwbGVfaWQ8JHR5PigkKHB1YihjcmF0ZSkgJHR5 cyksKik7CistICAgICAgICAvL15eXl5eXl4gbGVha2VkIHRocm91Z2ggU2ltZEFycmF5CistCist ICAgICAgICBpbXBsPCR0eT4gY3JhdGU6OnNlYWxlZDo6U2VhbCBmb3IgWyRwdHJfdHk7ICRlbGVt X2NvdW50XSB7fQorLSAgICAgICAgaW1wbDwkdHk+IGNyYXRlOjpzZWFsZWQ6OlNpbWRBcnJheSBm b3IgWyRwdHJfdHk7ICRlbGVtX2NvdW50XSB7CistICAgICAgICAgICAgdHlwZSBUdXBsZSA9ICR0 dXBsZV9pZDwkcHRyX3R5PjsKKy0gICAgICAgICAgICB0eXBlIFQgPSAkcHRyX3R5OworLSAgICAg ICAgICAgIGNvbnN0IE46IHVzaXplID0gJGVsZW1fY291bnQ7CistICAgICAgICAgICAgdHlwZSBO VCA9IFt1MzI7ICRlbGVtX2NvdW50XTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8JHR5 PiBjcmF0ZTo6c2VhbGVkOjpTZWFsIGZvciAkdHVwbGVfaWQ8JHB0cl90eT4ge30KKy0gICAgICAg IGltcGw8JHR5PiBjcmF0ZTo6c2VhbGVkOjpTaW1kIGZvciAkdHVwbGVfaWQ8JHB0cl90eT4gewor LSAgICAgICAgICAgIHR5cGUgRWxlbWVudCA9ICRwdHJfdHk7CistICAgICAgICAgICAgY29uc3Qg TEFORVM6IHVzaXplID0gJGVsZW1fY291bnQ7CistICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUg PSBbdTMyOyAkZWxlbV9jb3VudF07CistICAgICAgICB9CistCistICAgIH0KKy19CistCistaW1w bF9zaW1kX3B0ciEoWypjb25zdCBUOyAyXTogY3B0cngyIHwgVCB8IFQsIFQpOworLWltcGxfc2lt ZF9wdHIhKFsqY29uc3QgVDsgNF06IGNwdHJ4NCB8IFQgfCBULCBULCBULCBUKTsKKy1pbXBsX3Np bWRfcHRyIShbKmNvbnN0IFQ7IDhdOiBjcHRyeDggfCBUIHwgVCwgVCwgVCwgVCwgVCwgVCwgVCwg VCk7CistCistaW1wbF9zaW1kX3B0ciEoWyptdXQgVDsgMl06IG1wdHJ4MiB8IFQgfCBULCBUKTsK Ky1pbXBsX3NpbWRfcHRyIShbKm11dCBUOyA0XTogbXB0cng0IHwgVCB8IFQsIFQsIFQsIFQpOwor LWltcGxfc2ltZF9wdHIhKFsqbXV0IFQ7IDhdOiBtcHRyeDggfCBUIHwgVCwgVCwgVCwgVCwgVCwg VCwgVCwgVCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi92U2l6ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vdlNpemUucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92U2l6ZS5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsMTYgKzAsMCBAQAorLS8vISBWZWN0b3IgdHlwZXMgd2l0aCBwb2ludGVyLXNpemVkIGVsZW1l bnRzCistCistdXNlIGNyYXRlOjpjb2RlZ2VuOjpwb2ludGVyX3NpemVkX2ludDo6e2lzaXplXywg dXNpemVffTsKKy11c2UgY3JhdGU6Om1hc2tzOjoqOworLQorLWltcGxfc2ltZF9hcnJheSEoW2lz aXplOyAyXTogaXNpemV4MiB8IGlzaXplXywgaXNpemVfKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1 c2l6ZTsgMl06IHVzaXpleDIgfCB1c2l6ZV8sIHVzaXplXyk7CistaW1wbF9zaW1kX2FycmF5IShb bXNpemU7IDJdOiBtc2l6ZXgyIHwgaXNpemVfLCBpc2l6ZV8pOworLQorLWltcGxfc2ltZF9hcnJh eSEoW2lzaXplOyA0XTogaXNpemV4NCB8IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXyk7 CistaW1wbF9zaW1kX2FycmF5IShbdXNpemU7IDRdOiB1c2l6ZXg0IHwgdXNpemVfLCB1c2l6ZV8s IHVzaXplXywgdXNpemVfKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttc2l6ZTsgNF06IG1zaXpleDQg fCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8pOworLQorLWltcGxfc2ltZF9hcnJheSEo W2lzaXplOyA4XTogaXNpemV4OCB8IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNp emVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1c2l6ZTsg OF06IHVzaXpleDggfCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXywgdXNp emVfLCB1c2l6ZV8sIHVzaXplXyk7CistaW1wbF9zaW1kX2FycmF5IShbbXNpemU7IDhdOiBtc2l6 ZXg4IHwgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNp emVfLCBpc2l6ZV8pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2xpYi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2xpYi5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9saWIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDM0OCArMCwwIEBACistLy8hICMgUG9y dGFibGUgcGFja2VkIFNJTUQgdmVjdG9ycworLS8vIQorLS8vISBUaGlzIGNyYXRlIGlzIHByb3Bv c2VkIGZvciBzdGFiaWxpemF0aW9uIGFzIGBzdGQ6OnBhY2tlZF9zaW1kYCBpbiBbUkZDMjM2NjoK Ky0vLyEgYHN0ZDo6c2ltZGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxs LzIzNjYpIC4KKy0vLyEKKy0vLyEgVGhlIGV4YW1wbGVzIGF2YWlsYWJsZSBpbiB0aGUKKy0vLyEg W2BleGFtcGxlcy9gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2Vk X3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMpCistLy8hIHN1Yi1kaXJlY3Rvcnkgb2YgdGhlIGNy YXRlIHNob3djYXNlIGhvdyB0byB1c2UgdGhlIGxpYnJhcnkgaW4gcHJhY3RpY2UuCistLy8hCist Ly8hICMjIFRhYmxlIG9mIGNvbnRlbnRzCistLy8hCistLy8hIC0gW0ludHJvZHVjdGlvbl0oI2lu dHJvZHVjdGlvbikKKy0vLyEgLSBbVmVjdG9yIHR5cGVzXSgjdmVjdG9yLXR5cGVzKQorLS8vISAt IFtDb25kaXRpb25hbCBvcGVyYXRpb25zXSgjY29uZGl0aW9uYWwtb3BlcmF0aW9ucykKKy0vLyEg LSBbQ29udmVyc2lvbnNdKCNjb252ZXJzaW9ucykKKy0vLyEgLSBbSGFyZHdhcmUgRmVhdHVyZXNd KCNoYXJkd2FyZS1mZWF0dXJlcykKKy0vLyEgLSBbUGVyZm9ybWFuY2UgZ3VpZGVdKGh0dHBzOi8v cnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvKQorLS8v IQorLS8vISAjIyBJbnRyb2R1Y3Rpb24KKy0vLyEKKy0vLyEgVGhpcyBjcmF0ZSBleHBvcnRzIFtg U2ltZDxbVDsgTl0+YF1bYFNpbWRgXTogYSBwYWNrZWQgdmVjdG9yIG9mIGBOYAorLS8vISBlbGVt ZW50cyBvZiB0eXBlIGBUYCBhcyB3ZWxsIGFzIG1hbnkgdHlwZSBhbGlhc2VzIGZvciB0aGlzIHR5 cGU6IGZvcgorLS8vISBleGFtcGxlLCBbYGYzMng0YF0sIHdoaWNoIGlzIGp1c3QgYW4gYWxpYXMg Zm9yIGBTaW1kPFtmMzI7IDRdPmAuCistLy8hCistLy8hIFRoZSBvcGVyYXRpb25zIG9uIHBhY2tl ZCB2ZWN0b3JzIGFyZSwgYnkgZGVmYXVsdCwgInZlcnRpY2FsIiwgdGhhdCBpcywgdGhleQorLS8v ISBhcmUgYXBwbGllZCB0byBlYWNoIHZlY3RvciBsYW5lIGluIGlzb2xhdGlvbiBvZiB0aGUgb3Ro ZXJzOgorLS8vIQorLS8vISBgYGAKKy0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7CistLy8hIGxl dCBhID0gaTMyeDQ6Om5ldygxLCAyLCAzLCA0KTsKKy0vLyEgbGV0IGIgPSBpMzJ4NDo6bmV3KDUs IDYsIDcsIDgpOworLS8vISBhc3NlcnRfZXEhKGEgKyBiLCBpMzJ4NDo6bmV3KDYsIDgsIDEwLCAx MikpOworLS8vISBgYGAKKy0vLyEKKy0vLyEgTWFueSAiaG9yaXpvbnRhbCIgb3BlcmF0aW9ucyBh cmUgYWxzbyBwcm92aWRlZDoKKy0vLyEKKy0vLyEgYGBgCistLy8hICMgdXNlIHBhY2tlZF9zaW1k OjoqOworLS8vISAjIGxldCBhID0gaTMyeDQ6Om5ldygxLCAyLCAzLCA0KTsKKy0vLyEgYXNzZXJ0 X2VxIShhLndyYXBwaW5nX3N1bSgpLCAxMCk7CistLy8hIGBgYAorLS8vIQorLS8vISBJbiB2aXJ0 dWFsbHkgYWxsIGFyY2hpdGVjdHVyZXMgdmVydGljYWwgb3BlcmF0aW9ucyBhcmUgZmFzdCwgd2hp bGUKKy0vLyEgaG9yaXpvbnRhbCBvcGVyYXRpb25zIGFyZSwgYnkgY29tcGFyaXNvbiwgbXVjaCBz bG93ZXIuIFRoYXQgaXMsIHRoZQorLS8vISBtb3N0IHBvcnRhYmx5LWVmZmljaWVudCB3YXkgb2Yg cGVyZm9ybWluZyBhIHJlZHVjdGlvbiBvdmVyIGEgc2xpY2UKKy0vLyEgaXMgdG8gY29sbGVjdCB0 aGUgcmVzdWx0cyBpbnRvIGEgdmVjdG9yIHVzaW5nIHZlcnRpY2FsIG9wZXJhdGlvbnMsCistLy8h IGFuZCBwZXJmb3JtaW5nIGEgc2luZ2xlIGhvcml6b250YWwgb3BlcmF0aW9uIGF0IHRoZSBlbmQ6 CistLy8hCistLy8hIGBgYAorLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKKy0vLyEgZm4gcmVk dWNlKHg6ICZbaTMyXSkgLT4gaTMyIHsKKy0vLyEgICAgIGFzc2VydF9lcSEoeC5sZW4oKSAlIDQs IDApOworLS8vISAgICAgbGV0IG11dCBzdW0gPSBpMzJ4NDo6c3BsYXQoMCk7IC8vIFswLCAwLCAw LCAwXQorLS8vISAgICAgZm9yIGkgaW4gKDAuLngubGVuKCkpLnN0ZXBfYnkoNCkgeworLS8vISAg ICAgICAgIHN1bSArPSBpMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnhbaS4uXSk7CistLy8h ICAgICB9CistLy8hICAgICBzdW0ud3JhcHBpbmdfc3VtKCkKKy0vLyEgfQorLS8vIQorLS8vISBs ZXQgeCA9IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3XTsKKy0vLyEgYXNzZXJ0X2VxIShyZWR1Y2Uo JngpLCAyOCk7CistLy8hIGBgYAorLS8vIQorLS8vISAjIyBWZWN0b3IgdHlwZXMKKy0vLyEKKy0v LyEgVGhlIHZlY3RvciB0eXBlIGFsaWFzZXMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUgZm9s bG93aW5nIHNjaGVtZToKKy0vLyEKKy0vLyEgPiBge2VsZW1lbnRfdHlwZX14e251bWJlcl9vZl9s YW5lc30gPT0gU2ltZDxbZWxlbWVudF90eXBlOworLS8vISBudW1iZXJfb2ZfbGFuZXNdPmAKKy0v LyEKKy0vLyEgd2hlcmUgdGhlIGZvbGxvd2luZyBlbGVtZW50IHR5cGVzIGFyZSBzdXBwb3J0ZWQ6 CistLy8hCistLy8hICogYGl7ZWxlbWVudF93aWR0aH1gOiBzaWduZWQgaW50ZWdlcgorLS8vISAq IGB1e2VsZW1lbnRfd2lkdGh9YDogdW5zaWduZWQgaW50ZWdlcgorLS8vISAqIGBme2VsZW1lbnRf d2lkdGh9YDogZmxvYXQKKy0vLyEgKiBgbXtlbGVtZW50X3dpZHRofWA6IG1hc2sgKHNlZSBiZWxv dykKKy0vLyEgKiBgKntjb25zdCxtdXR9IFRgOiBgY29uc3RgIGFuZCBgbXV0YCBwb2ludGVycwor LS8vIQorLS8vISAjIyBCYXNpYyBvcGVyYXRpb25zCistLy8hCistLy8hIGBgYAorLS8vISAjIHVz ZSBwYWNrZWRfc2ltZDo6KjsKKy0vLyEgLy8gU2V0cyBhbGwgZWxlbWVudHMgdG8gYDBgOgorLS8v ISBsZXQgYSA9IGkzMng0OjpzcGxhdCgwKTsKKy0vLyEKKy0vLyEgLy8gUmVhZHMgYSB2ZWN0b3Ig ZnJvbSBhIHNsaWNlOgorLS8vISBsZXQgbXV0IGFyciA9IFswLCAwLCAwLCAxLCAyLCAzLCA0LCA1 XTsKKy0vLyEgbGV0IGIgPSBpMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJmFycik7CistLy8h CistLy8hIC8vIFJlYWRzIHRoZSA0LXRoIGVsZW1lbnQgb2YgYSB2ZWN0b3I6CistLy8hIGFzc2Vy dF9lcSEoYi5leHRyYWN0KDMpLCAxKTsKKy0vLyEKKy0vLyEgLy8gUmV0dXJucyBhIG5ldyB2ZWN0 b3Igd2hlcmUgdGhlIDQtdGggZWxlbWVudCBpcyByZXBsYWNlZCB3aXRoIGAxYDoKKy0vLyEgbGV0 IGEgPSBhLnJlcGxhY2UoMywgMSk7CistLy8hIGFzc2VydF9lcSEoYSwgYik7CistLy8hCistLy8h IC8vIFdyaXRlcyBhIHZlY3RvciB0byBhIHNsaWNlOgorLS8vISBsZXQgYSA9IGEucmVwbGFjZSgy LCAxKTsKKy0vLyEgYS53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCBhcnJbNC4uXSk7Cist Ly8hIGFzc2VydF9lcSEoYXJyLCBbMCwgMCwgMCwgMSwgMCwgMCwgMSwgMV0pOworLS8vISBgYGAK Ky0vLyEKKy0vLyEgIyMgQ29uZGl0aW9uYWwgb3BlcmF0aW9ucworLS8vIQorLS8vISBPbmUgb2Z0 ZW4gbmVlZHMgdG8gcGVyZm9ybSBhbiBvcGVyYXRpb24gb24gc29tZSBsYW5lcyBvZiB0aGUgdmVj dG9yLiBWZWN0b3IKKy0vLyEgbWFza3MsIGxpa2UgYG0zMng0YCwgYWxsb3cgc2VsZWN0aW5nIG9u IHdoaWNoIHZlY3RvciBsYW5lcyBhbiBvcGVyYXRpb24gaXMKKy0vLyEgdG8gYmUgcGVyZm9ybWVk OgorLS8vIQorLS8vISBgYGAKKy0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7CistLy8hIGxldCBh ID0gaTMyeDQ6Om5ldygxLCAxLCAyLCAyKTsKKy0vLyEKKy0vLyEgLy8gQWRkIGAxYCB0byB0aGUg Zmlyc3QgdHdvIGxhbmVzIG9mIHRoZSB2ZWN0b3IuCistLy8hIGxldCBtID0gbTE2eDQ6Om5ldyh0 cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UpOworLS8vISBsZXQgYSA9IG0uc2VsZWN0KGEgKyAxLCBh KTsKKy0vLyEgYXNzZXJ0X2VxIShhLCBpMzJ4NDo6c3BsYXQoMikpOworLS8vISBgYGAKKy0vLyEK Ky0vLyEgVGhlIGVsZW1lbnRzIG9mIGEgdmVjdG9yIG1hc2sgYXJlIGVpdGhlciBgdHJ1ZWAgb3Ig YGZhbHNlYC4gSGVyZSBgdHJ1ZWAKKy0vLyEgbWVhbnMgdGhhdCBhIGxhbmUgaXMgInNlbGVjdGVk Iiwgd2hpbGUgYGZhbHNlYCBtZWFucyB0aGF0IGEgbGFuZSBpcyBub3QKKy0vLyEgc2VsZWN0ZWQu CistLy8hCistLy8hIEFsbCB2ZWN0b3IgbWFza3MgaW1wbGVtZW50IGEgYG1hc2suc2VsZWN0KGE6 IFQsIGI6IFQpIC0+IFRgIG1ldGhvZCB0aGF0CistLy8hIHdvcmtzIG9uIGFsbCB2ZWN0b3JzIHRo YXQgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMgYXMgdGhlIG1hc2suIFRoZQorLS8vISBy ZXN1bHRpbmcgdmVjdG9yIGNvbnRhaW5zIHRoZSBlbGVtZW50cyBvZiBgYWAgZm9yIHRob3NlIGxh bmVzIGZvciB3aGljaCB0aGUKKy0vLyEgbWFzayBpcyBgdHJ1ZWAsIGFuZCB0aGUgZWxlbWVudHMg b2YgYGJgIG90aGVyd2lzZS4KKy0vLyEKKy0vLyEgVGhlIGV4YW1wbGUgY29uc3RydWN0cyBhIG1h c2sgd2l0aCB0aGUgZmlyc3QgdHdvIGxhbmVzIHNldCB0byBgdHJ1ZWAgYW5kCistLy8hIHRoZSBs YXN0IHR3byBsYW5lcyBzZXQgdG8gYGZhbHNlYC4gVGhpcyBzZWxlY3RzIHRoZSBmaXJzdCB0d28g bGFuZXMgb2YgYGEgKworLS8vISAxYCBhbmQgdGhlIGxhc3QgdHdvIGxhbmVzIG9mIGBhYCwgcHJv ZHVjaW5nIGEgdmVjdG9yIHdoZXJlIHRoZSBmaXJzdCB0d28KKy0vLyEgbGFuZXMgaGF2ZSBiZWVu IGluY3JlbWVudGVkIGJ5IGAxYC4KKy0vLyEKKy0vLyEgPiBub3RlOiBtYXNrIGBzZWxlY3RgIGNh biBiZSB1c2VkIG9uIHZlY3RvciB0eXBlcyB0aGF0IGhhdmUgdGhlIHNhbWUgbnVtYmVyCistLy8h ID4gb2YgbGFuZXMgYXMgdGhlIG1hc2suIFRoZSBleGFtcGxlIHNob3dzIHRoaXMgYnkgdXNpbmcg W2BtMTZ4NGBdIGluc3RlYWQKKy0vLyEgPiBvZiBbYG0zMng0YF0uIEl0IGlzIF90eXBpY2FsbHlf IG1vcmUgcGVyZm9ybWFudCB0byB1c2UgYSBtYXNrIGVsZW1lbnQKKy0vLyEgPiB3aWR0aCBlcXVh bCB0byB0aGUgZWxlbWVudCB3aWR0aCBvZiB0aGUgdmVjdG9ycyBiZWluZyBvcGVyYXRlZCB1cG9u LgorLS8vISA+IFRoaXMgaXMsIGhvd2V2ZXIsIG5vdCB0cnVlIGZvciA1MTItYml0IHdpZGUgdmVj dG9ycyB3aGVuIHRhcmdldGluZworLS8vISA+IEFWWC01MTIsIHdoZXJlIHRoZSBtb3N0IGVmZmlj aWVudCBtYXNrcyB1c2Ugb25seSAxLWJpdCBwZXIgZWxlbWVudC4KKy0vLyEKKy0vLyEgQWxsIHZl cnRpY2FsIGNvbXBhcmlzb24gb3BlcmF0aW9ucyByZXR1cm5zIG1hc2tzOgorLS8vIQorLS8vISBg YGAKKy0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7CistLy8hIGxldCBhID0gaTMyeDQ6Om5ldygx LCAxLCAzLCAzKTsKKy0vLyEgbGV0IGIgPSBpMzJ4NDo6bmV3KDIsIDIsIDAsIDApOworLS8vIQor LS8vISAvLyBnZTogPj0gKEdyZWF0ZXIgRWVxdWFsOyBzZWUgYWxzbyBsdCwgbGUsIGd0LCBlcSwg bmUpLgorLS8vISBsZXQgbSA9IGEuZ2UoaTMyeDQ6OnNwbGF0KDIpKTsKKy0vLyEKKy0vLyEgaWYg bS5hbnkoKSB7CistLy8hICAgICAvLyBhbGwgLyBhbnkgLyBub25lIGFsbG93IGNvaGVyZW50IGNv bnRyb2wgZmxvdworLS8vISAgICAgbGV0IGQgPSBtLnNlbGVjdChhLCBiKTsKKy0vLyEgICAgIGFz c2VydF9lcSEoZCwgaTMyeDQ6Om5ldygyLCAyLCAzLCAzKSk7CistLy8hIH0KKy0vLyEgYGBgCist Ly8hCistLy8hICMjIENvbnZlcnNpb25zCistLy8hCistLy8hICogKipsb3NzbGVzcyB3aWRlbmlu ZyBjb252ZXJzaW9ucyoqOiBbYEZyb21gXS9bYEludG9gXSBhcmUgaW1wbGVtZW50ZWQgZm9yCist Ly8hICAgdmVjdG9ycyB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBsYW5lcyB3aGVuIHRoZSBjb252 ZXJzaW9uIGlzIHZhbHVlCistLy8hIHByZXNlcnZpbmcgICAoc2FtZSBhcyBpbiBgc3RkYCkuCist Ly8hCistLy8hICogKipzYWZlIGJpdHdpc2UgY29udmVyc2lvbnMqKjogVGhlIGNhcmdvIGZlYXR1 cmUgYGludG9fYml0c2AgcHJvdmlkZXMgdGhlCistLy8hICAgYEludG9CaXRzL0Zyb21CaXRzYCB0 cmFpdHMgKGB4LmludG9fYml0cygpYCkuIFRoZXNlIHBlcmZvcm0gc2FmZSBiaXR3aXNlCistLy8h ICAgYHRyYW5zbXV0ZWBzIHdoZW4gYWxsIGJpdCBwYXR0ZXJucyBvZiB0aGUgc291cmNlIHR5cGUg YXJlIHZhbGlkIGJpdAorLS8vISAgIHBhdHRlcm5zIG9mIHRoZSB0YXJnZXQgdHlwZSBhbmQgYXJl IGFsc28gaW1wbGVtZW50ZWQgZm9yIHRoZQorLS8vISAgIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyB2 ZWN0b3IgdHlwZXMgb2YgYHN0ZDo6YXJjaGAuIEZvciBleGFtcGxlLCBgbGV0IHg6CistLy8hICAg dTh4OCA9IG04eDg6OnNwbGF0KHRydWUpLmludG9fYml0cygpO2AgaXMgcHJvdmlkZWQgYmVjYXVz ZSBhbGwgYG04eDhgIGJpdAorLS8vISAgIHBhdHRlcm5zIGFyZSB2YWxpZCBgdTh4OGAgYml0IHBh dHRlcm5zLiBIb3dldmVyLCB0aGUgb3Bwb3NpdGUgaXMgbm90CistLy8hIHRydWUsICAgbm90IGFs bCBgdTh4OGAgYml0IHBhdHRlcm5zIGFyZSB2YWxpZCBgbTh4OGAgYml0LXBhdHRlcm5zLCBzbyB0 aGlzCistLy8hICAgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgc2FmZWx5IHVzaW5nIGB4 LmludG9fYml0cygpYDsgb25lIG5lZWRzIHRvCistLy8hICAgdXNlIGB1bnNhZmUgeyBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoeCkgfWAgZm9yIHRoYXQsIG1ha2luZyBzdXJlIHRoYXQgdGhlCistLy8h ICAgdmFsdWUgaW4gdGhlIGB1OHg4YCBpcyBhIHZhbGlkIGJpdC1wYXR0ZXJuIG9mIGBtOHg4YC4K Ky0vLyEKKy0vLyEgKiAqKm51bWVyaWMgY2FzdHMqKiAoYGFzYCk6IGFyZSBwZXJmb3JtZWQgdXNp bmcgW2BGcm9tQ2FzdGBdL1tgQ2FzdGBdCistLy8hIChgeC5jYXN0KClgKSwganVzdCBsaWtlIGBh c2A6CistLy8hCistLy8hICAgKiBjYXN0aW5nIGludGVnZXIgdmVjdG9ycyB3aG9zZSBsYW5lIHR5 cGVzIGhhdmUgdGhlIHNhbWUgc2l6ZSAoZS5nLgorLS8vISBgaTMyeE5gICAgICAtPiBgdTMyeE5g KSBpcyBhICoqbm8tb3AqKiwKKy0vLyEKKy0vLyEgICAqIGNhc3RpbmcgZnJvbSBhIGxhcmdlciBp bnRlZ2VyIHRvIGEgc21hbGxlciBpbnRlZ2VyIChlLmcuIGB1MzJ4TmAgLT4KKy0vLyEgYHU4eE5g KSAgICAgd2lsbCAqKnRydW5jYXRlKiosCistLy8hCistLy8hICAgKiBjYXN0aW5nIGZyb20gYSBz bWFsbGVyIGludGVnZXIgdG8gYSBsYXJnZXIgaW50ZWdlciAgICAgKGUuZy4gYHU4eE5gIC0+Cist Ly8hICAgICBgdTMyeE5gKSB3aWxsOgorLS8vISAgICAgICAgKiAqKnplcm8tZXh0ZW5kKiogaWYg dGhlIHNvdXJjZSBpcyB1bnNpZ25lZCwgb3IKKy0vLyEgICAgICAgICogKipzaWduLWV4dGVuZCoq IGlmIHRoZSBzb3VyY2UgaXMgc2lnbmVkLAorLS8vIQorLS8vISAgICogY2FzdGluZyBmcm9tIGEg ZmxvYXQgdG8gYW4gaW50ZWdlciB3aWxsICoqcm91bmQgdGhlIGZsb2F0IHRvd2FyZHMKKy0vLyEg emVybyoqLAorLS8vIQorLS8vISAgICogY2FzdGluZyBmcm9tIGFuIGludGVnZXIgdG8gZmxvYXQg d2lsbCBwcm9kdWNlIHRoZSBmbG9hdGluZyBwb2ludAorLS8vISAgICAgcmVwcmVzZW50YXRpb24g b2YgdGhlIGludGVnZXIsICoqcm91bmRpbmcgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiosCist Ly8hCistLy8hICAgKiBjYXN0aW5nIGZyb20gYW4gYGYzMmAgdG8gYW4gYGY2NGAgaXMgcGVyZmVj dCBhbmQgbG9zc2xlc3MsCistLy8hCistLy8hICAgKiBjYXN0aW5nIGZyb20gYW4gYGY2NGAgdG8g YW4gYGYzMmAgKipyb3VuZHMgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiouCistLy8hCistLy8h ICAgTnVtZXJpYyBjYXN0cyBhcmUgbm90IHZlcnkgInByZWNpc2UiOiBzb21ldGltZXMgbG9zc3ks IHNvbWV0aW1lcyB2YWx1ZQorLS8vISAgIHByZXNlcnZpbmcsIGV0Yy4KKy0vLyEKKy0vLyEgIyMg SGFyZHdhcmUgRmVhdHVyZXMKKy0vLyEKKy0vLyEgVGhpcyBjcmF0ZSBjYW4gdXNlIGRpZmZlcmVu dCBoYXJkd2FyZSBmZWF0dXJlcyBiYXNlZCBvbiB5b3VyIGNvbmZpZ3VyZWQKKy0vLyEgYFJVU1RG TEFHU2AuIEZvciBleGFtcGxlLCB3aXRoIG5vIGNvbmZpZ3VyZWQgYFJVU1RGTEFHU2AsIGB1NjR4 OGAgb24KKy0vLyEgeDg2XzY0IHdpbGwgdXNlIFNTRTIgb3BlcmF0aW9ucyBsaWtlIGBQQ01QRVFE YC4gSWYgeW91IGNvbmZpZ3VyZQorLS8vISBgUlVTVEZMQUdTPSctQyB0YXJnZXQtZmVhdHVyZT0r YXZ4MiwrYXZ4J2Agb24gc3VwcG9ydGVkIHg4Nl82NCBoYXJkd2FyZQorLS8vISB0aGUgc2FtZSBg dTY0eDhgIG1heSB1c2Ugd2lkZXIgQVZYMiBvcGVyYXRpb25zIGxpa2UgYFZQQ01QRVFRYC4gSXQg aXMKKy0vLyEgaW1wb3J0YW50IGZvciBwZXJmb3JtYW5jZSBhbmQgZm9yIGhhcmR3YXJlIHN1cHBv cnQgcmVxdWlyZW1lbnRzIHRoYXQKKy0vLyEgeW91IGNob29zZSBhbiBhcHByb3ByaWF0ZSBzZXQg b2YgYHRhcmdldC1mZWF0dXJlYCBhbmQgYHRhcmdldC1jcHVgCistLy8hIG9wdGlvbnMgZHVyaW5n IGJ1aWxkcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgW1BlcmZvcm1hbmNlCistLy8h IGd1aWRlXShodHRwczovL3J1c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlLykKKy0KKy0jIVtmZWF0dXJlKAorLSAgICBhZHRfY29uc3RfcGFyYW1zLAorLSAg ICByZXByX3NpbWQsCistICAgIHJ1c3RjX2F0dHJzLAorLSAgICBwbGF0Zm9ybV9pbnRyaW5zaWNz LAorLSAgICBzdGRzaW1kLAorLSAgICBhcm1fdGFyZ2V0X2ZlYXR1cmUsCistICAgIGxpbmtfbGx2 bV9pbnRyaW5zaWNzLAorLSAgICBjb3JlX2ludHJpbnNpY3MsCistICAgIHN0bXRfZXhwcl9hdHRy aWJ1dGVzLAorLSAgICBjdXN0b21faW5uZXJfYXR0cmlidXRlcywKKy0pXQorLSMhW2FsbG93KG5v bl9jYW1lbF9jYXNlX3R5cGVzLCBub25fc25ha2VfY2FzZSwKKy0gICAgICAgIC8vIEZJWE1FOiB0 aGVzZSB0eXBlcyBhcmUgdW5zb3VuZCBpbiBDIEZGSSBhbHJlYWR5CistICAgICAgICAvLyBTZWUg aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9ydXN0L2lzc3Vlcy81MzM0NgorLSAgICAgICAg aW1wcm9wZXJfY3R5cGVzX2RlZmluaXRpb25zLAorLSAgICAgICAgaW5jb21wbGV0ZV9mZWF0dXJl cywKKy0gICAgICAgIGNsaXBweTo6Y2FzdF9wb3NzaWJsZV90cnVuY2F0aW9uLAorLSAgICAgICAg Y2xpcHB5OjpjYXN0X2xvc3NsZXNzLAorLSAgICAgICAgY2xpcHB5OjpjYXN0X3Bvc3NpYmxlX3dy YXAsCistICAgICAgICBjbGlwcHk6OmNhc3RfcHJlY2lzaW9uX2xvc3MsCistICAgICAgICAvLyBU T0RPOiBtYW51YWxseSBhZGQgdGhlIGAjW211c3RfdXNlXWAgYXR0cmlidXRlIHdoZXJlIGFwcHJv cHJpYXRlCistICAgICAgICBjbGlwcHk6Om11c3RfdXNlX2NhbmRpZGF0ZSwKKy0gICAgICAgIC8v IFRoaXMgbGludCBpcyBjdXJyZW50bHkgYnJva2VuIGZvciBnZW5lcmljIGNvZGUKKy0gICAgICAg IC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QtY2xpcHB5L2lzc3Vlcy8z NDEwCistICAgICAgICBjbGlwcHk6OnVzZV9zZWxmLAorLSAgICAgICAgY2xpcHB5Ojp3cm9uZ19z ZWxmX2NvbnZlbnRpb24sCistICAgICAgICBjbGlwcHk6OmZyb21fb3Zlcl9pbnRvLAorLSldCist IyFbY2ZnX2F0dHIodGVzdCwgZmVhdHVyZShoYXNobWFwX2ludGVybmFscykpXQorLSMhW2NmZ19h dHRyKGRvY19jZmcsIGZlYXR1cmUoZG9jX2NmZykpXQorLSMhW2RlbnkocnVzdF8yMDE4X2lkaW9t cywgY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQorLSMhW25vX3N0ZF0K Ky0KKy11c2UgY2ZnX2lmOjpjZmdfaWY7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKGZl YXR1cmUgPSAiY29yZV9hcmNoIildIHsKKy0gICAgICAgICNbYWxsb3codW51c2VkX2ltcG9ydHMp XQorLSAgICAgICAgdXNlIGNvcmVfYXJjaCBhcyBhcmNoOworLSAgICB9IGVsc2UgeworLSAgICAg ICAgI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldCistICAgICAgICB1c2UgY29yZTo6YXJjaDsKKy0g ICAgfQorLX0KKy0KKy0jW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgdGVzdCkpXQor LXVzZSB3YXNtX2JpbmRnZW5fdGVzdDo6KjsKKy0KKy0jW2FsbG93KHVudXNlZF9pbXBvcnRzKV0K Ky11c2UgY29yZTo6eworLSAgICAvKiBhcmNoIChoYW5kbGVkIGFib3ZlKSwgKi8gY21wLCBmMzIs IGY2NCwgZm10LCBoYXNoLCBoaW50LCBpMTI4LCBpMTYsIGkzMiwgaTY0LCBpOCwgaW50cmluc2lj cywKKy0gICAgaXNpemUsIGl0ZXIsIG1hcmtlciwgbWVtLCBvcHMsIHB0ciwgc2xpY2UsIHUxMjgs IHUxNiwgdTMyLCB1NjQsIHU4LCB1c2l6ZSwKKy19OworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB0 ZXN0aW5nOworLSNbbWFjcm9fdXNlXQorLW1vZCBhcGk7CistbW9kIGNvZGVnZW47CistbW9kIHNl YWxlZDsKKy0KKy1wdWIgdXNlIGNyYXRlOjpzZWFsZWQ6OntNYXNrLCBTaHVmZmxlLCBTaW1kIGFz IFNpbWRWZWN0b3IsIFNpbWRBcnJheX07CistCistLy8vIFBhY2tlZCBTSU1EIHZlY3RvciB0eXBl LgorLS8vLworLS8vLyAjIEV4YW1wbGVzCistLy8vCistLy8vIGBgYAorLS8vLyAjIHVzZSBwYWNr ZWRfc2ltZDo6U2ltZDsKKy0vLy8gbGV0IHYgPSBTaW1kOjo8W2kzMjsgNF0+OjpuZXcoMCwgMSwg MiwgMyk7CistLy8vIGFzc2VydF9lcSEodi5leHRyYWN0KDIpLCAyKTsKKy0vLy8gYGBgCistI1ty ZXByKHRyYW5zcGFyZW50KV0KKy0jW2Rlcml2ZShDb3B5LCBDbG9uZSldCistcHViIHN0cnVjdCBT aW1kPEE6IHNlYWxlZDo6U2ltZEFycmF5PigKKy0gICAgLy8gRklYTUU6IHRoaXMgdHlwZSBzaG91 bGQgYmUgcHJpdmF0ZSwKKy0gICAgLy8gYnV0IGl0IGN1cnJlbnRseSBtdXN0IGJlIHB1YmxpYyBm b3IgdGhlCistICAgIC8vIGBzaHVmZmxlIWAgbWFjcm8gdG8gd29yazogaXQgbmVlZHMgdG8KKy0g ICAgLy8gYWNjZXNzIHRoZSBpbnRlcm5hbCBgcmVwcihzaW1kKWAgdHlwZQorLSAgICAvLyB0byBj YWxsIHRoZSBzaHVmZmxlIGludHJpbnNpY3MuCistICAgICNbZG9jKGhpZGRlbildIHB1YiA8QSBh cyBzZWFsZWQ6OlNpbWRBcnJheT46OlR1cGxlLAorLSk7CistCistaW1wbDxBOiBzZWFsZWQ6OlNp bWRBcnJheT4gc2VhbGVkOjpTZWFsIGZvciBTaW1kPEE+IHt9CistCistLy8vIFdyYXBwZXIgb3Zl ciBgVGAgaW1wbGVtZW50aW5nIGEgbGV4aWNvcmFwaGljYWwgb3JkZXIgdmlhIHRoZSBgUGFydGlh bE9yZGAKKy0vLy8gYW5kL29yIGBPcmRgIHRyYWl0cy4KKy0jW3JlcHIodHJhbnNwYXJlbnQpXQor LSNbZGVyaXZlKENvcHksIENsb25lLCBEZWJ1ZyldCistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdf aW5saW5lX2luX3B1YmxpY19pdGVtcyldCistcHViIHN0cnVjdCBMZXhpY29ncmFwaGljYWxseU9y ZGVyZWQ8VD4oVCk7CistCistbW9kIG1hc2tzOworLXB1YiB1c2Ugc2VsZjo6bWFza3M6Oio7Cist CistbW9kIHYxNjsKKy1wdWIgdXNlIHNlbGY6OnYxNjo6KjsKKy0KKy1tb2QgdjMyOworLXB1YiB1 c2Ugc2VsZjo6djMyOjoqOworLQorLW1vZCB2NjQ7CistcHViIHVzZSBzZWxmOjp2NjQ6Oio7Cist CistbW9kIHYxMjg7CistcHViIHVzZSBzZWxmOjp2MTI4OjoqOworLQorLW1vZCB2MjU2OworLXB1 YiB1c2Ugc2VsZjo6djI1Njo6KjsKKy0KKy1tb2QgdjUxMjsKKy1wdWIgdXNlIHNlbGY6OnY1MTI6 Oio7CistCistbW9kIHZTaXplOworLXB1YiB1c2Ugc2VsZjo6dlNpemU6Oio7CistCistbW9kIHZQ dHI7CistcHViIHVzZSBzZWxmOjp2UHRyOjoqOworLQorLXB1YiB1c2Ugc2VsZjo6YXBpOjpjYXN0 OjoqOworLQorLSNbY2ZnKGZlYXR1cmUgPSAiaW50b19iaXRzIildCistcHViIHVzZSBzZWxmOjph cGk6OmludG9fYml0czo6KjsKKy0KKy0vLyBSZS1leHBvcnQgdGhlIHNodWZmbGUgaW50cmluc2lj cyByZXF1aXJlZCBieSB0aGUgYHNodWZmbGUhYCBtYWNyby4KKy0jW2RvYyhoaWRkZW4pXQorLXB1 YiB1c2Ugc2VsZjo6Y29kZWdlbjo6bGx2bTo6eworLSAgICBfX3NodWZmbGVfdmVjdG9yMTYsIF9f c2h1ZmZsZV92ZWN0b3IyLCBfX3NodWZmbGVfdmVjdG9yMzIsIF9fc2h1ZmZsZV92ZWN0b3I0LCBf X3NodWZmbGVfdmVjdG9yNjQsCistICAgIF9fc2h1ZmZsZV92ZWN0b3I4LAorLX07CistCistcHVi KGNyYXRlKSBtb2QgbGx2bSB7CistICAgIHB1YihjcmF0ZSkgdXNlIGNyYXRlOjpjb2RlZ2VuOjps bHZtOjoqOworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9tYXNrcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL21hc2tzLnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL21hc2tzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMjYgKzAsMCBAQAorLS8vISBN YXNrIHR5cGVzCistCistbWFjcm9fcnVsZXMhIGltcGxfbWFza190eSB7CistICAgICgkaWQ6aWRl bnQgOiAkZWxlbV90eTppZGVudCB8ICNbJGRvYzptZXRhXSkgPT4geworLSAgICAgICAgI1skZG9j XQorLSAgICAgICAgI1tkZXJpdmUoQ29weSwgQ2xvbmUpXQorLSAgICAgICAgcHViIHN0cnVjdCAk aWQoJGVsZW1fdHkpOworLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpTZWFsIGZvciAk aWQge30KKy0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6TWFzayBmb3IgJGlkIHsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiB0ZXN0KCZzZWxmKSAtPiBib29sIHsK Ky0gICAgICAgICAgICAgICAgJGlkOjp0ZXN0KHNlbGYpCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLQorLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0 ZSBhIG1hc2sgd2l0aCBgdmFsdWVgCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgcHViIGZuIG5ldyh4OiBib29sKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgaWYgeCB7 CistICAgICAgICAgICAgICAgICAgICAkaWQoITApCistICAgICAgICAgICAgICAgIH0gZWxzZSB7 CistICAgICAgICAgICAgICAgICAgICAkaWQoMCkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAvLy8gVGVzdCBpZiB0aGUgbWFzayBpcyBzZXQKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gdGVzdCgmc2VsZikgLT4gYm9v bCB7CistICAgICAgICAgICAgICAgIHNlbGYuMCAhPSAwCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLQorLSAgICAgICAgaW1wbCBEZWZhdWx0IGZvciAkaWQgeworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIGRlZmF1bHQoKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgJGlkKDApCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgI1th bGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KKy0gICAgICAgIGltcGwgUGFydGlhbEVx PCRpZD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4g ZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHNlbGYu MCA9PSBvdGhlci4wCistICAgICAgICAgICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAg ICAgICAgICBzZWxmLjAgIT0gb3RoZXIuMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIGltcGwgRXEgZm9yICRpZCB7fQorLQorLSAgICAgICAgaW1wbCBQYXJ0aWFsT3Jk PCRpZD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4g cGFydGlhbF9jbXAoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gT3B0aW9uPGNyYXRlOjpjbXA6Ok9y ZGVyaW5nPiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y21wOjpPcmRlcmluZzsKKy0g ICAgICAgICAgICAgICAgaWYgc2VsZiA9PSBvdGhlciB7CistICAgICAgICAgICAgICAgICAgICBT b21lKE9yZGVyaW5nOjpFcXVhbCkKKy0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIHNlbGYuMCA+ IG90aGVyLjAgeworLSAgICAgICAgICAgICAgICAgICAgLy8gTm90ZToKKy0gICAgICAgICAgICAg ICAgICAgIC8vICAqIGZhbHNlID0gMF9pCistICAgICAgICAgICAgICAgICAgICAvLyAgKiB0cnVl ID09ICEwX2kgPT0gLTFfaQorLSAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVz cykKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgIFNvbWUo T3JkZXJpbmc6OkdyZWF0ZXIpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbHQoJnNlbGYsIG90aGVy OiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHNlbGYuMCA+IG90aGVyLjAKKy0g ICAgICAgICAgICB9CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZ3Qo JnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHNlbGYuMCA8 IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gbGUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAg ICAgIHNlbGYuMCA+PSBvdGhlci4wCistICAgICAgICAgICAgfQorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGdlKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewor LSAgICAgICAgICAgICAgICBzZWxmLjAgPD0gb3RoZXIuMAorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIGltcGwgT3JkIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGNtcCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBjcmF0ZTo6 Y21wOjpPcmRlcmluZyB7CistICAgICAgICAgICAgICAgIG1hdGNoIHNlbGYucGFydGlhbF9jbXAo b3RoZXIpIHsKKy0gICAgICAgICAgICAgICAgICAgIFNvbWUoeCkgPT4geCwKKy0gICAgICAgICAg ICAgICAgICAgIE5vbmUgPT4gdW5zYWZlIHsgY3JhdGU6OmhpbnQ6OnVucmVhY2hhYmxlX3VuY2hl Y2tlZCgpIH0sCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistCistICAgICAgICBpbXBsIGNyYXRlOjpoYXNoOjpIYXNoIGZvciAkaWQgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGhhc2g8SDogY3JhdGU6Omhhc2g6Okhhc2hl cj4oJnNlbGYsIHN0YXRlOiAmbXV0IEgpIHsKKy0gICAgICAgICAgICAgICAgKHNlbGYuMCAhPSAw KS5oYXNoKHN0YXRlKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBp bXBsIGNyYXRlOjpmbXQ6OkRlYnVnIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZm10dGVyOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1h dHRlcjwnXz4pIC0+IFJlc3VsdDwoKSwgY3JhdGU6OmZtdDo6RXJyb3I+IHsKKy0gICAgICAgICAg ICAgICAgd3JpdGUhKGZtdHRlciwgInt9KHt9KSIsIHN0cmluZ2lmeSEoJGlkKSwgc2VsZi4wICE9 IDApCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1pbXBsX21h c2tfdHkhKG04OiBpOCB8IC8vLyA4LWJpdCB3aWRlIG1hc2suCistKTsKKy1pbXBsX21hc2tfdHkh KG0xNjogaTE2IHwgLy8vIDE2LWJpdCB3aWRlIG1hc2suCistKTsKKy1pbXBsX21hc2tfdHkhKG0z MjogaTMyIHwgLy8vIDMyLWJpdCB3aWRlIG1hc2suCistKTsKKy1pbXBsX21hc2tfdHkhKG02NDog aTY0IHwgLy8vIDY0LWJpdCB3aWRlIG1hc2suCistKTsKKy1pbXBsX21hc2tfdHkhKG0xMjg6IGkx MjggfCAvLy8gMTI4LWJpdCB3aWRlIG1hc2suCistKTsKKy1pbXBsX21hc2tfdHkhKG1zaXplOiBp c2l6ZSB8IC8vLyBpc2l6ZS13aWRlIG1hc2suCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9zZWFsZWQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9zZWFsZWQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvc2VhbGVkLnJzCisrKysgL2Rldi9udWxsCitA QCAtMSw0MiArMCwwIEBACistLy8hIFNlYWxlZCB0cmFpdHMKKy0KKy0vLy8gQSBzZWFsZWQgdHJh aXQsIHRoaXMgaXMgbG9naWNhbGx5IHByaXZhdGUgdG8gdGhlIGNyYXRlCistLy8vIGFuZCB3aWxs IHByZXZlbnQgaW1wbGVtZW50YXRpb25zIGZyb20gb3V0c2lkZSB0aGUgY3JhdGUKKy1wdWIgdHJh aXQgU2VhbDxUID0gKCk+IHt9CistCistLy8vIFRyYWl0IGltcGxlbWVudGVkIGJ5IGFycmF5cyB0 aGF0IGNhbiBiZSBTSU1EIHR5cGVzLgorLXB1YiB0cmFpdCBTaW1kQXJyYXk6IFNlYWwgeworLSAg ICAvLy8gVGhlIHR5cGUgb2YgdGhlICNbcmVwcihzaW1kKV0gdHlwZS4KKy0gICAgdHlwZSBUdXBs ZTogQ29weSArIENsb25lOworLSAgICAvLy8gVGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgdmVjdG9y LgorLSAgICB0eXBlIFQ7CistICAgIC8vLyBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBh cnJheS4KKy0gICAgY29uc3QgTjogdXNpemU7CistICAgIC8vLyBUaGUgdHlwZTogYFt1MzI7IFNl bGY6Ok5dYC4KKy0gICAgdHlwZSBOVDsKKy19CistCistLy8vIFRoaXMgdHJhaXRzIGlzIHVzZWQg dG8gY29uc3RyYWludCB0aGUgYXJndW1lbnRzCistLy8vIGFuZCByZXN1bHQgdHlwZSBvZiB0aGUg cG9ydGFibGUgc2h1ZmZsZXMuCistI1tkb2MoaGlkZGVuKV0KKy1wdWIgdHJhaXQgU2h1ZmZsZTxM YW5lcz46IFNlYWw8TGFuZXM+IHsKKy0gICAgLy8gTGFuZXMgaXMgYSBgW3UzMjsgTl1gIHdoZXJl IGBOYCBpcyB0aGUgbnVtYmVyIG9mIHZlY3RvciBsYW5lcworLQorLSAgICAvLy8gVGhlIHJlc3Vs dCB0eXBlIG9mIHRoZSBzaHVmZmxlLgorLSAgICB0eXBlIE91dHB1dDsKKy19CistCistLy8vIFRo aXMgdHJhaXQgaXMgaW1wbGVtZW50ZWQgYnkgYWxsIFNJTUQgdmVjdG9yIHR5cGVzLgorLXB1YiB0 cmFpdCBTaW1kOiBTZWFsIHsKKy0gICAgLy8vIEVsZW1lbnQgdHlwZSBvZiB0aGUgU0lNRCB2ZWN0 b3IKKy0gICAgdHlwZSBFbGVtZW50OworLSAgICAvLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBp biB0aGUgU0lNRCB2ZWN0b3IuCistICAgIGNvbnN0IExBTkVTOiB1c2l6ZTsKKy0gICAgLy8vIFRo ZSB0eXBlOiBgW3UzMjsgU2VsZjo6Tl1gLgorLSAgICB0eXBlIExhbmVzVHlwZTsKKy19CistCist Ly8vIFRoaXMgdHJhaXQgaXMgaW1wbGVtZW50ZWQgYnkgYWxsIG1hc2sgdHlwZXMKKy1wdWIgdHJh aXQgTWFzazogU2VhbCB7CistICAgIGZuIHRlc3QoJnNlbGYpIC0+IGJvb2w7CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3Rpbmcu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDggKzAsMCBAQAorLS8vISBUZXN0aW5nIG1hY3JvcyBh bmQgb3RoZXIgdXRpbGl0aWVzLgorLQorLSNbbWFjcm9fdXNlXQorLW1vZCBtYWNyb3M7CistCist I1tjZmcodGVzdCldCistI1ttYWNyb191c2VdCistcHViKGNyYXRlKSBtb2QgdXRpbHM7CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy9tYWNyb3Mu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nL21hY3Jvcy5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy90ZXN0aW5nL21hY3Jvcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDQgKzAsMCBA QAorLS8vISBUZXN0aW5nIG1hY3JvcworLQorLW1hY3JvX3J1bGVzISB0ZXN0X2lmIHsKKy0gICAg KCRjZmdfdHQ6dHQ6ICRpdDppdGVtKSA9PiB7CistICAgICAgICAjW2NmZyhhbnkoCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g VGVzdCBldmVyeXRoaW5nIGlmOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKiB0ZXN0cyBhcmUgZW5hYmxlZCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAqIG5vIGZlYXR1cmVzIGFib3V0IGV4Y2x1c2l2ZWx5IHRlc3RpbmcKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAg IHNwZWNpZmljIHZlY3RvciBjbGFzc2VzIGFyZSBlbmFibGVkCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsKHRlc3QsIG5vdChh bnkoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RfdjE2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3YzMiwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92 NjQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RfdjEyOCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92MjU2LAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X3Y1MTIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3Rfbm9uZSwgIC8vIGRpc2FibGVzIGFsbCB0ZXN0cworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkp KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBUZXN0IGlmOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKiB0ZXN0cyBhcmUgZW5hYmxlZAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vICogYSBwYXJ0aWN1bGFyIGNmZyB0b2tlbiB0cmVlIHJldHVybnMgdHJ1ZQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFs bCh0ZXN0LCAkY2ZnX3R0KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkpXQorLSAgICAgICAgJGl0CistICAgIH07CistfQorLQorLSNb Y2ZnKHRlc3QpXQorLSNbYWxsb3codW51c2VkKV0KKy1tYWNyb19ydWxlcyEgcmVmXyB7CistICAg ICgkYW55dGhpbmc6dHQpID0+IHsKKy0gICAgICAgICYkYW55dGhpbmcKKy0gICAgfTsKKy19Cist CistI1tjZmcodGVzdCldCistI1thbGxvdyh1bnVzZWQpXQorLW1hY3JvX3J1bGVzISByZWZfbXV0 XyB7CistICAgICgkYW55dGhpbmc6dHQpID0+IHsKKy0gICAgICAgICZtdXQgJGFueXRoaW5nCist ICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L3Rlc3RpbmcvdXRpbHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0 aW5nL3V0aWxzLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvdXRpbHMucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDEzMCArMCwwIEBACistLy8hIFRlc3RpbmcgdXRpbGl0aWVzCistCistIyFbYWxsb3coZGVh ZF9jb2RlKV0KKy0vLyBGSVhNRTogT3IgZG9uJ3QuIEJ1dCBpdCdzIHRydWUgdGhpcyBpcyBhIHBy b2JsZW1hdGljIGNvbXBhcmlzb24uCistIyFbYWxsb3coY2xpcHB5OjpuZWdfY21wX29wX29uX3Bh cnRpYWxfb3JkKV0KKy0KKy11c2UgY3JhdGU6OntjbXA6OlBhcnRpYWxPcmQsIGZtdDo6RGVidWcs IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZH07CistCistLy8vIFRlc3RzIFBhcnRpYWxPcmQgZm9y IGBhYCBhbmQgYGJgIHdoZXJlIGBhIDwgYmAgaXMgdHJ1ZS4KKy1wdWIgZm4gdGVzdF9sdDxUPihh OiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4sIGI6IExleGljb2dyYXBoaWNhbGx5T3JkZXJl ZDxUPikKKy13aGVyZQorLSAgICBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD46IERlYnVnICsg UGFydGlhbE9yZCwKKy17CistICAgIGFzc2VydCEoYSA8IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7 CistICAgIGFzc2VydCEoYiA+IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistCistICAgIGFzc2Vy dCEoIShhID09IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICBhc3NlcnRfbmUhKGEsIGIs ICJ7Oj99LCB7Oj99IiwgYSwgYik7CistCistICAgIGFzc2VydCEoYSA8PSBiLCAiezo/fSwgezo/ fSIsIGEsIGIpOworLSAgICBhc3NlcnQhKGIgPj0gYSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0K Ky0gICAgLy8gVGhlIGVsZWdhbmNlIG9mIHRoZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbiBvZiBp cnJlZmxleGl2aXR5IGlzIG1vcmUKKy0gICAgLy8gdGhhbiBjbGlwcHkgY2FuIGhhbmRsZS4KKy0g ICAgI1thbGxvdyhjbGlwcHk6OmVxX29wKV0KKy0gICAgeworLSAgICAgICAgLy8gSXJyZWZsZXhp dml0eQorLSAgICAgICAgYXNzZXJ0ISghKGEgPCBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0g ICAgICAgIGFzc2VydCEoIShiIDwgYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICBh c3NlcnQhKCEoYSA+IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgYXNzZXJ0ISgh KGIgPiBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0KKy0gICAgICAgIGFzc2VydCEoYSA8PSBh LCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgYXNzZXJ0IShiIDw9IGIsICJ7Oj99LCB7 Oj99IiwgYSwgYik7CistICAgIH0KKy19CistCistLy8vIFRlc3RzIFBhcnRpYWxPcmQgZm9yIGBh YCBhbmQgYGJgIHdoZXJlIGBhIDw9IGJgIGlzIHRydWUuCistcHViIGZuIHRlc3RfbGU8VD4oYTog TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LCBiOiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8 VD4pCistd2hlcmUKKy0gICAgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+OiBEZWJ1ZyArIFBh cnRpYWxPcmQsCisteworLSAgICBhc3NlcnQhKGEgPD0gYiwgIns6P30sIHs6P30iLCBhLCBiKTsK Ky0gICAgYXNzZXJ0IShiID49IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistCistICAgIGFzc2Vy dCEoYSA8PSBiLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICBhc3NlcnQhKGIgPj0gYSwgIns6 P30sIHs6P30iLCBhLCBiKTsKKy0KKy0gICAgaWYgYSA9PSBiIHsKKy0gICAgICAgIGFzc2VydCEo IShhIDwgYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICBhc3NlcnQhKCEoYiA+IGEp LCAiezo/fSwgezo/fSIsIGEsIGIpOworLQorLSAgICAgICAgYXNzZXJ0ISghKGEgIT0gYiksICJ7 Oj99LCB7Oj99IiwgYSwgYik7CistICAgIH0gZWxzZSB7CistICAgICAgICBhc3NlcnRfbmUhKGEs IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICB0ZXN0X2x0KGEsIGIpOworLSAgICB9 CistfQorLQorLS8vLyBUZXN0IFBhcnRpYWxPcmQ6OnBhcnRpYWxfY21wIGZvciBgYWAgYW5kIGBi YCByZXR1cm5pbmcgYE9yZGVyaW5nYAorLXB1YiBmbiB0ZXN0X2NtcDxUPigKKy0gICAgYTogTGV4 aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LAorLSAgICBiOiBMZXhpY29ncmFwaGljYWxseU9yZGVy ZWQ8VD4sCistICAgIG86IE9wdGlvbjxjcmF0ZTo6Y21wOjpPcmRlcmluZz4sCistKSB3aGVyZQor LSAgICBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD46IFBhcnRpYWxPcmQgKyBEZWJ1ZywKKy0g ICAgVDogRGVidWcgKyBjcmF0ZTo6c2VhbGVkOjpTaW1kICsgQ29weSArIENsb25lLAorLSAgICA8 VCBhcyBjcmF0ZTo6c2VhbGVkOjpTaW1kPjo6RWxlbWVudDogRGVmYXVsdCArIENvcHkgKyBDbG9u ZSArIFBhcnRpYWxPcmQsCisteworLSAgICBhc3NlcnQhKFQ6OkxBTkVTIDw9IDY0LCAiYXJyYXkg bGVuZ3RoIGluIHRoZXNlIHR3byBhcnJheXMgbmVlZHMgdXBkYXRpbmciKTsKKy0gICAgbGV0IG11 dCBhcnJfYTogW1Q6OkVsZW1lbnQ7IDY0XSA9IFtEZWZhdWx0OjpkZWZhdWx0KCk7IDY0XTsKKy0g ICAgbGV0IG11dCBhcnJfYjogW1Q6OkVsZW1lbnQ7IDY0XSA9IFtEZWZhdWx0OjpkZWZhdWx0KCk7 IDY0XTsKKy0KKy0gICAgdW5zYWZlIHsgY3JhdGU6OnB0cjo6d3JpdGVfdW5hbGlnbmVkKGFycl9h LmFzX211dF9wdHIoKSBhcyAqbXV0IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPiwgYSkgfQor LSAgICB1bnNhZmUgeyBjcmF0ZTo6cHRyOjp3cml0ZV91bmFsaWduZWQoYXJyX2IuYXNfbXV0X3B0 cigpIGFzICptdXQgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LCBiKSB9CistICAgIGxldCBl eHBlY3RlZCA9IGFycl9hWzAuLlQ6OkxBTkVTXS5wYXJ0aWFsX2NtcCgmYXJyX2JbMC4uVDo6TEFO RVNdKTsKKy0gICAgbGV0IHJlc3VsdCA9IGEucGFydGlhbF9jbXAoJmIpOworLSAgICBhc3NlcnRf ZXEhKGV4cGVjdGVkLCByZXN1bHQsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgIGFzc2VydF9l cSEobywgcmVzdWx0LCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICBtYXRjaCBvIHsKKy0gICAg ICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpID0+IHsKKy0gICAgICAgICAgICB0 ZXN0X2x0KGEsIGIpOworLSAgICAgICAgICAgIHRlc3RfbGUoYSwgYik7CistICAgICAgICB9Cist ICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSA9PiB7CistICAgICAg ICAgICAgdGVzdF9sdChiLCBhKTsKKy0gICAgICAgICAgICB0ZXN0X2xlKGIsIGEpOworLSAgICAg ICAgfQorLSAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpID0+IHsKKy0g ICAgICAgICAgICBhc3NlcnQhKGEgPT0gYiwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAg ICAgICBhc3NlcnQhKCEoYSAhPSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAg ICBhc3NlcnQhKCEoYSA8IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFz c2VydCEoIShiIDwgYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0 ISghKGEgPiBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3NlcnQhKCEo YiA+IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLQorLSAgICAgICAgICAgIHRlc3RfbGUoYSwg Yik7CistICAgICAgICAgICAgdGVzdF9sZShiLCBhKTsKKy0gICAgICAgIH0KKy0gICAgICAgIE5v bmUgPT4geworLSAgICAgICAgICAgIGFzc2VydCEoIShhID09IGIpLCAiezo/fSwgezo/fSIsIGEs IGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShhICE9IGIpLCAiezo/fSwgezo/fSIsIGEsIGIp OworLSAgICAgICAgICAgIGFzc2VydCEoIShhIDwgYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Cist ICAgICAgICAgICAgYXNzZXJ0ISghKGEgPiBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAg ICAgICAgICBhc3NlcnQhKCEoYiA8IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAg ICAgIGFzc2VydCEoIShiID4gYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAg YXNzZXJ0ISghKGEgPD0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNz ZXJ0ISghKGIgPD0gYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0 ISghKGEgPj0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0ISgh KGIgPj0gYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICB9CistICAgIH0KKy19Cist CistLy8gUmV0dXJucyBhIHR1cGxlIGNvbnRhaW5pbmcgdHdvIGRpc3RpbmN0IHBvaW50ZXIgdmFs dWVzIG9mIHRoZSBzYW1lIHR5cGUgYXMKKy0vLyB0aGUgZWxlbWVudCB0eXBlIG9mIHRoZSBTaW1k IHZlY3RvciBgJGlkYC4KKy0jW2FsbG93KHVudXNlZCldCistbWFjcm9fcnVsZXMhIHB0cl92YWxz IHsKKy0gICAgKCRpZDp0eSkgPT4geworLSAgICAgICAgLy8gZXhwYW5kcyB0byBhbiBleHByZXNz aW9uCistICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQorLSAgICAgICAgdW5zYWZlIHsK Ky0gICAgICAgICAgICAvLyBhbGwgYml0cyBjbGVhcmVkCistICAgICAgICAgICAgbGV0IGNsZWFy OiA8JGlkIGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQgPSBjcmF0ZTo6bWVtOjp6ZXJvZWQoKTsK Ky0gICAgICAgICAgICAvLyBhbGwgYml0cyBzZXQKKy0gICAgICAgICAgICBsZXQgc2V0OiA8JGlk IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoLTFfaXNp emUpOworLSAgICAgICAgICAgIChjbGVhciwgc2V0KQorLSAgICAgICAgfQorLSAgICB9OworLX0K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTI4LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjEyOC5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTI4LnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw4MCArMCwwIEBACistLy8hIDEyOC1iaXQgd2lkZSB2ZWN0 b3IgdHlwZXMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxf aSEoW2k4OyAxNl06IGk4eDE2LCBtOHgxNiB8IGk4LCB1MTYgfCB0ZXN0X3YxMjggfAorLSAgICAg ICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIs IHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgMTI4LWJp dCB2ZWN0b3Igd2l0aCAxNiBgaThgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTg7IDE2XTogdTh4 MTYsIG04eDE2IHwgdTgsIHUxNiB8IHRlc3RfdjEyOCB8CistICAgICAgICB4MCwgeDEsIHgyLCB4 MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8 CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDE2 IGB1OGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttODsgMTZdOiBtOHgxNiB8IGk4LCB1MTYgfCB0 ZXN0X3YxMjggfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwg eDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogbTE2eDE2 IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAxNiBgbThgIGxhbmVz LgorLSk7CistCistaW1wbF9pIShbaTE2OyA4XTogaTE2eDgsIG0xNng4IHwgaTE2LCB1OCB8IHRl c3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9t OiBpOHg4LCB1OHg4IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggOCBgaTE2 YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3UxNjsgOF06IHUxNng4LCBtMTZ4OCB8IHUxNiwgdTgg fCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAg RnJvbTogdTh4OCB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDggYHUxNmAg bGFuZXMuCistKTsKKy1pbXBsX20hKFttMTY7IDhdOiBtMTZ4OCB8IGkxNiwgdTggfCB0ZXN0X3Yx MjggfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogbTh4 OCwgbTMyeDggfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDggYG0x NmAgbGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpMzI7IDRdOiBpMzJ4NCwgbTMyeDQgfCBpMzIs IHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogaTh4NCwg dTh4NCwgaTE2eDQsIHUxNng0ICB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRo IDQgYGkzMmAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MzI7IDRdOiB1MzJ4NCwgbTMyeDQgfCB1 MzIsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogdTh4 NCwgdTE2eDQgfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA0IGB1MzJgIGxh bmVzLgorLSk7CistaW1wbF9mIShbZjMyOyA0XTogZjMyeDQsIG0zMng0IHwgZjMyIHwgdGVzdF92 MTI4IHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwgaTE2eDQs IHUxNng0IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggNCBgZjMyYCBsYW5l cy4KKy0pOworLWltcGxfbSEoW20zMjsgNF06IG0zMng0IHwgaTMyLCB1OCB8IHRlc3RfdjEyOCB8 IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IG04eDQsIG0xNng0LCBtNjR4NCB8Cist ICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciBtYXNrIHdpdGggNCBgbTMyYCBsYW5lcy4KKy0p OworLQorLWltcGxfaSEoW2k2NDsgMl06IGk2NHgyLCBtNjR4MiB8IGk2NCwgdTggfCB0ZXN0X3Yx MjggfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogaTh4MiwgdTh4MiwgaTE2eDIsIHUxNngyLCBp MzJ4MiwgdTMyeDIgfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAyIGBpNjRg IGxhbmVzLgorLSk7CistaW1wbF91IShbdTY0OyAyXTogdTY0eDIsIG02NHgyIHwgdTY0LCB1OCB8 IHRlc3RfdjEyOCB8IHgwLCB4MSB8CistICAgICAgICBGcm9tOiB1OHgyLCB1MTZ4MiwgdTMyeDIg fAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAyIGB1NjRgIGxhbmVzLgorLSk7 CistaW1wbF9mIShbZjY0OyAyXTogZjY0eDIsIG02NHgyIHwgZjY0IHwgdGVzdF92MTI4IHwgeDAs IHgxIHwKKy0gICAgICAgIEZyb206IGk4eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiwgaTMyeDIsIHUz MngyLCBmMzJ4MiB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDIgYGY2NGAg bGFuZXMuCistKTsKKy1pbXBsX20hKFttNjQ7IDJdOiBtNjR4MiB8IGk2NCwgdTggfCB0ZXN0X3Yx MjggfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogbTh4MiwgbTE2eDIsIG0zMngyLCBtMTI4eDIg fAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDIgYG02NGAgbGFuZXMu CistKTsKKy0KKy1pbXBsX2khKFtpMTI4OyAxXTogaTEyOHgxLCBtMTI4eDEgfCBpMTI4LCB1OCB8 IHRlc3RfdjEyOCB8IHgwIHwKKy0gICAgICAgIEZyb206IC8qaTh4MSwgdTh4MSwgaTE2eDEsIHUx NngxLCBpMzJ4MSwgdTMyeDEsIGk2NHgxLCB1NjR4MSAqLyB8IC8vIEZJWE1FOiB1bmFyeSBzbWFs bCB2ZWN0b3IgdHlwZXMKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMSBgaTEy OGAgbGFuZS4KKy0pOworLWltcGxfdSEoW3UxMjg7IDFdOiB1MTI4eDEsIG0xMjh4MSB8IHUxMjgs IHU4IHwgdGVzdF92MTI4IHwgeDAgfAorLSAgICAgICAgRnJvbTogLyp1OHgxLCB1MTZ4MSwgdTMy eDEsIHU2NHgxICovIHwgLy8gRklYTUU6IHVuYXJ5IHNtYWxsIHZlY3RvciB0eXBlcworLSAgICAg ICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxIGB1MTI4YCBsYW5lLgorLSk7CistaW1wbF9t IShbbTEyODsgMV06IG0xMjh4MSB8IGkxMjgsIHU4IHwgdGVzdF92MTI4IHwgeDAgfAorLSAgICAg ICAgRnJvbTogLyptOHgxLCBtMTZ4MSwgbTMyeDEsIG02NHgxICovIHwgLy8gRklYTUU6IHVuYXJ5 IHNtYWxsIHZlY3RvciB0eXBlcworLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3IgbWFzayB3 aXRoIDEgYG0xMjhgIGxhbmUuCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy92MTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92 MTYucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvdjE2LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNiArMCwwIEBACist Ly8hIDE2LWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBs X2khKFtpODsgMl06IGk4eDIsIG04eDIgfCBpOCwgdTggfCB0ZXN0X3YxNiB8IHgwLCB4MSB8Cist ICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSAxNi1iaXQgdmVjdG9yIHdpdGggMiBgaThg IGxhbmVzLgorLSk7CistaW1wbF91IShbdTg7IDJdOiB1OHgyLCBtOHgyIHwgdTgsIHU4IHwgdGVz dF92MTYgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgMTYtYml0 IHZlY3RvciB3aXRoIDIgYHU4YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW204OyAyXTogbTh4MiB8 IGk4LCB1OCB8IHRlc3RfdjE2IHwgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IG0xNngyLCBtMzJ4 MiwgbTY0eDIsIG0xMjh4MiB8CistICAgICAgICAvLy8gQSAxNi1iaXQgdmVjdG9yIG1hc2sgd2l0 aCAyIGBtOGAgbGFuZXMuCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy92MjU2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjI1 Ni5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy92MjU2LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw4NiArMCwwIEBACist Ly8hIDI1Ni1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNl IGNyYXRlOjoqOworLQorLWltcGxfaSEoW2k4OyAzMl06IGk4eDMyLCBtOHgzMiB8IGk4LCB1MzIg fCB0ZXN0X3YyNTYgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4 OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAgICAgICB4MTYsIHgxNywg eDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgy OSwgeDMwLCB4MzEgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2 ZWN0b3Igd2l0aCAzMiBgaThgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTg7IDMyXTogdTh4MzIs IG04eDMyIHwgdTgsIHUzMiB8IHRlc3RfdjI1NiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4Mywg eDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKKy0g ICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwg eDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSB8CistICAgICAgICBGcm9tOiB8CistICAgICAg ICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDMyIGB1OGAgbGFuZXMuCistKTsKKy1pbXBsX20h KFttODsgMzJdOiBtOHgzMiB8IGk4LCB1MzIgfCB0ZXN0X3YyNTYgfAorLSAgICAgICAgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0 LCB4MTUsCistICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywg eDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAorLSAgICAgICAgRnJvbTog IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIG1hc2sgd2l0aCAzMiBgbThgIGxhbmVz LgorLSk7CistCistaW1wbF9pIShbaTE2OyAxNl06IGkxNngxNiwgbTE2eDE2IHwgaTE2LCB1MTYg fCB0ZXN0X3YyNTYgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4 OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogaTh4 MTYsIHU4eDE2IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMTYgYGkxNmAg bGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MTY7IDE2XTogdTE2eDE2LCBtMTZ4MTYgfCB1MTYsIHUx NiB8IHRlc3RfdjI1NiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcs IHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiB1 OHgxNiB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDE2IGB1MTZgIGxhbmVz LgorLSk7CistaW1wbF9tIShbbTE2OyAxNl06IG0xNngxNiB8IGkxNiwgdTE2IHwgdGVzdF92MjU2 IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAs IHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IG04eDE2IHwKKy0gICAg ICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIG1hc2sgd2l0aCAxNiBgbTE2YCBsYW5lcy4KKy0pOwor LQorLWltcGxfaSEoW2kzMjsgOF06IGkzMng4LCBtMzJ4OCB8IGkzMiwgdTggfCB0ZXN0X3YyNTYg fCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgIHwKKy0gICAgICAgIEZyb206IGk4eDgs IHU4eDgsIGkxNng4LCB1MTZ4OCB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRo IDggYGkzMmAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MzI7IDhdOiB1MzJ4OCwgbTMyeDggfCB1 MzIsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0g ICAgICAgIEZyb206IHU4eDgsIHUxNng4IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9y IHdpdGggOCBgdTMyYCBsYW5lcy4KKy0pOworLWltcGxfZiEoW2YzMjsgOF06IGYzMng4LCBtMzJ4 OCB8IGYzMiB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Cist ICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4OCwgdTE2eDggfAorLSAgICAgICAgLy8vIEEg MjU2LWJpdCB2ZWN0b3Igd2l0aCA4IGBmMzJgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTMyOyA4 XTogbTMyeDggfCBpMzIsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwg eDYsIHg3IHwKKy0gICAgICAgIEZyb206IG04eDgsIG0xNng4IHwKKy0gICAgICAgIC8vLyBBIDI1 Ni1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtMzJgIGxhbmVzLgorLSk7CistCistaW1wbF9pIShb aTY0OyA0XTogaTY0eDQsIG02NHg0IHwgaTY0LCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIs IHgzIHwKKy0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1MTZ4NCwgaTMyeDQsIHUz Mng0IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggNCBgaTY0YCBsYW5lcy4K Ky0pOworLWltcGxfdSEoW3U2NDsgNF06IHU2NHg0LCBtNjR4NCB8IHU2NCwgdTggfCB0ZXN0X3Yy NTYgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiB1OHg0LCB1MTZ4NCwgdTMyeDQg fAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCA0IGB1NjRgIGxhbmVzLgorLSk7 CistaW1wbF9mIShbZjY0OyA0XTogZjY0eDQsIG02NHg0IHwgZjY0IHwgdGVzdF92MjU2IHwgeDAs IHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0LCBp MzJ4NCwgdTMyeDQsIGYzMng0IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGgg NCBgZjY0YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW202NDsgNF06IG02NHg0IHwgaTY0LCB1OCB8 IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IG04eDQsIG0xNng0 LCBtMzJ4NCB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggNCBgbTY0 YCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2kxMjg7IDJdOiBpMTI4eDIsIG0xMjh4MiB8IGkx MjgsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IGk4eDIsIHU4eDIs IGkxNngyLCB1MTZ4MiwgaTMyeDIsIHUzMngyLCBpNjR4MiwgdTY0eDIgfAorLSAgICAgICAgLy8v IEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAyIGBpMTI4YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3Ux Mjg7IDJdOiB1MTI4eDIsIG0xMjh4MiB8IHUxMjgsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxIHwK Ky0gICAgICAgIEZyb206IHU4eDIsIHUxNngyLCB1MzJ4MiwgdTY0eDIgfAorLSAgICAgICAgLy8v IEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAyIGB1MTI4YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20x Mjg7IDJdOiBtMTI4eDIgfCBpMTI4LCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSB8CistICAgICAg ICBGcm9tOiBtOHgyLCBtMTZ4MiwgbTMyeDIsIG02NHgyIHwKKy0gICAgICAgIC8vLyBBIDI1Ni1i aXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtMTI4YCBsYW5lcy4KKy0pOworZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YzMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL3YzMi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MzIucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDI5ICswLDAgQEAKKy0vLyEgMzItYml0IHdpZGUgdmVjdG9yIHR5cGVzCistCistdXNlIGNy YXRlOjoqOworLQorLWltcGxfaSEoW2k4OyA0XTogaTh4NCwgbTh4NCB8IGk4LCB1OCB8IHRlc3Rf djMyIHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEg MzItYml0IHZlY3RvciB3aXRoIDQgYGk4YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3U4OyA0XTog dTh4NCwgbTh4NCB8IHU4LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAg ICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgMzItYml0IHZlY3RvciB3aXRoIDQgYHU4YCBsYW5l cy4KKy0pOworLWltcGxfbSEoW204OyA0XTogbTh4NCB8IGk4LCB1OCB8IHRlc3RfdjMyIHwgeDAs IHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogbTE2eDQsIG0zMng0LCBtNjR4NCB8CistICAg ICAgICAvLy8gQSAzMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtOGAgbGFuZXMuCistKTsKKy0K Ky1pbXBsX2khKFtpMTY7IDJdOiBpMTZ4MiwgbTE2eDIgfCBpMTYsIHU4IHwgdGVzdF92MzIgfCB4 MCwgeDEgfAorLSAgICAgICAgRnJvbTogaTh4MiwgdTh4MiB8CistICAgICAgICAvLy8gQSAzMi1i aXQgdmVjdG9yIHdpdGggMiBgaTE2YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3UxNjsgMl06IHUx NngyLCBtMTZ4MiB8IHUxNiwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSB8CistICAgICAgICBGcm9t OiB1OHgyIHwKKy0gICAgICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0aCAyIGB1MTZgIGxhbmVz LgorLSk7CistaW1wbF9tIShbbTE2OyAyXTogbTE2eDIgfCBpMTYsIHU4IHwgdGVzdF92MzIgfCB4 MCwgeDEgfAorLSAgICAgICAgRnJvbTogbTh4MiwgbTMyeDIsIG02NHgyLCBtMTI4eDIgfAorLSAg ICAgICAgLy8vIEEgMzItYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbTE2YCBsYW5lcy4KKy0pOwor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y1MTIucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y1MTIucnMK KysrKyAvZGV2L251bGwKK0BAIC0xLDk5ICswLDAgQEAKKy0vLyEgNTEyLWJpdCB3aWRlIHZlY3Rv ciB0eXBlcworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9p IShbaTg7IDY0XTogaTh4NjQsIG04eDY0IHwgaTgsIHU2NCB8IHRlc3RfdjUxMiB8CistICAgICAg ICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwg eDEzLCB4MTQsIHgxNSwKKy0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgy MiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSwKKy0gICAgICAg IHgzMiwgeDMzLCB4MzQsIHgzNSwgeDM2LCB4MzcsIHgzOCwgeDM5LCB4NDAsIHg0MSwgeDQyLCB4 NDMsIHg0NCwgeDQ1LCB4NDYsIHg0NywKKy0gICAgICAgIHg0OCwgeDQ5LCB4NTAsIHg1MSwgeDUy LCB4NTMsIHg1NCwgeDU1LCB4NTYsIHg1NywgeDU4LCB4NTksIHg2MCwgeDYxLCB4NjIsIHg2MyB8 CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDY0 IGBpOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1ODsgNjRdOiB1OHg2NCwgbTh4NjQgfCB1OCwg dTY0IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4 NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAorLSAgICAgICAgeDE2LCB4 MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4 LCB4MjksIHgzMCwgeDMxLAorLSAgICAgICAgeDMyLCB4MzMsIHgzNCwgeDM1LCB4MzYsIHgzNywg eDM4LCB4MzksIHg0MCwgeDQxLCB4NDIsIHg0MywgeDQ0LCB4NDUsIHg0NiwgeDQ3LAorLSAgICAg ICAgeDQ4LCB4NDksIHg1MCwgeDUxLCB4NTIsIHg1MywgeDU0LCB4NTUsIHg1NiwgeDU3LCB4NTgs IHg1OSwgeDYwLCB4NjEsIHg2MiwgeDYzIHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8v LyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggNjQgYHU4YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW204 OyA2NF06IG04eDY0IHwgaTgsIHU2NCB8IHRlc3RfdjUxMiB8CistICAgICAgICB4MCwgeDEsIHgy LCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgx NSwKKy0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQs IHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSwKKy0gICAgICAgIHgzMiwgeDMzLCB4 MzQsIHgzNSwgeDM2LCB4MzcsIHgzOCwgeDM5LCB4NDAsIHg0MSwgeDQyLCB4NDMsIHg0NCwgeDQ1 LCB4NDYsIHg0NywKKy0gICAgICAgIHg0OCwgeDQ5LCB4NTAsIHg1MSwgeDUyLCB4NTMsIHg1NCwg eDU1LCB4NTYsIHg1NywgeDU4LCB4NTksIHg2MCwgeDYxLCB4NjIsIHg2MyB8CistICAgICAgICBG cm9tOiAgfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDY0IGBtOGAg bGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpMTY7IDMyXTogaTE2eDMyLCBtMTZ4MzIgfCBpMTYs IHUzMiB8IHRlc3RfdjUxMiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4Niwg eDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKKy0gICAgICAgIHgxNiwg eDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgy OCwgeDI5LCB4MzAsIHgzMSB8CistICAgICAgICBGcm9tOiBpOHgzMiwgdTh4MzIgfAorLSAgICAg ICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCAzMiBgaTE2YCBsYW5lcy4KKy0pOworLWltcGxf dSEoW3UxNjsgMzJdOiB1MTZ4MzIsIG0xNngzMiB8IHUxNiwgdTMyIHwgdGVzdF92NTEyIHwKKy0g ICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwg eDEyLCB4MTMsIHgxNCwgeDE1LAorLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgy MSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKKy0g ICAgICAgIEZyb206IHU4eDMyIHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGgg MzIgYHUxNmAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttMTY7IDMyXTogbTE2eDMyIHwgaTE2LCB1 MzIgfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3 LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAgICAgICB4MTYsIHgx NywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4Mjgs IHgyOSwgeDMwLCB4MzEgfAorLSAgICAgICAgRnJvbTogbTh4MzIgfAorLSAgICAgICAgLy8vIEEg NTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDMyIGBtMTZgIGxhbmVzLgorLSk7CistCistaW1wbF9p IShbaTMyOyAxNl06IGkzMngxNiwgbTMyeDE2IHwgaTMyLCB1MTYgfCB0ZXN0X3Y1MTIgfAorLSAg ICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4 MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogaTh4MTYsIHU4eDE2LCBpMTZ4MTYs IHUxNngxNiB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDE2IGBpMzJgIGxh bmVzLgorLSk7CistaW1wbF91IShbdTMyOyAxNl06IHUzMngxNiwgbTMyeDE2IHwgdTMyLCB1MTYg fCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4 OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogdTh4 MTYsIHUxNngxNiB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDE2IGB1MzJg IGxhbmVzLgorLSk7CistaW1wbF9mIShbZjMyOyAxNl06IGYzMngxNiwgbTMyeDE2IHwgZjMyIHwg dGVzdF92NTEyIHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgs IHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IGk4eDE2 LCB1OHgxNiwgaTE2eDE2LCB1MTZ4MTYgfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Ig d2l0aCAxNiBgZjMyYCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20zMjsgMTZdOiBtMzJ4MTYgfCBp MzIsIHUxNiB8IHRlc3RfdjUxMiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4 NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8CistICAgICAgICBG cm9tOiBtOHgxNiwgbTE2eDE2IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sg d2l0aCAxNiBgbTMyYCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2k2NDsgOF06IGk2NHg4LCBt NjR4OCB8IGk2NCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4Niwg eDcgfAorLSAgICAgICAgRnJvbTogaTh4OCwgdTh4OCwgaTE2eDgsIHUxNng4LCBpMzJ4OCwgdTMy eDggfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA4IGBpNjRgIGxhbmVzLgor LSk7CistaW1wbF91IShbdTY0OyA4XTogdTY0eDgsIG02NHg4IHwgdTY0LCB1OCB8IHRlc3RfdjUx MiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiB1OHg4 LCB1MTZ4OCwgdTMyeDggfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA4IGB1 NjRgIGxhbmVzLgorLSk7CistaW1wbF9mIShbZjY0OyA4XTogZjY0eDgsIG02NHg4IHwgZjY0IHwg dGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZy b206IGk4eDgsIHU4eDgsIGkxNng4LCB1MTZ4OCwgaTMyeDgsIHUzMng4LCBmMzJ4OCB8CistICAg ICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDggYGY2NGAgbGFuZXMuCistKTsKKy1pbXBs X20hKFttNjQ7IDhdOiBtNjR4OCB8IGk2NCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4 MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogbTh4OCwgbTE2eDgsIG0zMng4IHwK Ky0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtNjRgIGxhbmVzLgor LSk7CistCistaW1wbF9pIShbaTEyODsgNF06IGkxMjh4NCwgbTEyOHg0IHwgaTEyOCwgdTggfCB0 ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiBpOHg0LCB1OHg0LCBp MTZ4NCwgdTE2eDQsIGkzMng0LCB1MzJ4NCwgaTY0eDQsIHU2NHg0IHwKKy0gICAgICAgIC8vLyBB IDUxMi1iaXQgdmVjdG9yIHdpdGggNCBgaTEyOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MTI4 OyA0XTogdTEyOHg0LCBtMTI4eDQgfCB1MTI4LCB1OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIs IHgzIHwKKy0gICAgICAgIEZyb206IHU4eDQsIHUxNng0LCB1MzJ4NCwgdTY0eDQgfAorLSAgICAg ICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA0IGB1MTI4YCBsYW5lcy4KKy0pOworLWltcGxf bSEoW20xMjg7IDRdOiBtMTI4eDQgfCBpMTI4LCB1OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIs IHgzIHwKKy0gICAgICAgIEZyb206IG04eDQsIG0xNng0LCBtMzJ4NCwgbTY0eDQgfAorLSAgICAg ICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG0xMjhgIGxhbmVzLgorLSk7Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjY0LnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjY0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y2NC5ycworKysr IC9kZXYvbnVsbAorQEAgLTEsNjYgKzAsMCBAQAorLS8vISA2NC1iaXQgd2lkZSB2ZWN0b3IgdHlw ZXMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNlIHN1cGVyOjoqOworLQorLWltcGxfaSEoW2k4 OyA4XTogaTh4OCwgbTh4OCB8IGk4LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMsIHg0 LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2 ZWN0b3Igd2l0aCA4IGBpOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1ODsgOF06IHU4eDgsIG04 eDggfCB1OCwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8 CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggOCBg dThgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTg7IDhdOiBtOHg4IHwgaTgsIHU4IHwgdGVzdF92 NjQgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogbTE2 eDgsIG0zMng4IHwKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDggYG04 YCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2kxNjsgNF06IGkxNng0LCBtMTZ4NCB8IGkxNiwg dTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IGk4eDQsIHU4 eDQgfAorLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDQgYGkxNmAgbGFuZXMuCist KTsKKy1pbXBsX3UhKFt1MTY7IDRdOiB1MTZ4NCwgbTE2eDQgfCB1MTYsIHU4IHwgdGVzdF92NjQg fCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiB1OHg0IHwKKy0gICAgICAgIC8vLyBB IDY0LWJpdCB2ZWN0b3Igd2l0aCA0IGB1MTZgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTE2OyA0 XTogbTE2eDQgfCBpMTYsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAg ICBGcm9tOiBtOHg0LCBtMzJ4NCwgbTY0eDQgfAorLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3Rv ciBtYXNrIHdpdGggNCBgbTE2YCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2kzMjsgMl06IGkz MngyLCBtMzJ4MiB8IGkzMiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSB8CistICAgICAgICBGcm9t OiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIgfAorLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3Rv ciB3aXRoIDIgYGkzMmAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MzI7IDJdOiB1MzJ4MiwgbTMy eDIgfCB1MzIsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogdTh4Miwg dTE2eDIgfAorLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDIgYHUzMmAgbGFuZXMu CistKTsKKy1pbXBsX20hKFttMzI7IDJdOiBtMzJ4MiB8IGkzMiwgdTggfCB0ZXN0X3Y2NCB8IHgw LCB4MSB8CistICAgICAgICBGcm9tOiBtOHgyLCBtMTZ4MiwgbTY0eDIsIG0xMjh4MiB8CistICAg ICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtMzJgIGxhbmVzLgorLSk7Cist aW1wbF9mIShbZjMyOyAyXTogZjMyeDIsIG0zMngyIHwgZjMyIHwgdGVzdF92NjQgfCB4MCwgeDEg fAorLSAgICAgICAgRnJvbTogaTh4MiwgdTh4MiwgaTE2eDIsIHUxNngyIHwKKy0gICAgICAgIC8v LyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAyIGBmMzJgIGxhbmVzLgorLSk7CistCistLyoKKy1pbXBs X2khKFtpNjQ7IDFdOiBpNjR4MSwgbTY0eDEgfCBpNjQsIHU4IHwgdGVzdF92NjQgfCB4MCB8Cist ICAgICAgICBGcm9tOiAvKmk4eDEsIHU4eDEsIGkxNngxLCB1MTZ4MSwgaTMyeDEsIHUzMngxKi8g fCAgLy8gRklYTUU6IHByaW1pdGl2ZSB0byB2ZWN0b3IgY29udmVyc2lvbgorLSAgICAgICAgLy8v IEEgNjQtYml0IHZlY3RvciB3aXRoIDEgYGk2NGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1NjQ7 IDFdOiB1NjR4MSwgbTY0eDEgfCB1NjQsIHU4IHwgdGVzdF92NjQgfCB4MCB8CistICAgICAgICBG cm9tOiAvKnU4eDEsIHUxNngxLCB1MzJ4MSovIHwgLy8gRklYTUU6IHByaW1pdGl2ZSB0byB2ZWN0 b3IgY29udmVyc2lvbgorLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDEgYHU2NGAg bGFuZXMuCistKTsKKy1pbXBsX20hKFttNjQ7IDFdOiBtNjR4MSB8IGk2NCwgdTggfCB0ZXN0X3Y2 NCB8IHgwIHwKKy0gICAgICAgIEZyb206IC8qbTh4MSwgbTE2eDEsIG0zMngxLCAqLyBtMTI4eDEg fCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9yIHR5cGVzCistICAgICAgICAvLy8gQSA2NC1i aXQgdmVjdG9yIG1hc2sgd2l0aCAxIGBtNjRgIGxhbmVzLgorLSk7CistaW1wbF9mIShbZjY0OyAx XTogZjY0eDEsIG02NHgxIHwgZjY0IHwgdGVzdF92NjQgfCB4MCB8CistICAgICAgICBGcm9tOiAv Kmk4eDEsIHU4eDEsIGkxNngxLCB1MTZ4MSwgaTMyeDEsIHUzMngxLCBmMzJ4MSovIHwgLy8gRklY TUU6IHVuYXJ5IHNtYWxsIHZlY3RvciB0eXBlcworLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3Rv ciB3aXRoIDEgYGY2NGAgbGFuZXMuCistKTsKKy0qLworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZQdHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy92UHRyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZQdHIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDM0 ICswLDAgQEAKKy0vLyEgVmVjdG9ycyBvZiBwb2ludGVycworLSNbcnVzdGZtdDo6c2tpcF0KKy0K Ky11c2UgY3JhdGU6Oio7CistCistaW1wbF9jb25zdF9wISgKKy0gICAgWypjb25zdCBUOyAyXTog Y3B0cngyLCBtc2l6ZXgyLCB1c2l6ZXgyLCBpc2l6ZXgyIHwgdGVzdF92MTI4IHwgeDAsIHgxIHwg RnJvbTogfAorLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCAyIGAqY29uc3QgVGAgbGFuZXMKKy0pOwor LQorLWltcGxfbXV0X3AhKAorLSAgICBbKm11dCBUOyAyXTogbXB0cngyLCBtc2l6ZXgyLCB1c2l6 ZXgyLCBpc2l6ZXgyIHwgdGVzdF92MTI4IHwgeDAsIHgxIHwgRnJvbTogfAorLSAgICAvLy8gQSB2 ZWN0b3Igd2l0aCAyIGAqbXV0IFRgIGxhbmVzCistKTsKKy0KKy1pbXBsX2NvbnN0X3AhKAorLSAg ICBbKmNvbnN0IFQ7IDRdOiBjcHRyeDQsIG1zaXpleDQsIHVzaXpleDQsIGlzaXpleDQgfCB0ZXN0 X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8IEZyb206IHwKKy0gICAgLy8vIEEgdmVjdG9yIHdpdGgg NCBgKmNvbnN0IFRgIGxhbmVzCistKTsKKy0KKy1pbXBsX211dF9wISgKKy0gICAgWyptdXQgVDsg NF06IG1wdHJ4NCwgbXNpemV4NCwgdXNpemV4NCwgaXNpemV4NCB8IHRlc3RfdjI1NiB8IHgwLCB4 MSwgeDIsIHgzIHwgRnJvbTogfAorLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0IGAqbXV0IFRgIGxh bmVzCistKTsKKy0KKy1pbXBsX2NvbnN0X3AhKAorLSAgICBbKmNvbnN0IFQ7IDhdOiBjcHRyeDgs IG1zaXpleDgsIHVzaXpleDgsIGlzaXpleDggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4Mywg eDQsIHg1LCB4NiwgeDcgfCBGcm9tOiB8CistICAgIC8vLyBBIHZlY3RvciB3aXRoIDggYCpjb25z dCBUYCBsYW5lcworLSk7CistCistaW1wbF9tdXRfcCEoCistICAgIFsqbXV0IFQ7IDhdOiBtcHRy eDgsIG1zaXpleDgsIHVzaXpleDgsIGlzaXpleDggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4 MywgeDQsIHg1LCB4NiwgeDcgfCBGcm9tOiB8CistICAgIC8vLyBBIHZlY3RvciB3aXRoIDggYCpt dXQgVGAgbGFuZXMKKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL3ZTaXplLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlNpemUu cnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvdlNpemUucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDUzICswLDAgQEAKKy0v LyEgVmVjdG9ycyB3aXRoIHBvaW50ZXItc2l6ZWQgZWxlbWVudHMKKy0KKy11c2UgY3JhdGU6OmNv ZGVnZW46OnBvaW50ZXJfc2l6ZWRfaW50Ojp7aXNpemVfLCB1c2l6ZV99OworLXVzZSBjcmF0ZTo6 KjsKKy0KKy1pbXBsX2khKFtpc2l6ZTsgMl06IGlzaXpleDIsIG1zaXpleDIgfCBpc2l6ZV8sIHU4 IHwgdGVzdF92MTI4IHwKKy0gICAgICAgIHgwLCB4MXwKKy0gICAgICAgIEZyb206IHwKKy0gICAg ICAgIC8vLyBBIHZlY3RvciB3aXRoIDIgYGlzaXplYCBsYW5lcy4KKy0pOworLQorLWltcGxfdSEo W3VzaXplOyAyXTogdXNpemV4MiwgbXNpemV4MiB8IHVzaXplXywgdTggfCB0ZXN0X3YxMjggfAor LSAgICAgICAgeDAsIHgxfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgdmVjdG9y IHdpdGggMiBgdXNpemVgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbXNpemU7IDJdOiBtc2l6ZXgy IHwgaXNpemVfLCB1OCB8IHRlc3RfdjEyOCB8CistICAgICAgICB4MCwgeDEgfAorLSAgICAgICAg RnJvbTogfAorLSAgICAgICAgLy8vIEEgdmVjdG9yIG1hc2sgd2l0aCAyIGBtc2l6ZWAgbGFuZXMu CistKTsKKy0KKy1pbXBsX2khKFtpc2l6ZTsgNF06IGlzaXpleDQsIG1zaXpleDQgfCBpc2l6ZV8s IHU4IHwgdGVzdF92MjU2IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZy b206IHwKKy0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYGlzaXplYCBsYW5lcy4KKy0pOwor LWltcGxfdSEoW3VzaXplOyA0XTogdXNpemV4NCwgbXNpemV4NCB8IHVzaXplXywgdTggfCB0ZXN0 X3YyNTYgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDN8CistICAgICAgICBGcm9tOiB8CistICAg ICAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0IGB1c2l6ZWAgbGFuZXMuCistKTsKKy1pbXBsX20hKFtt c2l6ZTsgNF06IG1zaXpleDQgfCBpc2l6ZV8sIHU4IHwgdGVzdF92MjU2IHwKKy0gICAgICAgIHgw LCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIHZlY3RvciBt YXNrIHdpdGggNCBgbXNpemVgIGxhbmVzLgorLSk7CistCistaW1wbF9pIShbaXNpemU7IDhdOiBp c2l6ZXg4LCBtc2l6ZXg4IHwgaXNpemVfLCB1OCB8IHRlc3RfdjUxMiB8CistICAgICAgICB4MCwg eDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAg Ly8vIEEgdmVjdG9yIHdpdGggOCBgaXNpemVgIGxhbmVzLgorLSk7CistaW1wbF91IShbdXNpemU7 IDhdOiB1c2l6ZXg4LCBtc2l6ZXg4IHwgdXNpemVfLCB1OCB8IHRlc3RfdjUxMiB8CistICAgICAg ICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogfAorLSAg ICAgICAgLy8vIEEgdmVjdG9yIHdpdGggOCBgdXNpemVgIGxhbmVzLgorLSk7CistaW1wbF9tIShb bXNpemU7IDhdOiBtc2l6ZXg4IHwgaXNpemVfLCB1OCB8IHRlc3RfdjUxMiB8CistICAgICAgICB4 MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAg ICAgLy8vIEEgdmVjdG9yIG1hc2sgd2l0aCA4IGBtc2l6ZWAgbGFuZXMuCistKTsKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Rlc3RzL2VuZGlhbm5lc3MucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Rlc3RzL2VuZGlhbm5lc3MucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC90ZXN0 cy9lbmRpYW5uZXNzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyNjggKzAsMCBAQAorLSNbY2Zn KHRhcmdldF9hcmNoID0gIndhc20zMiIpXQorLXVzZSB3YXNtX2JpbmRnZW5fdGVzdDo6KjsKKy0K Ky11c2UgcGFja2VkX3NpbWQ6Oio7CistdXNlIHN0ZDo6e21lbSwgc2xpY2V9OworLQorLSNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0jW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy1mbiBlbmRpYW5faW5k ZXhpbmcoKSB7CistICAgIGxldCB2ID0gaTMyeDQ6Om5ldygwLCAxLCAyLCAzKTsKKy0gICAgYXNz ZXJ0X2VxISh2LmV4dHJhY3QoMCksIDApOworLSAgICBhc3NlcnRfZXEhKHYuZXh0cmFjdCgxKSwg MSk7CistICAgIGFzc2VydF9lcSEodi5leHRyYWN0KDIpLCAyKTsKKy0gICAgYXNzZXJ0X2VxISh2 LmV4dHJhY3QoMyksIDMpOworLX0KKy0KKy0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistZm4gZW5kaWFuX2JpdGNhc3RzKCkgeworLSAgICAjW3J1c3RmbXQ6 OnNraXBdCistICAgIGxldCB4ID0gaTh4MTY6Om5ldygKKy0gICAgICAgIDAsIDEsIDIsIDMsIDQs IDUsIDYsIDcsCistICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICAp OworLSAgICBsZXQgdDogaTE2eDggPSB1bnNhZmUgeyBtZW06OnRyYW5zbXV0ZSh4KSB9OworLSAg ICBsZXQgZTogaTE2eDggPSBpZiBjZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikgeworLSAg ICAgICAgaTE2eDg6Om5ldygyNTYsIDc3MCwgMTI4NCwgMTc5OCwgMjMxMiwgMjgyNiwgMzM0MCwg Mzg1NCkKKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGkxNng4OjpuZXcoMSwgNTE1LCAxMDI5LCAx NTQzLCAyMDU3LCAyNTcxLCAzMDg1LCAzNTk5KQorLSAgICB9OworLSAgICBhc3NlcnRfZXEhKHQs IGUpOworLX0KKy0KKy0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCistI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistZm4gZW5kaWFuX2Nhc3RzKCkgeworLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAgIGxl dCB4ID0gaTh4MTY6Om5ldygKKy0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCistICAg ICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICApOworLSAgICBsZXQgdDog aTE2eDE2ID0geC5pbnRvKCk7IC8vIHNpbWRfY2FzdAorLSAgICAjW3J1c3RmbXQ6OnNraXBdCist ICAgIGxldCBlID0gaTE2eDE2OjpuZXcoCistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3 LAorLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAg YXNzZXJ0X2VxISh0LCBlKTsKKy19CistCistI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXQorLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLWZuIGVuZGlhbl9sb2FkX2FuZF9zdG9yZXMoKSB7CistICAgICNb cnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAorLSAgICAgICAgMCwgMSwg MiwgMywgNCwgNSwgNiwgNywKKy0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUs CistICAgICk7CistICAgIGxldCBtdXQgeTogW2kxNjsgOF0gPSBbMDsgOF07CistICAgIHgud3Jp dGVfdG9fc2xpY2VfdW5hbGlnbmVkKHVuc2FmZSB7IHNsaWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQo Jm11dCB5IGFzICptdXQgXyBhcyAqbXV0IGk4LCAxNikgfSk7CistCistICAgIGxldCBlOiBbaTE2 OyA4XSA9IGlmIGNmZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7CistICAgICAgICBbMjU2 LCA3NzAsIDEyODQsIDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAsIDM4NTRdCistICAgIH0gZWxzZSB7 CistICAgICAgICBbMSwgNTE1LCAxMDI5LCAxNTQzLCAyMDU3LCAyNTcxLCAzMDg1LCAzNTk5XQor LSAgICB9OworLSAgICBhc3NlcnRfZXEhKHksIGUpOworLQorLSAgICBsZXQgeiA9IGk4eDE2Ojpm cm9tX3NsaWNlX3VuYWxpZ25lZCh1bnNhZmUgeyBzbGljZTo6ZnJvbV9yYXdfcGFydHMoJnkgYXMg KmNvbnN0IF8gYXMgKmNvbnN0IGk4LCAxNikgfSk7CistICAgIGFzc2VydF9lcSEoeiwgeCk7Cist fQorLQorLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0j W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy1m biBlbmRpYW5fYXJyYXlfdW5pb24oKSB7CistICAgIHVuaW9uIEEgeworLSAgICAgICAgZGF0YTog W2YzMjsgNF0sCistICAgICAgICB2ZWM6IGYzMng0LAorLSAgICB9CistICAgIGxldCB4OiBbZjMy OyA0XSA9IHVuc2FmZSB7IEEgeyB2ZWM6IGYzMng0OjpuZXcoMC4sIDEuLCAyLiwgMy4pIH0uZGF0 YSB9OworLSAgICAvLyBBcyBhbGwgb2YgdGhlc2UgYXJlIGludGVnZXIgdmFsdWVzIHdpdGhpbiB0 aGUgbWFudGlzc2FeMSByYW5nZSwgaXQKKy0gICAgLy8gd291bGQgYmUgdmVyeSB1bnVzdWFsIGZv ciB0aGVtIHRvIGFjdHVhbGx5IGZhaWwgdG8gY29tcGFyZS4KKy0gICAgI1thbGxvdyhjbGlwcHk6 OmZsb2F0X2NtcCldCistICAgIHsKKy0gICAgICAgIGFzc2VydF9lcSEoeFswXSwgMF9mMzIpOwor LSAgICAgICAgYXNzZXJ0X2VxISh4WzFdLCAxX2YzMik7CistICAgICAgICBhc3NlcnRfZXEhKHhb Ml0sIDJfZjMyKTsKKy0gICAgICAgIGFzc2VydF9lcSEoeFszXSwgM19mMzIpOworLSAgICB9Cist ICAgIGxldCB5OiBmMzJ4NCA9IHVuc2FmZSB7IEEgeyBkYXRhOiBbMy4sIDIuLCAxLiwgMC5dIH0u dmVjIH07CistICAgIGFzc2VydF9lcSEoeSwgZjMyeDQ6Om5ldygzLiwgMi4sIDEuLCAwLikpOwor LQorLSAgICB1bmlvbiBCIHsKKy0gICAgICAgIGRhdGE6IFtpODsgMTZdLAorLSAgICAgICAgdmVj OiBpOHgxNiwKKy0gICAgfQorLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAgIGxldCB4ID0gaTh4 MTY6Om5ldygKKy0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCistICAgICAgICA4LCA5 LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICApOworLSAgICBsZXQgeDogW2k4OyAxNl0g PSB1bnNhZmUgeyBCIHsgdmVjOiB4IH0uZGF0YSB9OworLQorLSAgICBmb3IgKGksIHYpIGluIHgu aXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAgIGFzc2VydF9lcSEoaSBhcyBpOCwgKnYpOwor LSAgICB9CistCistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IHkgPSBbCistICAgICAg ICAxNSwgMTQsIDEzLCAxMiwgMTEsIDE5LCA5LCA4LAorLSAgICAgICAgNywgNiwgNSwgNCwgMywg MiwgMSwgMAorLSAgICBdOworLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAgIGxldCBlID0gaTh4 MTY6Om5ldygKKy0gICAgICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTksIDksIDgsCistICAgICAg ICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCistICAgICk7CistICAgIGxldCB6ID0gdW5zYWZlIHsg QiB7IGRhdGE6IHkgfS52ZWMgfTsKKy0gICAgYXNzZXJ0X2VxISh6LCBlKTsKKy0KKy0gICAgdW5p b24gQyB7CistICAgICAgICBkYXRhOiBbaTE2OyA4XSwKKy0gICAgICAgIHZlYzogaTh4MTYsCist ICAgIH0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCist ICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwgMTAsIDExLCAx MiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHg6IFtpMTY7IDhdID0gdW5zYWZlIHsg QyB7IHZlYzogeCB9LmRhdGEgfTsKKy0KKy0gICAgbGV0IGU6IFtpMTY7IDhdID0gaWYgY2ZnISh0 YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKKy0gICAgICAgIFsyNTYsIDc3MCwgMTI4NCwgMTc5 OCwgMjMxMiwgMjgyNiwgMzM0MCwgMzg1NF0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIFsxLCA1 MTUsIDEwMjksIDE1NDMsIDIwNTcsIDI1NzEsIDMwODUsIDM1OTldCistICAgIH07CistICAgIGFz c2VydF9lcSEoeCwgZSk7CistfQorLQorLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KKy0jW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy1mbiBlbmRpYW5fdHVwbGVfYWNjZXNzKCkgeworLSAgICB0eXBlIEYz Mng0VCA9IChmMzIsIGYzMiwgZjMyLCBmMzIpOworLSAgICB1bmlvbiBBIHsKKy0gICAgICAgIGRh dGE6IEYzMng0VCwKKy0gICAgICAgIHZlYzogZjMyeDQsCistICAgIH0KKy0gICAgbGV0IHg6IEYz Mng0VCA9IHVuc2FmZSB7IEEgeyB2ZWM6IGYzMng0OjpuZXcoMC4sIDEuLCAyLiwgMy4pIH0uZGF0 YSB9OworLSAgICAvLyBBcyBhbGwgb2YgdGhlc2UgYXJlIGludGVnZXIgdmFsdWVzIHdpdGhpbiB0 aGUgbWFudGlzc2FeMSByYW5nZSwgaXQKKy0gICAgLy8gd291bGQgYmUgdmVyeSB1bnVzdWFsIGZv ciB0aGVtIHRvIGFjdHVhbGx5IGZhaWwgdG8gY29tcGFyZS4KKy0gICAgI1thbGxvdyhjbGlwcHk6 OmZsb2F0X2NtcCldCistICAgIHsKKy0gICAgICAgIGFzc2VydF9lcSEoeC4wLCAwX2YzMik7Cist ICAgICAgICBhc3NlcnRfZXEhKHguMSwgMV9mMzIpOworLSAgICAgICAgYXNzZXJ0X2VxISh4LjIs IDJfZjMyKTsKKy0gICAgICAgIGFzc2VydF9lcSEoeC4zLCAzX2YzMik7CistICAgIH0KKy0gICAg bGV0IHk6IGYzMng0ID0gdW5zYWZlIHsgQSB7IGRhdGE6ICgzLiwgMi4sIDEuLCAwLikgfS52ZWMg fTsKKy0gICAgYXNzZXJ0X2VxISh5LCBmMzJ4NDo6bmV3KDMuLCAyLiwgMS4sIDAuKSk7CistCist ICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgdHlwZSBJOHgxNlQgPSAoaTgsIGk4LCBpOCwgaTgs IGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgpOworLSAgICB1 bmlvbiBCIHsKKy0gICAgICAgIGRhdGE6IEk4eDE2VCwKKy0gICAgICAgIHZlYzogaTh4MTYsCist ICAgIH0KKy0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2OjpuZXco CistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwgMTAsIDEx LCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHg6IEk4eDE2VCA9IHVuc2FmZSB7 IEIgeyB2ZWM6IHggfS5kYXRhIH07CistCistICAgIGFzc2VydF9lcSEoeC4wLCAwKTsKKy0gICAg YXNzZXJ0X2VxISh4LjEsIDEpOworLSAgICBhc3NlcnRfZXEhKHguMiwgMik7CistICAgIGFzc2Vy dF9lcSEoeC4zLCAzKTsKKy0gICAgYXNzZXJ0X2VxISh4LjQsIDQpOworLSAgICBhc3NlcnRfZXEh KHguNSwgNSk7CistICAgIGFzc2VydF9lcSEoeC42LCA2KTsKKy0gICAgYXNzZXJ0X2VxISh4Ljcs IDcpOworLSAgICBhc3NlcnRfZXEhKHguOCwgOCk7CistICAgIGFzc2VydF9lcSEoeC45LCA5KTsK Ky0gICAgYXNzZXJ0X2VxISh4LjEwLCAxMCk7CistICAgIGFzc2VydF9lcSEoeC4xMSwgMTEpOwor LSAgICBhc3NlcnRfZXEhKHguMTIsIDEyKTsKKy0gICAgYXNzZXJ0X2VxISh4LjEzLCAxMyk7Cist ICAgIGFzc2VydF9lcSEoeC4xNCwgMTQpOworLSAgICBhc3NlcnRfZXEhKHguMTUsIDE1KTsKKy0K Ky0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeSA9ICgKKy0gICAgICAgIDE1LCAxNCwg MTMsIDEyLCAxMSwgMTAsIDksIDgsCistICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCist ICAgICk7CistICAgIGxldCB6OiBpOHgxNiA9IHVuc2FmZSB7IEIgeyBkYXRhOiB5IH0udmVjIH07 CistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IGUgPSBpOHgxNjo6bmV3KAorLSAgICAg ICAgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKKy0gICAgICAgIDcsIDYsIDUsIDQsIDMs IDIsIDEsIDAKKy0gICAgKTsKKy0gICAgYXNzZXJ0X2VxIShlLCB6KTsKKy0KKy0gICAgI1tydXN0 Zm10Ojpza2lwXQorLSAgICB0eXBlIEkxNng4VCA9IChpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwg aTE2LCBpMTYsIGkxNik7CistICAgIHVuaW9uIEMgeworLSAgICAgICAgZGF0YTogSTE2eDhULAor LSAgICAgICAgdmVjOiBpOHgxNiwKKy0gICAgfQorLQorLSAgICAjW3J1c3RmbXQ6OnNraXBdCist ICAgIGxldCB4ID0gaTh4MTY6Om5ldygKKy0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcs CistICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICApOworLSAgICBs ZXQgeDogSTE2eDhUID0gdW5zYWZlIHsgQyB7IHZlYzogeCB9LmRhdGEgfTsKKy0KKy0gICAgbGV0 IGU6IFtpMTY7IDhdID0gaWYgY2ZnISh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKKy0gICAg ICAgIFsyNTYsIDc3MCwgMTI4NCwgMTc5OCwgMjMxMiwgMjgyNiwgMzM0MCwgMzg1NF0KKy0gICAg fSBlbHNlIHsKKy0gICAgICAgIFsxLCA1MTUsIDEwMjksIDE1NDMsIDIwNTcsIDI1NzEsIDMwODUs IDM1OTldCistICAgIH07CistICAgIGFzc2VydF9lcSEoeC4wLCBlWzBdKTsKKy0gICAgYXNzZXJ0 X2VxISh4LjEsIGVbMV0pOworLSAgICBhc3NlcnRfZXEhKHguMiwgZVsyXSk7CistICAgIGFzc2Vy dF9lcSEoeC4zLCBlWzNdKTsKKy0gICAgYXNzZXJ0X2VxISh4LjQsIGVbNF0pOworLSAgICBhc3Nl cnRfZXEhKHguNSwgZVs1XSk7CistICAgIGFzc2VydF9lcSEoeC42LCBlWzZdKTsKKy0gICAgYXNz ZXJ0X2VxISh4LjcsIGVbN10pOworLQorLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAgICNbcmVw cihDKV0KKy0gICAgI1tkZXJpdmUoQ29weSAsQ2xvbmUpXQorLSAgICBwdWIgc3RydWN0IFR1cChw dWIgaTgsIHB1YiBpOCwgcHViIGkxNiwgcHViIGk4LCBwdWIgaTgsIHB1YiBpMTYsCistICAgICAg ICAgICAgICAgICAgIHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2LCBwdWIgaTgsIHB1YiBpOCwgcHVi IGkxNik7CistCistICAgIHVuaW9uIEQgeworLSAgICAgICAgZGF0YTogVHVwLAorLSAgICAgICAg dmVjOiBpOHgxNiwKKy0gICAgfQorLQorLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAgIGxldCB4 ID0gaTh4MTY6Om5ldygKKy0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCistICAgICAg ICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICApOworLSAgICBsZXQgeDogVHVw ID0gdW5zYWZlIHsgRCB7IHZlYzogeCB9LmRhdGEgfTsKKy0KKy0gICAgbGV0IGU6IFtpMTY7IDEy XSA9IGlmIGNmZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7CistICAgICAgICBbMCwgMSwg NzcwLCA0LCA1LCAxNzk4LCA4LCA5LCAyODI2LCAxMiwgMTMsIDM4NTRdCistICAgIH0gZWxzZSB7 CistICAgICAgICBbMCwgMSwgNTE1LCA0LCA1LCAxNTQzLCA4LCA5LCAyNTcxLCAxMiwgMTMsIDM1 OTldCistICAgIH07CistICAgIGFzc2VydF9lcSEoeC4wIGFzIGkxNiwgZVswXSk7CistICAgIGFz c2VydF9lcSEoeC4xIGFzIGkxNiwgZVsxXSk7CistICAgIGFzc2VydF9lcSEoeC4yIGFzIGkxNiwg ZVsyXSk7CistICAgIGFzc2VydF9lcSEoeC4zIGFzIGkxNiwgZVszXSk7CistICAgIGFzc2VydF9l cSEoeC40IGFzIGkxNiwgZVs0XSk7CistICAgIGFzc2VydF9lcSEoeC41IGFzIGkxNiwgZVs1XSk7 CistICAgIGFzc2VydF9lcSEoeC42IGFzIGkxNiwgZVs2XSk7CistICAgIGFzc2VydF9lcSEoeC43 IGFzIGkxNiwgZVs3XSk7CistICAgIGFzc2VydF9lcSEoeC44IGFzIGkxNiwgZVs4XSk7CistICAg IGFzc2VydF9lcSEoeC45IGFzIGkxNiwgZVs5XSk7CistICAgIGFzc2VydF9lcSEoeC4xMCBhcyBp MTYsIGVbMTBdKTsKKy0gICAgYXNzZXJ0X2VxISh4LjExIGFzIGkxNiwgZVsxMV0pOworLX0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svLmNhcmdvLWNoZWNrc3Vt Lmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svLmNhcmdvLWNoZWNrc3VtLmpz b24KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3ZlcnNpb25fY2hlY2svLmNhcmdvLWNoZWNrc3VtLmpzb24KK0BAIC0wLDAgKzEsMSBA QAorK3siZmlsZXMiOnsiQ2FyZ28udG9tbCI6ImYyNWQ4ODA0NDkxNGNiMzQ2NmRmNDNiYzM5YTE5 OWUxNTg5ZGRhMWFhZDMyMjZjOWM3ZTdhYzRkMmY4NzUxZDAiLCJMSUNFTlNFLUFQQUNIRSI6ImE2 MGVlYTgxNzUxNDUzMTY2OGQ3ZTAwNzY1NzMxNDQ5ZmUxNGQwNTlkMzI0OWUwYmM5M2IzNmRlNDVm NzU5ZjIiLCJMSUNFTlNFLU1JVCI6ImI3ZTY1MGYzZmNlNWM1MzI0OWQxY2RjNjA4YjU0ZGYxNTZh OTdlZGQ2MzZjZjlkMjM0OThkMGNmZTdhZWM2M2UiLCJSRUFETUUubWQiOiJhYzJhMGEzNjA4MTI0 MzZiZDU3OThmNWZlMmFmZmU3ZDZlZDllYjdmMTVkNmU0ZDczOTMxZTk1YjQzNzU2MGYyIiwic3Jj L2NoYW5uZWwucnMiOiJkMjQ0M2Q1MDNkNGNjNDY5YTE3MWE1MWEyNmVjYTNlYzBkMmE1OGI1Zjcz NzVhODQ1NDJjMzZmMTQyMTc2NmE4Iiwic3JjL2RhdGUucnMiOiIwOTU4MGEwYTIwMDhmYWQyY2Ni YzQzZmI0MmE4OGY0MjIyMWI5OGIwMTY5MjcwMjAyMmEyOTZkYzljODZiZjM3Iiwic3JjL2xpYi5y cyI6Ijc2MGYwZDI5NTY3ZWNhYTYxMjg3MDg4Y2YyM2NmNzRiM2MwZWZiYmNkMzA3N2NlYTVmYjdj ODgzNTllOTZjN2UiLCJzcmMvdmVyc2lvbi5ycyI6ImRiYTE4YTI1OTgzZWM2ZTM3Yjk1MmY0Y2Rj NTIxOWM5ZTVhYmJhMmMzYTc2Y2VmODc0NjVlMWZiYTZmOGFjODkifSwicGFja2FnZSI6IjQ5ODc0 YjUxNjdiNjVkNzE5M2I4YWJhMTU2N2Y1YzdkOTNkMDAxY2FmYzM0NjAwY2VlMDAzZWRhNzg3ZTQ4 M2YifQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC92ZXJzaW9uX2NoZWNrL0NhcmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNp b25fY2hlY2svQ2FyZ28udG9tbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwK KysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9DYXJnby50b21sCitAQCAtMCww ICsxLDI0IEBACisrIyBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQgQlkgQ0FS R08KKysjCisrIyBXaGVuIHVwbG9hZGluZyBjcmF0ZXMgdG8gdGhlIHJlZ2lzdHJ5IENhcmdvIHdp bGwgYXV0b21hdGljYWxseQorKyMgIm5vcm1hbGl6ZSIgQ2FyZ28udG9tbCBmaWxlcyBmb3IgbWF4 aW1hbCBjb21wYXRpYmlsaXR5CisrIyB3aXRoIGFsbCB2ZXJzaW9ucyBvZiBDYXJnbyBhbmQgYWxz byByZXdyaXRlIGBwYXRoYCBkZXBlbmRlbmNpZXMKKysjIHRvIHJlZ2lzdHJ5IChlLmcuLCBjcmF0 ZXMuaW8pIGRlcGVuZGVuY2llcy4KKysjCisrIyBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxl IGJlIGF3YXJlIHRoYXQgdGhlIG9yaWdpbmFsIENhcmdvLnRvbWwKKysjIHdpbGwgbGlrZWx5IGxv b2sgdmVyeSBkaWZmZXJlbnQgKGFuZCBtdWNoIG1vcmUgcmVhc29uYWJsZSkuCisrIyBTZWUgQ2Fy Z28udG9tbC5vcmlnIGZvciB0aGUgb3JpZ2luYWwgY29udGVudHMuCisrCisrW3BhY2thZ2VdCisr bmFtZSA9ICJ2ZXJzaW9uX2NoZWNrIgorK3ZlcnNpb24gPSAiMC45LjQiCisrYXV0aG9ycyA9IFsi U2VyZ2lvIEJlbml0ZXogPHNiQHNlcmdpby5iej4iXQorK2V4Y2x1ZGUgPSBbInN0YXRpYyJdCisr ZGVzY3JpcHRpb24gPSAiVGlueSBjcmF0ZSB0byBjaGVjayB0aGUgdmVyc2lvbiBvZiB0aGUgaW5z dGFsbGVkL3J1bm5pbmcgcnVzdGMuIgorK2RvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2NzLnJz L3ZlcnNpb25fY2hlY2svIgorK3JlYWRtZSA9ICJSRUFETUUubWQiCisra2V5d29yZHMgPSBbInZl cnNpb24iLCAicnVzdGMiLCAibWluaW11bSIsICJjaGVjayJdCisrbGljZW5zZSA9ICJNSVQvQXBh Y2hlLTIuMCIKKytyZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6 L3ZlcnNpb25fY2hlY2siCisrCisrW2RlcGVuZGVuY2llc10KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1BUEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0 L3ZlcnNpb25fY2hlY2svTElDRU5TRS1BUEFDSEUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0g L2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1B UEFDSEUKK0BAIC0wLDAgKzEsMjAxIEBACisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QXBhY2hlIExpY2Vuc2UKKysgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFu dWFyeSAyMDA0CisrICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp Y2Vuc2VzLworKworK1RFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwg QU5EIERJU1RSSUJVVElPTgorKworKzEuIERlZmluaXRpb25zLgorKworKyAgICJMaWNlbnNlIiBz aGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24s CisrICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5 IG9mIHRoaXMgZG9jdW1lbnQuCisrCisrICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5 cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKKysgICB0aGUgY29weXJpZ2h0IG93 bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisrCisrICAgIkxlZ2FsIEVudGl0eSIg c2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorKyAgIG90 aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRl ciBjb21tb24KKysgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMg b2YgdGhpcyBkZWZpbml0aW9uLAorKyAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBk aXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQorKyAgIGRpcmVjdGlvbiBvciBtYW5hZ2Vt ZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisrICAgb3RoZXJ3aXNl LCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhl CisrICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBv ZiBzdWNoIGVudGl0eS4KKysKKysgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGlu ZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisrICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFu dGVkIGJ5IHRoaXMgTGljZW5zZS4KKysKKysgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhl IHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKysgICBpbmNsdWRpbmcg YnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCisr ICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKysKKysgICAiT2JqZWN0IiBmb3Jt IHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAorKyAgIHRyYW5z Zm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQK KysgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3Vt ZW50YXRpb24sCisrICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorKwor KyAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4g U291cmNlIG9yCisrICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNl bnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorKyAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNs dWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworKyAgIChhbiBleGFtcGxlIGlzIHByb3Zp ZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisrCisrICAgIkRlcml2YXRpdmUgV29ya3MiIHNo YWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorKyAgIGZvcm0s IHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGlj aCB0aGUKKysgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25z LCBvciBvdGhlciBtb2RpZmljYXRpb25zCisrICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBv cmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKysgICBvZiB0aGlz IExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBy ZW1haW4KKysgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFt ZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisrICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29y a3MgdGhlcmVvZi4KKysKKysgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9m IGF1dGhvcnNoaXAsIGluY2x1ZGluZworKyAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBX b3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKysgICB0byB0aGF0IFdvcmsg b3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKysgICBz dWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29w eXJpZ2h0IG93bmVyCisrICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0 aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisrICAgdGhlIGNvcHlyaWdodCBvd25lci4g Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCisrICAgbWVh bnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRp b24gc2VudAorKyAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNs dWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisrICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmlj IG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKKysgICBhbmQgaXNz dWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2Ys IHRoZQorKyAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXBy b3ZpbmcgdGhlIFdvcmssIGJ1dAorKyAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMg Y29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCisrICAgZGVzaWduYXRlZCBpbiB3cml0 aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCisrCisr ICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBv ciBMZWdhbCBFbnRpdHkKKysgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMg YmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKysgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3Jh dGVkIHdpdGhpbiB0aGUgV29yay4KKysKKysyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4g U3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vuc2Us IGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisrICAg d29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZv Y2FibGUKKysgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZh dGl2ZSBXb3JrcyBvZiwKKysgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBz dWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKysgICBXb3JrIGFuZCBzdWNoIERlcml2YXRp dmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorKworKzMuIEdyYW50IG9mIFBhdGVu dCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorKyAgIHRo aXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBl dHVhbCwKKysgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1m cmVlLCBpcnJldm9jYWJsZQorKyAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikg cGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorKyAgIHVzZSwgb2ZmZXIgdG8gc2Vs bCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorKyAgIHdo ZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNl bnNhYmxlCisrICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZy aW5nZWQgYnkgdGhlaXIKKysgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRp b24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisrICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBz dWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKysgICBpbnN0aXR1dGUg cGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorKyAgIGNy b3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhl IFdvcmsKKysgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3Jr IGNvbnN0aXR1dGVzIGRpcmVjdAorKyAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2Vt ZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKysgICBncmFudGVkIHRvIFlvdSB1bmRlciB0 aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKysgICBhcyBvZiB0aGUg ZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisrCisrNC4gUmVkaXN0cmlidXRpb24uIFlv dSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKKysgICBXb3JrIG9y IERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQK KysgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRl ZCB0aGF0IFlvdQorKyAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKworKyAgIChh KSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisrICAg ICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCisrCisrICAg KGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQg bm90aWNlcworKyAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQK KysKKysgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERl cml2YXRpdmUgV29ya3MKKysgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdo dCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorKyAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZy b20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAorKyAgICAgICBleGNsdWRpbmcgdGhvc2Ug bm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisrICAgICAgIHRoZSBE ZXJpdmF0aXZlIFdvcmtzOyBhbmQKKysKKysgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAi Tk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKysgICAgICAgZGlzdHJpYnV0aW9uLCB0 aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorKyAgICAg ICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250 YWluZWQKKysgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBu b3RpY2VzIHRoYXQgZG8gbm90CisrICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERl cml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQorKyAgICAgICBvZiB0aGUgZm9sbG93aW5n IHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAorKyAgICAgICBh cyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9y CisrICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2 YXRpdmUgV29ya3M7IG9yLAorKyAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0 aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisrICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQt cGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworKyAgICAgICBvZiB0 aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCisr ICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0 dHJpYnV0aW9uCisrICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZ b3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisrICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRo ZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAorKyAgICAgICB0aGF0IHN1Y2gg YWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKysgICAg ICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorKworKyAgIFlvdSBtYXkgYWRkIFlvdXIgb3du IGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorKyAgIG1heSBw cm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlv bnMKKysgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1v ZGlmaWNhdGlvbnMsIG9yCisrICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3 aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisrICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0 aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisrICAgdGhlIGNvbmRpdGlv bnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKysKKys1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1 dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisrICAgYW55IENv bnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBX b3JrCisrICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9u YWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKysgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBu b3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisrICAgdGhlIHRlcm1zIG9m IGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKysg ICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisrCisrNi4gVHJh ZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRo ZSB0cmFkZQorKyAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0 IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKysgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNv bmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKysgICBvcmlnaW4gb2Yg dGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4K KysKKys3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj YWJsZSBsYXcgb3IKKysgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMg dGhlIFdvcmsgKGFuZCBlYWNoCisrICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1 dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisrICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP TkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisrICAgaW1wbGllZCwgaW5j bHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMK KysgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRO RVNTIEZPUiBBCisrICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25z aWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisrICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9y IHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CisrICAgcmlza3MgYXNzb2Np YXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNl LgorKworKzguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIg bm8gbGVnYWwgdGhlb3J5LAorKyAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2Vu Y2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorKyAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBs aWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CisrICAgbmVnbGlnZW50 IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUK KysgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5k aXJlY3QsIHNwZWNpYWwsCisrICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2Vz IG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisrICAgcmVzdWx0IG9mIHRoaXMgTGljZW5z ZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorKyAgIFdvcmsgKGlu Y2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwK KysgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBh bnkgYW5kIGFsbAorKyAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVu IGlmIHN1Y2ggQ29udHJpYnV0b3IKKysgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJp bGl0eSBvZiBzdWNoIGRhbWFnZXMuCisrCisrOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0 aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworKyAgIHRoZSBXb3JrIG9yIERl cml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisrICAgYW5k IGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVt bml0eSwKKysgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBj b25zaXN0ZW50IHdpdGggdGhpcworKyAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBz dWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisrICAgb24gWW91ciBvd24gYmVoYWxm IGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKysgICBvZiBh bnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnks CisrICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkg bGlhYmlsaXR5CisrICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBz dWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorKyAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNo IHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorKworK0VORCBPRiBURVJNUyBBTkQg Q09ORElUSU9OUworKworK0FQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNl IHRvIHlvdXIgd29yay4KKysKKysgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91 ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZworKyAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0 aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKKysgICByZXBsYWNlZCB3aXRo IHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQorKyAgIHRo ZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJp YXRlCisrICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNv bW1lbmQgdGhhdCBhCisrICAgZmlsZSBvciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBw dXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQorKyAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhl IGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgorKyAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0 aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKysKKytDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHly aWdodCBvd25lcl0KKysKKytMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNp b24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyt5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw dCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisrWW91IG1heSBvYnRhaW4gYSBjb3B5 IG9mIHRoZSBMaWNlbnNlIGF0CisrCisrCWh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9M SUNFTlNFLTIuMAorKworK1VubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3Jl ZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKytkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5z ZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorK1dJVEhPVVQgV0FSUkFOVElF UyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgor K1NlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt aXNzaW9ucyBhbmQKKytsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1NSVQgYi90aGlyZF9wYXJ0 eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1NSVQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5T RS1NSVQKK0BAIC0wLDAgKzEsMTkgQEAKKytUaGUgTUlUIExpY2Vuc2UgKE1JVCkKKytDb3B5cmln aHQgKGMpIDIwMTctMjAxOCBTZXJnaW8gQmVuaXRlegorKworK1Blcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkg b2YKKyt0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbgorK3RoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KKyt1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsIGNvcGllcyBvZgorK3RoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywKKytzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysKKytUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKKytjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKworK1RIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisrSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MKKytGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg T1IKKytDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIKKytJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorK0NPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09G VFdBUkUuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL1JFQURN RS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUubWQKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNp b25fY2hlY2svUkVBRE1FLm1kCitAQCAtMCwwICsxLDgwIEBACisrIyB2ZXJzaW9uXF9jaGVjawor KworK1shW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL1Nlcmdpb0Jlbml0ZXovdmVy c2lvbl9jaGVjay93b3JrZmxvd3MvQ0kvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL1Nl cmdpb0Jlbml0ZXovdmVyc2lvbl9jaGVjay9hY3Rpb25zKQorK1shW0N1cnJlbnQgQ3JhdGVzLmlv IFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvdmVyc2lvbl9jaGVjay5z dmcpXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvdmVyc2lvbl9jaGVjaykKKytbIVtydXN0ZG9j cyBvbiBkb2NzLnJzXShodHRwczovL2RvY3MucnMvdmVyc2lvbl9jaGVjay9iYWRnZS5zdmcpXSho dHRwczovL2RvY3MucnMvdmVyc2lvbl9jaGVjaykKKysKKytUaGlzIHRpbnkgY3JhdGUgY2hlY2tz IHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2AgbWVldHMgc29tZSB2ZXJzaW9u CisrcmVxdWlyZW1lbnRzLiBUaGUgdmVyc2lvbiBpcyBxdWVyaWVkIGJ5IGNhbGxpbmcgdGhlIFJ1 c3QgY29tcGlsZXIgd2l0aAorK2AtLXZlcnNpb25gLiBUaGUgcGF0aCB0byB0aGUgY29tcGlsZXIg aXMgZGV0ZXJtaW5lZCBmaXJzdCB2aWEgdGhlIGBSVVNUQ2AKKytlbnZpcm9ubWVudCB2YXJpYWJs ZS4gSWYgaXQgaXMgbm90IHNldCwgdGhlbiBgcnVzdGNgIGlzIHVzZWQuIElmIHRoYXQgZmFpbHMs IG5vCisrZGV0ZXJtaW5hdGlvbiBpcyBtYWRlLCBhbmQgY2FsbHMgcmV0dXJuIGBOb25lYC4KKysK KysjIyBVc2FnZQorKworK0FkZCB0byB5b3VyIGBDYXJnby50b21sYCBmaWxlLCB0eXBpY2FsbHkg YXMgYSBidWlsZCBkZXBlbmRlbmN5OgorKworK2BgYHRvbWwKKytbYnVpbGQtZGVwZW5kZW5jaWVz XQorK3ZlcnNpb25fY2hlY2sgPSAiMC45IgorK2BgYAorKworK2B2ZXJzaW9uX2NoZWNrYCBpcyBj b21wYXRpYmxlIGFuZCBjb21waWxlcyB3aXRoIFJ1c3QgMS4wLjAgYW5kIGJleW9uZC4KKysKKysj IyBFeGFtcGxlcworKworK1NldCBhIGBjZmdgIGZsYWcgaW4gYGJ1aWxkLnJzYCBpZiB0aGUgcnVu bmluZyBjb21waWxlciB3YXMgZGV0ZXJtaW5lZCB0byBiZQorK2F0IGxlYXN0IHZlcnNpb24gYDEu MTMuMGA6CisrCisrYGBgcnVzdAorK2V4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3Rj OworKworK2lmIHJ1c3RjOjppc19taW5fdmVyc2lvbigiMS4xMy4wIikudW53cmFwX29yKGZhbHNl KSB7CisrICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9cXVlc3Rpb25fbWFya19vcGVyYXRv ciIpOworK30KKytgYGAKKysKKytDaGVjayB0aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIHdhcyBy ZWxlYXNlZCBvbiBvciBhZnRlciBgMjAxOC0xMi0xOGA6CisrCisrYGBgcnVzdAorK2V4dGVybiBj cmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOworKworK21hdGNoIHJ1c3RjOjppc19taW5fZGF0 ZSgiMjAxOC0xMi0xOCIpIHsKKysgICAgU29tZSh0cnVlKSA9PiAiWWVwISBJdCdzIHJlY2VudCEi LAorKyAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0J3Mgb2xkZXIuIiwKKysgICAgTm9uZSA9PiAi Q291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIKKyt9OworK2BgYAorKworK0No ZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgc3VwcG9ydHMgZmVhdHVyZSBmbGFnczoKKysK KytgYGBydXN0CisrZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7CisrCisrbWF0 Y2ggcnVzdGM6OmlzX2ZlYXR1cmVfZmxhZ2dhYmxlKCkgeworKyAgICBTb21lKHRydWUpID0+ICJZ ZXMhIEl0J3MgYSBkZXYgb3IgbmlnaHRseSByZWxlYXNlISIsCisrICAgIFNvbWUoZmFsc2UpID0+ ICJObywgaXQncyBzdGFibGUgb3IgYmV0YS4iLAorKyAgICBOb25lID0+ICJDb3VsZG4ndCBkZXRl cm1pbmUgdGhlIHJ1c3RjIHZlcnNpb24uIgorK307CisrYGBgCisrCisrU2VlIHRoZSBbcnVzdGRv Y3NdKGh0dHBzOi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNrKSBmb3IgbW9yZSBleGFtcGxlcyBhbmQg Y29tcGxldGUKKytkb2N1bWVudGF0aW9uLgorKworKyMjIEFsdGVybmF0aXZlcworKworK1RoaXMg Y3JhdGUgaXMgZGVhZCBzaW1wbGUgd2l0aCBubyBkZXBlbmRlbmNpZXMuIElmIHlvdSBuZWVkIHNv bWV0aGluZyBtb3JlIGFuZAorK2Rvbid0IGNhcmUgYWJvdXQgcGFuaWNraW5nIGlmIHRoZSB2ZXJz aW9uIGNhbm5vdCBiZSBvYnRhaW5lZCwgb3IgaWYgeW91IGRvbid0CisrbWluZCBhZGRpbmcgZGVw ZW5kZW5jaWVzLCBzZWUgW3J1c3RjX3ZlcnNpb25dLiBJZiB5b3UnZCBpbnN0ZWFkIHByZWZlciBh IGZlYXR1cmUKKytkZXRlY3Rpb24gbGlicmFyeSB0aGF0IHdvcmtzIGJ5IGR5bmFtaWNhbGx5IGlu dm9raW5nIGBydXN0Y2Agd2l0aCBhCisrcmVwcmVzZW50YXRpdmUgY29kZSBzYW1wbGUsIHNlZSBb YXV0b2NmZ10uCisrCisrW3J1c3RjX3ZlcnNpb25dOiBodHRwczovL2NyYXRlcy5pby9jcmF0ZXMv cnVzdGNfdmVyc2lvbgorK1thdXRvY2ZnXTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL2F1dG9j ZmcKKysKKysjIyBMaWNlbnNlCisrCisrYHZlcnNpb25fY2hlY2tgIGlzIGxpY2Vuc2VkIHVuZGVy IGVpdGhlciBvZiB0aGUgZm9sbG93aW5nLCBhdCB5b3VyIG9wdGlvbjoKKysKKysgKiBBcGFjaGUg TGljZW5zZSwgVmVyc2lvbiAyLjAsIChbTElDRU5TRS1BUEFDSEVdKExJQ0VOU0UtQVBBQ0hFKSBv ciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCisrICogTUlUIExp Y2Vuc2UgKFtMSUNFTlNFLU1JVF0oTElDRU5TRS1NSVQpIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9y Zy9saWNlbnNlcy9NSVQpCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2No ZWNrL3NyYy9jaGFubmVsLnJzIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9j aGFubmVsLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9jaGFubmVsLnJzCitAQCAtMCwwICsxLDE5 MyBAQAorK3VzZSBzdGQ6OmZtdDsKKysKKysjW2Rlcml2ZShEZWJ1ZywgUGFydGlhbEVxLCBFcSwg Q29weSwgQ2xvbmUpXQorK2VudW0gS2luZCB7CisrICAgIERldiwKKysgICAgTmlnaHRseSwKKysg ICAgQmV0YSwKKysgICAgU3RhYmxlLAorK30KKysKKysvLy8gUmVsZWFzZSBjaGFubmVsOiAiZGV2 IiwgIm5pZ2h0bHkiLCAiYmV0YSIsIG9yICJzdGFibGUiLgorKyNbZGVyaXZlKERlYnVnLCBQYXJ0 aWFsRXEsIEVxLCBDb3B5LCBDbG9uZSldCisrcHViIHN0cnVjdCBDaGFubmVsKEtpbmQpOworKwor K2ltcGwgQ2hhbm5lbCB7CisrICAgIC8vLyBSZWFkcyB0aGUgcmVsZWFzZSBjaGFubmVsIG9mIHRo ZSBydW5uaW5nIGNvbXBpbGVyLiBJZiBpdCBjYW5ub3QgYmUKKysgICAgLy8vIGRldGVybWluZWQg KHNlZSB0aGUgW3RvcC1sZXZlbCBkb2N1bWVudGF0aW9uXShjcmF0ZSkpLCByZXR1cm5zIGBOb25l YC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBy dXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKKysgICAgLy8vCisrICAg IC8vLyBtYXRjaCBDaGFubmVsOjpyZWFkKCkgeworKyAgICAvLy8gICAgIFNvbWUoYykgPT4gZm9y bWF0ISgiVGhlIGNoYW5uZWwgaXM6IHt9IiwgYyksCisrICAgIC8vLyAgICAgTm9uZSA9PiBmb3Jt YXQhKCJGYWlsZWQgdG8gcmVhZCB0aGUgcmVsZWFzZSBjaGFubmVsLiIpCisrICAgIC8vLyB9Owor KyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiByZWFkKCkgLT4gT3B0aW9uPENoYW5uZWw+IHsKKysg ICAgICAgIDo6Z2V0X3ZlcnNpb25fYW5kX2RhdGUoKQorKyAgICAgICAgICAgIC5hbmRfdGhlbih8 KHZlcnNpb24sIF8pfCB2ZXJzaW9uKQorKyAgICAgICAgICAgIC5hbmRfdGhlbih8dmVyc2lvbnwg Q2hhbm5lbDo6cGFyc2UoJnZlcnNpb24pKQorKyAgICB9CisrCisrICAgIC8vLyBQYXJzZSBhIFJ1 c3QgcmVsZWFzZSBjaGFubmVsIGZyb20gYSBSdXN0IHJlbGVhc2UgdmVyc2lvbiBzdHJpbmcgKG9m IHRoZQorKyAgICAvLy8gZm9ybSBgbWFqb3JbLm1pbm9yWy5wYXRjaFstY2hhbm5lbF1dXWApLiBS ZXR1cm5zIGBOb25lYCBpZiBgdmVyc2lvbmAgaXMKKysgICAgLy8vIG5vdCBhIHZhbGlkIFJ1c3Qg dmVyc2lvbiBzdHJpbmcuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLwor KyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7Cisr ICAgIC8vLworKyAgICAvLy8gbGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1kZXYiKS51 bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoZGV2LmlzX2RldigpKTsKKysgICAgLy8vCisrICAg IC8vLyBsZXQgbmlnaHRseSA9IENoYW5uZWw6OnBhcnNlKCIxLjQyLjItbmlnaHRseSIpLnVud3Jh cCgpOworKyAgICAvLy8gYXNzZXJ0IShuaWdodGx5LmlzX25pZ2h0bHkoKSk7CisrICAgIC8vLwor KyAgICAvLy8gbGV0IGJldGEgPSBDaGFubmVsOjpwYXJzZSgiMS4zMi4wLWJldGEiKS51bndyYXAo KTsKKysgICAgLy8vIGFzc2VydCEoYmV0YS5pc19iZXRhKCkpOworKyAgICAvLy8KKysgICAgLy8v IGxldCBzdGFibGUgPSBDaGFubmVsOjpwYXJzZSgiMS40LjAiKS51bndyYXAoKTsKKysgICAgLy8v IGFzc2VydCEoc3RhYmxlLmlzX3N0YWJsZSgpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4g cGFyc2UodmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPENoYW5uZWw+IHsKKysgICAgICAgIGxldCB2 ZXJzaW9uID0gdmVyc2lvbi50cmltKCk7CisrICAgICAgICBpZiB2ZXJzaW9uLmNvbnRhaW5zKCIt ZGV2IikgfHwgdmVyc2lvbiA9PSAiZGV2IiB7CisrICAgICAgICAgICAgU29tZShDaGFubmVsKEtp bmQ6OkRldikpCisrICAgICAgICB9IGVsc2UgaWYgdmVyc2lvbi5jb250YWlucygiLW5pZ2h0bHki KSB8fCB2ZXJzaW9uID09ICJuaWdodGx5IiB7CisrICAgICAgICAgICAgU29tZShDaGFubmVsKEtp bmQ6Ok5pZ2h0bHkpKQorKyAgICAgICAgfSBlbHNlIGlmIHZlcnNpb24uY29udGFpbnMoIi1iZXRh IikgfHwgdmVyc2lvbiA9PSAiYmV0YSIgeworKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5k OjpCZXRhKSkKKysgICAgICAgIH0gZWxzZSBpZiAhdmVyc2lvbi5jb250YWlucygiLSIpIHsKKysg ICAgICAgICAgICBTb21lKENoYW5uZWwoS2luZDo6U3RhYmxlKSkKKysgICAgICAgIH0gZWxzZSB7 CisrICAgICAgICAgICAgTm9uZQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1 cm5zIHRoZSBuYW1lIG9mIHRoZSByZWxlYXNlIGNoYW5uZWwuCisrICAgIGZuIGFzX3N0cigmc2Vs ZikgLT4gJidzdGF0aWMgc3RyIHsKKysgICAgICAgIG1hdGNoIHNlbGYuMCB7CisrICAgICAgICAg ICAgS2luZDo6RGV2ID0+ICJkZXYiLAorKyAgICAgICAgICAgIEtpbmQ6OkJldGEgPT4gImJldGEi LAorKyAgICAgICAgICAgIEtpbmQ6Ok5pZ2h0bHkgPT4gIm5pZ2h0bHkiLAorKyAgICAgICAgICAg IEtpbmQ6OlN0YWJsZSA9PiAic3RhYmxlIiwKKysgICAgICAgIH0KKysgICAgfQorKworKyAgICAv Ly8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIHN1cHBvcnRzIGZlYXR1cmUgZmxhZ3Mu IEluIG90aGVyIHdvcmRzLAorKyAgICAvLy8gcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNoYW5uZWwg aXMgZWl0aGVyIGBkZXZgIG9yIGBuaWdodGx5YC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1w bGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVj azo6Q2hhbm5lbDsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgZGV2ID0gQ2hhbm5lbDo6cGFyc2Uo IjEuMy4wLWRldiIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0IShkZXYuc3VwcG9ydHNfZmVh dHVyZXMoKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IG5pZ2h0bHkgPSBDaGFubmVsOjpwYXJz ZSgiMS40Mi4yLW5pZ2h0bHkiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEobmlnaHRseS5z dXBwb3J0c19mZWF0dXJlcygpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgYmV0YSA9IENoYW5u ZWw6OnBhcnNlKCIxLjMyLjAtYmV0YSIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISghYmV0 YS5zdXBwb3J0c19mZWF0dXJlcygpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgc3RhYmxlID0g Q2hhbm5lbDo6cGFyc2UoIjEuNC4wIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKCFzdGFi bGUuc3VwcG9ydHNfZmVhdHVyZXMoKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIHN1cHBv cnRzX2ZlYXR1cmVzKCZzZWxmKSAtPiBib29sIHsKKysgICAgICAgIG1hdGNoIHNlbGYuMCB7Cisr ICAgICAgICAgICAgS2luZDo6RGV2IHwgS2luZDo6TmlnaHRseSA9PiB0cnVlLAorKyAgICAgICAg ICAgIEtpbmQ6OkJldGEgfCBLaW5kOjpTdGFibGUgPT4gZmFsc2UKKysgICAgICAgIH0KKysgICAg fQorKworKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlzIGBkZXZgIGFu ZCBgZmFsc2VgIG90aGVyd2lzZS4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAg Ly8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5l bDsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgZGV2ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4wLWRl diIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0IShkZXYuaXNfZGV2KCkpOworKyAgICAvLy8K KysgICAgLy8vIGxldCBzdGFibGUgPSBDaGFubmVsOjpwYXJzZSgiMS4wLjAiKS51bndyYXAoKTsK KysgICAgLy8vIGFzc2VydCEoIXN0YWJsZS5pc19kZXYoKSk7CisrICAgIC8vLyBgYGAKKysgICAg cHViIGZuIGlzX2Rldigmc2VsZikgLT4gYm9vbCB7CisrICAgICAgICBtYXRjaCBzZWxmLjAgewor KyAgICAgICAgICAgIEtpbmQ6OkRldiA9PiB0cnVlLAorKyAgICAgICAgICAgIF8gPT4gZmFsc2UK KysgICAgICAgIH0KKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBj aGFubmVsIGlzIGBuaWdodGx5YCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCisrICAgIC8vLworKyAg ICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNl IHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7CisrICAgIC8vLworKyAgICAvLy8gbGV0IG5pZ2h0bHkg PSBDaGFubmVsOjpwYXJzZSgiMS4zLjAtbmlnaHRseSIpLnVud3JhcCgpOworKyAgICAvLy8gYXNz ZXJ0IShuaWdodGx5LmlzX25pZ2h0bHkoKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IHN0YWJs ZSA9IENoYW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISgh c3RhYmxlLmlzX25pZ2h0bHkoKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIGlzX25pZ2h0 bHkoJnNlbGYpIC0+IGJvb2wgeworKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKKysgICAgICAgICAg ICBLaW5kOjpOaWdodGx5ID0+IHRydWUsCisrICAgICAgICAgICAgXyA9PiBmYWxzZQorKyAgICAg ICAgfQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNoYW5uZWwg aXMgYGJldGFgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4 YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9j aGVjazo6Q2hhbm5lbDsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgYmV0YSA9IENoYW5uZWw6OnBh cnNlKCIxLjMuMC1iZXRhIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKGJldGEuaXNfYmV0 YSgpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEu MC4wIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKCFzdGFibGUuaXNfYmV0YSgpKTsKKysg ICAgLy8vIGBgYAorKyAgICBwdWIgZm4gaXNfYmV0YSgmc2VsZikgLT4gYm9vbCB7CisrICAgICAg ICBtYXRjaCBzZWxmLjAgeworKyAgICAgICAgICAgIEtpbmQ6OkJldGEgPT4gdHJ1ZSwKKysgICAg ICAgICAgICBfID0+IGZhbHNlCisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgLy8vIFJldHVy bnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBpcyBgc3RhYmxlYCBhbmQgYGZhbHNlYCBvdGhlcndp c2UuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBg cnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7CisrICAgIC8vLworKyAg ICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVud3JhcCgpOworKyAg ICAvLy8gYXNzZXJ0IShzdGFibGUuaXNfc3RhYmxlKCkpOworKyAgICAvLy8KKysgICAgLy8vIGxl dCBiZXRhID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4wLWJldGEiKS51bndyYXAoKTsKKysgICAgLy8v IGFzc2VydCEoIWJldGEuaXNfc3RhYmxlKCkpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBp c19zdGFibGUoJnNlbGYpIC0+IGJvb2wgeworKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKKysgICAg ICAgICAgICBLaW5kOjpTdGFibGUgPT4gdHJ1ZSwKKysgICAgICAgICAgICBfID0+IGZhbHNlCisr ICAgICAgICB9CisrICAgIH0KKyt9CisrCisraW1wbCBmbXQ6OkRpc3BsYXkgZm9yIENoYW5uZWwg eworKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVz dWx0IHsKKysgICAgICAgIHdyaXRlIShmLCAie30iLCBzZWxmLmFzX3N0cigpKQorKyAgICB9Cisr fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvZGF0ZS5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvZGF0ZS5ycworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lv bl9jaGVjay9zcmMvZGF0ZS5ycworQEAgLTAsMCArMSwyMDMgQEAKKyt1c2Ugc3RkOjpmbXQ7Cisr CisrLy8vIFJlbGVhc2UgZGF0ZSBpbmNsdWRpbmcgeWVhciwgbW9udGgsIGFuZCBkYXkuCisrLy8g SW50ZXJuYWwgc3RvcmFnZSBpczogeVszMS4uOV0gfCBtWzguLjVdIHwgZFs1Li4uMF0uCisrI1tk ZXJpdmUoRGVidWcsIFBhcnRpYWxFcSwgRXEsIENvcHksIENsb25lLCBQYXJ0aWFsT3JkLCBPcmQp XQorK3B1YiBzdHJ1Y3QgRGF0ZSh1MzIpOworKworK2ltcGwgRGF0ZSB7CisrICAgIC8vLyBSZWFk cyB0aGUgcmVsZWFzZSBkYXRlIG9mIHRoZSBydW5uaW5nIGNvbXBpbGVyLiBJZiBpdCBjYW5ub3Qg YmUKKysgICAgLy8vIGRldGVybWluZWQgKHNlZSB0aGUgW3RvcC1sZXZlbCBkb2N1bWVudGF0aW9u XShjcmF0ZSkpLCByZXR1cm5zIGBOb25lYC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUK KysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6 RGF0ZTsKKysgICAgLy8vCisrICAgIC8vLyBtYXRjaCBEYXRlOjpyZWFkKCkgeworKyAgICAvLy8g ICAgIFNvbWUoZCkgPT4gZm9ybWF0ISgiVGhlIHJlbGVhc2UgZGF0ZSBpczoge30iLCBkKSwKKysg ICAgLy8vICAgICBOb25lID0+IGZvcm1hdCEoIkZhaWxlZCB0byByZWFkIHRoZSByZWxlYXNlIGRh dGUuIikKKysgICAgLy8vIH07CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIHJlYWQoKSAtPiBP cHRpb248RGF0ZT4geworKyAgICAgICAgOjpnZXRfdmVyc2lvbl9hbmRfZGF0ZSgpCisrICAgICAg ICAgICAgLmFuZF90aGVuKHwoXywgZGF0ZSl8IGRhdGUpCisrICAgICAgICAgICAgLmFuZF90aGVu KHxkYXRlfCBEYXRlOjpwYXJzZSgmZGF0ZSkpCisrICAgIH0KKysKKysgICAgLy8vIFBhcnNlIGEg cmVsZWFzZSBkYXRlIG9mIHRoZSBmb3JtIGAlWS0lbS0lZGAuIFJldHVybnMgYE5vbmVgIGlmIGBk YXRlYCBpcworKyAgICAvLy8gbm90IGluIGAlWS0lbS0lZGAgZm9ybWF0LgorKyAgICAvLy8KKysg ICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVz ZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOworKyAgICAvLy8KKysgICAgLy8vIGxldCBkYXRlID0gRGF0 ZTo6cGFyc2UoIjIwMTYtMDQtMjAiKS51bndyYXAoKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3Nl cnQhKGRhdGUuYXRfbGVhc3QoIjIwMTYtMDEtMTAiKSk7CisrICAgIC8vLyBhc3NlcnQhKGRhdGUu YXRfbW9zdCgiMjAxNi0wNC0yMCIpKTsKKysgICAgLy8vIGFzc2VydCEoZGF0ZS5leGFjdGx5KCIy MDE2LTA0LTIwIikpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIw MjEtMTItMzEiKS51bndyYXAoKS5leGFjdGx5KCIyMDIxLTEyLTMxIikpOworKyAgICAvLy8KKysg ICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIk1hcmNoIDEzLCAyMDE4IikuaXNfbm9uZSgpKTsK KysgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjEtMi0zLTQtNSIpLmlzX25vbmUoKSk7Cisr ICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCIyMDIwLTMwMC0yMzEyMCIpLmlzX25vbmUoKSk7 CisrICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCIyMDIwLTEyLTEyIDEiKS5pc19ub25lKCkp OworKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMC0xMCIpLmlzX25vbmUoKSk7Cisr ICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCIyMDIwIikuaXNfbm9uZSgpKTsKKysgICAgLy8v IGBgYAorKyAgICBwdWIgZm4gcGFyc2UoZGF0ZTogJnN0cikgLT4gT3B0aW9uPERhdGU+IHsKKysg ICAgICAgIGxldCBtdXQgeW1kID0gWzB1MTY7IDNdOworKyAgICAgICAgZm9yIChpLCBzcGxpdCkg aW4gZGF0ZS5zcGxpdCgnLScpLm1hcCh8c3wgcy5wYXJzZTo6PHUxNj4oKSkuZW51bWVyYXRlKCkg eworKyAgICAgICAgICAgIHltZFtpXSA9IG1hdGNoIChpLCBzcGxpdCkgeworKyAgICAgICAgICAg ICAgICAoMywgXykgfCAoXywgRXJyKF8pKSA9PiByZXR1cm4gTm9uZSwKKysgICAgICAgICAgICAg ICAgKF8sIE9rKHYpKSA9PiB2LAorKyAgICAgICAgICAgIH07CisrICAgICAgICB9CisrCisrICAg ICAgICBsZXQgKHllYXIsIG1vbnRoLCBkYXkpID0gKHltZFswXSwgeW1kWzFdLCB5bWRbMl0pOwor KyAgICAgICAgaWYgeWVhciA9PSAwIHx8IG1vbnRoID09IDAgfHwgbW9udGggPiAxMiB8fCBkYXkg PT0gMCB8fCBkYXkgPiAzMSB7CisrICAgICAgICAgICAgcmV0dXJuIE5vbmU7CisrICAgICAgICB9 CisrCisrICAgICAgICBTb21lKERhdGU6OmZyb21feW1kKHllYXIsIG1vbnRoIGFzIHU4LCBkYXkg YXMgdTgpKQorKyAgICB9CisrCisrICAgIC8vLyBDcmVhdGVzIGEgYERhdGVgIGZyb20gYCh5ZWFy LCBtb250aCwgZGF5KWAgZGF0ZSBjb21wb25lbnRzLgorKyAgICAvLy8KKysgICAgLy8vIERvZXMg bm90IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiBgeWVhcmAsIGBtb250aGAsIG9yIGBkYXlgLCBidXQg YHllYXJgIGlzCisrICAgIC8vLyB0cnVuY2F0ZWQgdG8gMjMgYml0cyAoJSA4LDM4OCw2MDgpLCBg bW9udGhgIHRvIDQgYml0cyAoJSAxNiksIGFuZCBgZGF5YAorKyAgICAvLy8gdG8gNSBiaXRzICgl IDMyKS4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBg YGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0ZTsKKysgICAgLy8vCisrICAg IC8vLyBhc3NlcnQhKERhdGU6OmZyb21feW1kKDIwMjEsIDcsIDMwKS5leGFjdGx5KCIyMDIxLTA3 LTMwIikpOworKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpmcm9tX3ltZCgyMDEwLCAzLCAyMykuZXhh Y3RseSgiMjAxMC0wMy0yMyIpKTsKKysgICAgLy8vIGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjA5 MCwgMSwgMzEpLmV4YWN0bHkoIjIwOTAtMDEtMzEiKSk7CisrICAgIC8vLworKyAgICAvLy8gLy8g VHJ1bmNhdGlvbjogMzMgJSAzMiA9PSAweDIxICYgMHgxRiA9PSAxLgorKyAgICAvLy8gYXNzZXJ0 IShEYXRlOjpmcm9tX3ltZCgyMDkwLCAxLCAzMykuZXhhY3RseSgiMjA5MC0wMS0wMSIpKTsKKysg ICAgLy8vIGBgYAorKyAgICBwdWIgZm4gZnJvbV95bWQoeWVhcjogdTE2LCBtb250aDogdTgsIGRh eTogdTgpIC0+IERhdGUgeworKyAgICAgICAgbGV0IHllYXIgPSAoeWVhciBhcyB1MzIpIDw8IDk7 CisrICAgICAgICBsZXQgbW9udGggPSAoKG1vbnRoIGFzIHUzMikgJiAweEYpIDw8IDU7CisrICAg ICAgICBsZXQgZGF5ID0gKGRheSBhcyB1MzIpICYgMHgxRjsKKysgICAgICAgIERhdGUoeWVhciB8 IG1vbnRoIHwgZGF5KQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm4gdGhlIG9yaWdpbmFsIChZ WVlZLCBNTSwgREQpLgorKyAgICBmbiB0b195bWQoJnNlbGYpIC0+ICh1MTYsIHU4LCB1OCkgewor KyAgICAgICAgbGV0IHkgPSBzZWxmLjAgPj4gOTsKKysgICAgICAgIGxldCBtID0gKHNlbGYuMCA+ PiA1KSAmIDB4RjsKKysgICAgICAgIGxldCBkID0gc2VsZi4wICYgMHgxRjsKKysgICAgICAgICh5 IGFzIHUxNiwgbSBhcyB1OCwgZCBhcyB1OCkKKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyBg dHJ1ZWAgaWYgYHNlbGZgIG9jY3VycyBvbiBvciBhZnRlciBgZGF0ZWAuCisrICAgIC8vLworKyAg ICAvLy8gSWYgYGRhdGVgIG9jY3VycyBiZWZvcmUgYHNlbGZgLCBvciBpZiBgZGF0ZWAgaXMgbm90 IGluIGAlWS0lbS0lZGAKKysgICAgLy8vIGZvcm1hdCwgcmV0dXJucyBgZmFsc2VgLgorKyAgICAv Ly8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAg Ly8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOworKyAgICAvLy8KKysgICAgLy8vIGxldCBkYXRl ID0gRGF0ZTo6cGFyc2UoIjIwMjAtMDEtMDEiKS51bndyYXAoKTsKKysgICAgLy8vCisrICAgIC8v LyBhc3NlcnQhKGRhdGUuYXRfbGVhc3QoIjIwMTktMTItMzEiKSk7CisrICAgIC8vLyBhc3NlcnQh KGRhdGUuYXRfbGVhc3QoIjIwMjAtMDEtMDEiKSk7CisrICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRf bGVhc3QoIjIwMTQtMDQtMzEiKSk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5h dF9sZWFzdCgiMjAyMC0wMS0wMiIpKTsKKysgICAgLy8vIGFzc2VydCEoIWRhdGUuYXRfbGVhc3Qo IjIwMjQtMDgtMTgiKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIGF0X2xlYXN0KCZzZWxm LCBkYXRlOiAmc3RyKSAtPiBib29sIHsKKysgICAgICAgIERhdGU6OnBhcnNlKGRhdGUpCisrICAg ICAgICAgICAgLm1hcCh8ZGF0ZXwgc2VsZiA+PSAmZGF0ZSkKKysgICAgICAgICAgICAudW53cmFw X29yKGZhbHNlKQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAg b2NjdXJzIG9uIG9yIGJlZm9yZSBgZGF0ZWAuCisrICAgIC8vLworKyAgICAvLy8gSWYgYGRhdGVg IG9jY3VycyBhZnRlciBgc2VsZmAsIG9yIGlmIGBkYXRlYCBpcyBub3QgaW4gYCVZLSVtLSVkYAor KyAgICAvLy8gZm9ybWF0LCByZXR1cm5zIGBmYWxzZWAuCisrICAgIC8vLworKyAgICAvLy8gIyBF eGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25f Y2hlY2s6OkRhdGU7CisrICAgIC8vLworKyAgICAvLy8gbGV0IGRhdGUgPSBEYXRlOjpwYXJzZSgi MjAyMC0wMS0wMSIpLnVud3JhcCgpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoZGF0ZS5h dF9tb3N0KCIyMDIwLTAxLTAxIikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X21vc3QoIjIw MjAtMDEtMDIiKSk7CisrICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbW9zdCgiMjAyNC0wOC0xOCIp KTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKCFkYXRlLmF0X21vc3QoIjIwMTktMTItMzEi KSk7CisrICAgIC8vLyBhc3NlcnQhKCFkYXRlLmF0X21vc3QoIjIwMTQtMDQtMzEiKSk7CisrICAg IC8vLyBgYGAKKysgICAgcHViIGZuIGF0X21vc3QoJnNlbGYsIGRhdGU6ICZzdHIpIC0+IGJvb2wg eworKyAgICAgICAgRGF0ZTo6cGFyc2UoZGF0ZSkKKysgICAgICAgICAgICAubWFwKHxkYXRlfCBz ZWxmIDw9ICZkYXRlKQorKyAgICAgICAgICAgIC51bndyYXBfb3IoZmFsc2UpCisrICAgIH0KKysK KysgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBvY2N1cnMgZXhhY3RseSBvbiBgZGF0 ZWAuCisrICAgIC8vLworKyAgICAvLy8gSWYgYGRhdGVgIGlzIG5vdCBleGFjdGx5IGBzZWxmYCwg b3IgaWYgYGRhdGVgIGlzIG5vdCBpbiBgJVktJW0tJWRgCisrICAgIC8vLyBmb3JtYXQsIHJldHVy bnMgYGZhbHNlYC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAg IC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0ZTsKKysgICAgLy8v CisrICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDIwLTAxLTAxIikudW53cmFwKCk7 CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmV4YWN0bHkoIjIwMjAtMDEtMDEiKSk7 CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5leGFjdGx5KCIyMDE5LTEyLTMxIikp OworKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5leGFjdGx5KCIyMDE0LTA0LTMxIikpOworKyAgICAv Ly8gYXNzZXJ0ISghZGF0ZS5leGFjdGx5KCIyMDIwLTAxLTAyIikpOworKyAgICAvLy8gYXNzZXJ0 ISghZGF0ZS5leGFjdGx5KCIyMDI0LTA4LTE4IikpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBm biBleGFjdGx5KCZzZWxmLCBkYXRlOiAmc3RyKSAtPiBib29sIHsKKysgICAgICAgIERhdGU6OnBh cnNlKGRhdGUpCisrICAgICAgICAgICAgLm1hcCh8ZGF0ZXwgc2VsZiA9PSAmZGF0ZSkKKysgICAg ICAgICAgICAudW53cmFwX29yKGZhbHNlKQorKyAgICB9CisrfQorKworK2ltcGwgZm10OjpEaXNw bGF5IGZvciBEYXRlIHsKKysgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVy KSAtPiBmbXQ6OlJlc3VsdCB7CisrICAgICAgICBsZXQgKHksIG0sIGQpID0gc2VsZi50b195bWQo KTsKKysgICAgICAgIHdyaXRlIShmLCAie30tezowMn0tezowMn0iLCB5LCBtLCBkKQorKyAgICB9 CisrfQorKworKyNbY2ZnKHRlc3QpXQorK21vZCB0ZXN0cyB7CisrICAgIHVzZSBzdXBlcjo6RGF0 ZTsKKysKKysgICAgbWFjcm9fcnVsZXMhIHJlZmxleGl2ZV9kaXNwbGF5IHsKKysgICAgICAgICgk c3RyaW5nOmV4cHIpID0+ICgKKysgICAgICAgICAgICBhc3NlcnRfZXEhKERhdGU6OnBhcnNlKCRz dHJpbmcpLnVud3JhcCgpLnRvX3N0cmluZygpLCAkc3RyaW5nKTsKKysgICAgICAgICkKKysgICAg fQorKworKyAgICAjW3Rlc3RdCisrICAgIGZuIGRpc3BsYXkoKSB7CisrICAgICAgICByZWZsZXhp dmVfZGlzcGxheSEoIjIwMTktMDUtMDgiKTsKKysgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgi MjAwMC0wMS0wMSIpOworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDAwLTEyLTMxIik7 CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjIwOTAtMTItMzEiKTsKKysgICAgICAgIHJl ZmxleGl2ZV9kaXNwbGF5ISgiMTk5OS0wMi0xOSIpOworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3Bs YXkhKCI5OTk5LTEyLTMxIik7CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9saWIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25f Y2hlY2svc3JjL2xpYi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysr KyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvbGliLnJzCitAQCAtMCwwICsx LDQ5MyBAQAorKy8vISBUaGlzIHRpbnkgY3JhdGUgY2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3Ig aW5zdGFsbGVkIGBydXN0Y2AgbWVldHMgc29tZQorKy8vISB2ZXJzaW9uIHJlcXVpcmVtZW50cy4g VGhlIHZlcnNpb24gaXMgcXVlcmllZCBieSBjYWxsaW5nIHRoZSBSdXN0IGNvbXBpbGVyCisrLy8h IHdpdGggYC0tdmVyc2lvbmAuIFRoZSBwYXRoIHRvIHRoZSBjb21waWxlciBpcyBkZXRlcm1pbmVk IGZpcnN0IHZpYSB0aGUKKysvLyEgYFJVU1RDYCBlbnZpcm9ubWVudCB2YXJpYWJsZS4gSWYgaXQg aXMgbm90IHNldCwgdGhlbiBgcnVzdGNgIGlzIHVzZWQuIElmCisrLy8hIHRoYXQgZmFpbHMsIG5v IGRldGVybWluYXRpb24gaXMgbWFkZSwgYW5kIGNhbGxzIHJldHVybiBgTm9uZWAuCisrLy8hCisr Ly8hICMgRXhhbXBsZXMKKysvLyEKKysvLyEgKiBTZXQgYSBgY2ZnYCBmbGFnIGluIGBidWlsZC5y c2AgaWYgdGhlIHJ1bm5pbmcgY29tcGlsZXIgd2FzIGRldGVybWluZWQgdG8KKysvLyEgICBiZSBh dCBsZWFzdCB2ZXJzaW9uIGAxLjEzLjBgOgorKy8vIQorKy8vISAgIGBgYHJ1c3QKKysvLyEgICBl eHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKKysvLyEKKysvLyEgICBpZiBydXN0 Yzo6aXNfbWluX3ZlcnNpb24oIjEuMTMuMCIpLnVud3JhcF9vcihmYWxzZSkgeworKy8vISAgICAg ICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPXF1ZXN0aW9uX21hcmtfb3BlcmF0b3IiKTsKKysv LyEgICB9CisrLy8hICAgYGBgCisrLy8hCisrLy8hICAgU2VlIFtgaXNfbWF4X3ZlcnNpb25gXSBv ciBbYGlzX2V4YWN0X3ZlcnNpb25gXSB0byBjaGVjayBpZiB0aGUgY29tcGlsZXIKKysvLyEgICBp cyBfYXQgbW9zdF8gb3IgX2V4YWN0bHlfIGEgY2VydGFpbiB2ZXJzaW9uLgorKy8vIQorKy8vISAq IENoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgd2FzIHJlbGVhc2VkIG9uIG9yIGFmdGVy IGAyMDE4LTEyLTE4YDoKKysvLyEKKysvLyEgICBgYGBydXN0CisrLy8hICAgZXh0ZXJuIGNyYXRl IHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7CisrLy8hCisrLy8hICAgbWF0Y2ggcnVzdGM6OmlzX21p bl9kYXRlKCIyMDE4LTEyLTE4IikgeworKy8vISAgICAgICBTb21lKHRydWUpID0+ICJZZXAhIEl0 J3MgcmVjZW50ISIsCisrLy8hICAgICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBvbGRlci4i LAorKy8vISAgICAgICBOb25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZlcnNp b24uIgorKy8vISAgIH07CisrLy8hICAgYGBgCisrLy8hCisrLy8hICAgU2VlIFtgaXNfbWF4X2Rh dGVgXSBvciBbYGlzX2V4YWN0X2RhdGVgXSB0byBjaGVjayBpZiB0aGUgY29tcGlsZXIgd2FzCisr Ly8hICAgcmVsZWFzZWQgX3ByaW9yIHRvXyBvciBfZXhhY3RseSBvbl8gYSBjZXJ0YWluIGRhdGUu CisrLy8hCisrLy8hICogQ2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0cyBm ZWF0dXJlIGZsYWdzOgorKy8vIQorKy8vISAgIGBgYHJ1c3QKKysvLyEgICBleHRlcm4gY3JhdGUg dmVyc2lvbl9jaGVjayBhcyBydXN0YzsKKysvLyEKKysvLyEgICBtYXRjaCBydXN0Yzo6aXNfZmVh dHVyZV9mbGFnZ2FibGUoKSB7CisrLy8hICAgICAgIFNvbWUodHJ1ZSkgPT4gIlllcyEgSXQncyBh IGRldiBvciBuaWdodGx5IHJlbGVhc2UhIiwKKysvLyEgICAgICAgU29tZShmYWxzZSkgPT4gIk5v LCBpdCdzIHN0YWJsZSBvciBiZXRhLiIsCisrLy8hICAgICAgIE5vbmUgPT4gIkNvdWxkbid0IGRl dGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iCisrLy8hICAgfTsKKysvLyEgICBgYGAKKysvLyEK KysvLyEgKiBDaGVjayB0aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIHN1cHBvcnRzIGEgc3BlY2lm aWMgZmVhdHVyZToKKysvLyEKKysvLyEgICBgYGBydXN0CisrLy8hICAgZXh0ZXJuIGNyYXRlIHZl cnNpb25fY2hlY2sgYXMgcnVzdGM7CisrLy8hCisrLy8hICAgaWYgbGV0IFNvbWUodHJ1ZSkgPSBy dXN0Yzo6c3VwcG9ydHNfZmVhdHVyZSgiZG9jX2NmZyIpIHsKKysvLyEgICAgICBwcmludGxuISgi Y2FyZ286cnVzdGMtY2ZnPWhhc19kb2NfY2ZnIik7CisrLy8hICAgfQorKy8vISAgIGBgYAorKy8v IQorKy8vISAqIENoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgaXMgb24gdGhlIHN0YWJs ZSBjaGFubmVsOgorKy8vIQorKy8vISAgIGBgYHJ1c3QKKysvLyEgICBleHRlcm4gY3JhdGUgdmVy c2lvbl9jaGVjayBhcyBydXN0YzsKKysvLyEKKysvLyEgICBtYXRjaCBydXN0Yzo6Q2hhbm5lbDo6 cmVhZCgpIHsKKysvLyEgICAgICAgU29tZShjKSBpZiBjLmlzX3N0YWJsZSgpID0+IGZvcm1hdCEo IlllcyEgSXQncyBzdGFibGUuIiksCisrLy8hICAgICAgIFNvbWUoYykgPT4gZm9ybWF0ISgiTm8s IHRoZSBjaGFubmVsIHt9IGlzIG5vdCBzdGFibGUuIiwgYyksCisrLy8hICAgICAgIE5vbmUgPT4g Zm9ybWF0ISgiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIpCisrLy8hICAg fTsKKysvLyEgICBgYGAKKysvLyEKKysvLyEgVG8gaW50ZXJhY3Qgd2l0aCB0aGUgdmVyc2lvbiwg cmVsZWFzZSBkYXRlLCBhbmQgcmVsZWFzZSBjaGFubmVsIGFzIHN0cnVjdHMsCisrLy8hIHVzZSBb YFZlcnNpb25gXSwgW2BEYXRlYF0sIGFuZCBbYENoYW5uZWxgXSwgcmVzcGVjdGl2ZWx5LiBUaGUg W2B0cmlwbGUoKWBdCisrLy8hIGZ1bmN0aW9uIHJldHVybnMgYWxsIHRocmVlIHZhbHVlcyBlZmZp Y2llbnRseS4KKysvLyEKKysvLyEgIyBBbHRlcm5hdGl2ZXMKKysvLyEKKysvLyEgVGhpcyBjcmF0 ZSBpcyBkZWFkIHNpbXBsZSB3aXRoIG5vIGRlcGVuZGVuY2llcy4gSWYgeW91IG5lZWQgc29tZXRo aW5nIG1vcmUKKysvLyEgYW5kIGRvbid0IGNhcmUgYWJvdXQgcGFuaWNraW5nIGlmIHRoZSB2ZXJz aW9uIGNhbm5vdCBiZSBvYnRhaW5lZCwgb3IgaWYgeW91CisrLy8hIGRvbid0IG1pbmQgYWRkaW5n IGRlcGVuZGVuY2llcywgc2VlCisrLy8hIFtydXN0Y192ZXJzaW9uXShodHRwczovL2NyYXRlcy5p by9jcmF0ZXMvcnVzdGNfdmVyc2lvbikuCisrCisrIyFbYWxsb3coZGVwcmVjYXRlZCldCisrCisr bW9kIHZlcnNpb247CisrbW9kIGNoYW5uZWw7CisrbW9kIGRhdGU7CisrCisrdXNlIHN0ZDo6ZW52 OworK3VzZSBzdGQ6OnByb2Nlc3M6OkNvbW1hbmQ7CisrCisrI1tkb2MoaW5saW5lKV0gcHViIHVz ZSB2ZXJzaW9uOjoqOworKyNbZG9jKGlubGluZSldIHB1YiB1c2UgY2hhbm5lbDo6KjsKKysjW2Rv YyhpbmxpbmUpXSBwdWIgdXNlIGRhdGU6Oio7CisrCisrLy8vIFBhcnNlcyAodmVyc2lvbiwgZGF0 ZSkgYXMgYXZhaWxhYmxlIGZyb20gcnVzdGMgdmVyc2lvbiBzdHJpbmcuCisrZm4gdmVyc2lvbl9h bmRfZGF0ZV9mcm9tX3J1c3RjX3ZlcnNpb24oczogJnN0cikgLT4gKE9wdGlvbjxTdHJpbmc+LCBP cHRpb248U3RyaW5nPikgeworKyAgICBsZXQgbGFzdF9saW5lID0gcy5saW5lcygpLmxhc3QoKS51 bndyYXBfb3Iocyk7CisrICAgIGxldCBtdXQgY29tcG9uZW50cyA9IGxhc3RfbGluZS50cmltKCku c3BsaXQoIiAiKTsKKysgICAgbGV0IHZlcnNpb24gPSBjb21wb25lbnRzLm50aCgxKTsKKysgICAg bGV0IGRhdGUgPSBjb21wb25lbnRzLmZpbHRlcih8Y3wgYy5lbmRzX3dpdGgoJyknKSkubmV4dCgp CisrICAgICAgICAubWFwKHxzfCBzLnRyaW1fcmlnaHQoKS50cmltX3JpZ2h0X21hdGNoZXMoIiki KS50cmltX2xlZnQoKS50cmltX2xlZnRfbWF0Y2hlcygnKCcpKTsKKysgICAgKHZlcnNpb24ubWFw KHxzfCBzLnRvX3N0cmluZygpKSwgZGF0ZS5tYXAofHN8IHMudG9fc3RyaW5nKCkpKQorK30KKysK KysvLy8gUGFyc2VzICh2ZXJzaW9uLCBkYXRlKSBhcyBhdmFpbGFibGUgZnJvbSBydXN0YyB2ZXJi b3NlIHZlcnNpb24gb3V0cHV0LgorK2ZuIHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJi b3NlX3ZlcnNpb24oczogJnN0cikgLT4gKE9wdGlvbjxTdHJpbmc+LCBPcHRpb248U3RyaW5nPikg eworKyAgICBsZXQgKG11dCB2ZXJzaW9uLCBtdXQgZGF0ZSkgPSAoTm9uZSwgTm9uZSk7CisrICAg IGZvciBsaW5lIGluIHMubGluZXMoKSB7CisrICAgICAgICBsZXQgc3BsaXQgPSB8czogJnN0cnwg cy5zcGxpdG4oMiwgIjoiKS5udGgoMSkubWFwKHxzfCBzLnRyaW0oKS50b19zdHJpbmcoKSk7Cisr ICAgICAgICBtYXRjaCBsaW5lLnRyaW0oKS5zcGxpdCgiICIpLm50aCgwKSB7CisrICAgICAgICAg ICAgU29tZSgicnVzdGMiKSA9PiB7CisrICAgICAgICAgICAgICAgIGxldCAodiwgZCkgPSB2ZXJz aW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNfdmVyc2lvbihsaW5lKTsKKysgICAgICAgICAgICAgICAg dmVyc2lvbiA9IHZlcnNpb24ub3Iodik7CisrICAgICAgICAgICAgICAgIGRhdGUgPSBkYXRlLm9y KGQpOworKyAgICAgICAgICAgIH0sCisrICAgICAgICAgICAgU29tZSgicmVsZWFzZToiKSA9PiB2 ZXJzaW9uID0gc3BsaXQobGluZSksCisrICAgICAgICAgICAgU29tZSgiY29tbWl0LWRhdGU6Iikg aWYgbGluZS5lbmRzX3dpdGgoInVua25vd24iKSA9PiBkYXRlID0gTm9uZSwKKysgICAgICAgICAg ICBTb21lKCJjb21taXQtZGF0ZToiKSA9PiBkYXRlID0gc3BsaXQobGluZSksCisrICAgICAgICAg ICAgXyA9PiBjb250aW51ZQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgICh2ZXJzaW9uLCBk YXRlKQorK30KKysKKysvLy8gUmV0dXJucyAodmVyc2lvbiwgZGF0ZSkgYXMgYXZhaWxhYmxlIGZy b20gYHJ1c3RjIC0tdmVyc2lvbmAuCisrZm4gZ2V0X3ZlcnNpb25fYW5kX2RhdGUoKSAtPiBPcHRp b248KE9wdGlvbjxTdHJpbmc+LCBPcHRpb248U3RyaW5nPik+IHsKKysgICAgbGV0IHJ1c3RjID0g ZW52Ojp2YXIoIlJVU1RDIikudW53cmFwX29yX2Vsc2UofF98ICJydXN0YyIudG9fc3RyaW5nKCkp OworKyAgICBDb21tYW5kOjpuZXcocnVzdGMpLmFyZygiLS12ZXJib3NlIikuYXJnKCItLXZlcnNp b24iKS5vdXRwdXQoKS5vaygpCisrICAgICAgICAuYW5kX3RoZW4ofG91dHB1dHwgU3RyaW5nOjpm cm9tX3V0Zjgob3V0cHV0LnN0ZG91dCkub2soKSkKKysgICAgICAgIC5tYXAofHN8IHZlcnNpb25f YW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJib3NlX3ZlcnNpb24oJnMpKQorK30KKysKKysvLy8gUmVh ZHMgdGhlIHRyaXBsZSBvZiBbYFZlcnNpb25gXSwgW2BDaGFubmVsYF0sIGFuZCBbYERhdGVgXSBv ZiB0aGUgaW5zdGFsbGVkCisrLy8vIG9yIHJ1bm5pbmcgYHJ1c3RjYC4KKysvLy8KKysvLy8gSWYg YW55IGF0dHJpYnV0ZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCAoc2VlIHRoZSBbdG9wLWxldmVsCisr Ly8vIGRvY3VtZW50YXRpb25dKGNyYXRlKSksIHJldHVybnMgYE5vbmVgLgorKy8vLworKy8vLyBU byBvYnRhaW4gb25seSBvbmUgb2YgdGhyZWUgYXR0cmlidXRlcywgdXNlIFtgVmVyc2lvbjo6cmVh ZCgpYF0sCisrLy8vIFtgQ2hhbm5lbDo6cmVhZCgpYF0sIG9yIFtgRGF0ZTo6cmVhZCgpYF0uCisr cHViIGZuIHRyaXBsZSgpIC0+IE9wdGlvbjwoVmVyc2lvbiwgQ2hhbm5lbCwgRGF0ZSk+IHsKKysg ICAgbGV0ICh2ZXJzaW9uX3N0ciwgZGF0ZV9zdHIpID0gbWF0Y2ggZ2V0X3ZlcnNpb25fYW5kX2Rh dGUoKSB7CisrICAgICAgICBTb21lKChTb21lKHZlcnNpb24pLCBTb21lKGRhdGUpKSkgPT4gKHZl cnNpb24sIGRhdGUpLAorKyAgICAgICAgXyA9PiByZXR1cm4gTm9uZQorKyAgICB9OworKworKyAg ICAvLyBDYW4ndCB1c2UgYD9gIG9yIGB0cnkhYCBmb3IgYE9wdGlvbmAgaW4gMS4wLjAuCisrICAg IG1hdGNoIFZlcnNpb246OnBhcnNlKCZ2ZXJzaW9uX3N0cikgeworKyAgICAgICAgU29tZSh2ZXJz aW9uKSA9PiBtYXRjaCBDaGFubmVsOjpwYXJzZSgmdmVyc2lvbl9zdHIpIHsKKysgICAgICAgICAg ICBTb21lKGNoYW5uZWwpID0+IG1hdGNoIERhdGU6OnBhcnNlKCZkYXRlX3N0cikgeworKyAgICAg ICAgICAgICAgICBTb21lKGRhdGUpID0+IFNvbWUoKHZlcnNpb24sIGNoYW5uZWwsIGRhdGUpKSwK KysgICAgICAgICAgICAgICAgXyA9PiBOb25lLAorKyAgICAgICAgICAgIH0sCisrICAgICAgICAg ICAgXyA9PiBOb25lLAorKyAgICAgICAgfSwKKysgICAgICAgIF8gPT4gTm9uZQorKyAgICB9Cisr fQorKworKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCB3 YXMgcmVsZWFzZWQgKipvbiBvciBhZnRlcioqCisrLy8vIHNvbWUgZGF0ZS4KKysvLy8KKysvLy8g VGhlIGZvcm1hdCBvZiBgbWluX2RhdGVgIG11c3QgYmUgWVlZWS1NTS1ERC4gRm9yIGluc3RhbmNl OiBgMjAxNi0xMi0yMGAgb3IKKysvLy8gYDIwMTctMDEtMDlgLgorKy8vLworKy8vLyBJZiB0aGUg ZGF0ZSBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBhcnNlZCwgb3IgaWYgYG1pbl9kYXRlYCBjb3Vs ZCBub3QgYmUKKysvLy8gcGFyc2VkLCByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMg YHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1c3RjYAorKy8vLyB3YXMgcmVsZWFzZSBvbiBvciBh ZnRlciBgbWluX2RhdGVgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KKytwdWIgZm4gaXNfbWluX2Rh dGUobWluX2RhdGU6ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7CisrICAgIG1hdGNoIChEYXRlOjpy ZWFkKCksIERhdGU6OnBhcnNlKG1pbl9kYXRlKSkgeworKyAgICAgICAgKFNvbWUocnVzdGNfZGF0 ZSksIFNvbWUobWluX2RhdGUpKSA9PiBTb21lKHJ1c3RjX2RhdGUgPj0gbWluX2RhdGUpLAorKyAg ICAgICAgXyA9PiBOb25lCisrICAgIH0KKyt9CisrCisrLy8vIENoZWNrcyB0aGF0IHRoZSBydW5u aW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIHdhcyByZWxlYXNlZCAqKm9uIG9yIGJlZm9yZSoqCisr Ly8vIHNvbWUgZGF0ZS4KKysvLy8KKysvLy8gVGhlIGZvcm1hdCBvZiBgbWF4X2RhdGVgIG11c3Qg YmUgWVlZWS1NTS1ERC4gRm9yIGluc3RhbmNlOiBgMjAxNi0xMi0yMGAgb3IKKysvLy8gYDIwMTct MDEtMDlgLgorKy8vLworKy8vLyBJZiB0aGUgZGF0ZSBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBh cnNlZCwgb3IgaWYgYG1heF9kYXRlYCBjb3VsZCBub3QgYmUKKysvLy8gcGFyc2VkLCByZXR1cm5z IGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMgYHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1c3Rj YAorKy8vLyB3YXMgcmVsZWFzZSBvbiBvciBiZWZvcmUgYG1heF9kYXRlYCBhbmQgYGZhbHNlYCBv dGhlcndpc2UuCisrcHViIGZuIGlzX21heF9kYXRlKG1heF9kYXRlOiAmc3RyKSAtPiBPcHRpb248 Ym9vbD4geworKyAgICBtYXRjaCAoRGF0ZTo6cmVhZCgpLCBEYXRlOjpwYXJzZShtYXhfZGF0ZSkp IHsKKysgICAgICAgIChTb21lKHJ1c3RjX2RhdGUpLCBTb21lKG1heF9kYXRlKSkgPT4gU29tZShy dXN0Y19kYXRlIDw9IG1heF9kYXRlKSwKKysgICAgICAgIF8gPT4gTm9uZQorKyAgICB9CisrfQor KworKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCB3YXMg cmVsZWFzZWQgKipleGFjdGx5Kiogb24KKysvLy8gc29tZSBkYXRlLgorKy8vLworKy8vLyBUaGUg Zm9ybWF0IG9mIGBkYXRlYCBtdXN0IGJlIFlZWVktTU0tREQuIEZvciBpbnN0YW5jZTogYDIwMTYt MTItMjBgIG9yCisrLy8vIGAyMDE3LTAxLTA5YC4KKysvLy8KKysvLy8gSWYgdGhlIGRhdGUgY2Fu bm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBkYXRlYCBjb3VsZCBub3QgYmUgcGFy c2VkLAorKy8vLyByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMgYHRydWVgIGlmIHRo ZSBpbnN0YWxsZWQgYHJ1c3RjYCB3YXMKKysvLy8gcmVsZWFzZSBvbiBgZGF0ZWAgYW5kIGBmYWxz ZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBpc19leGFjdF9kYXRlKGRhdGU6ICZzdHIpIC0+IE9wdGlv bjxib29sPiB7CisrICAgIG1hdGNoIChEYXRlOjpyZWFkKCksIERhdGU6OnBhcnNlKGRhdGUpKSB7 CisrICAgICAgICAoU29tZShydXN0Y19kYXRlKSwgU29tZShkYXRlKSkgPT4gU29tZShydXN0Y19k YXRlID09IGRhdGUpLAorKyAgICAgICAgXyA9PiBOb25lCisrICAgIH0KKyt9CisrCisrLy8vIENo ZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIGlzICoqYXQgbGVhc3Qq KiBzb21lIG1pbmltdW0KKysvLy8gdmVyc2lvbi4KKysvLy8KKysvLy8gVGhlIGZvcm1hdCBvZiBg bWluX3ZlcnNpb25gIGlzIGEgc2VtYW50aWMgdmVyc2lvbjogYDEuMy4wYCwgYDEuMTUuMC1iZXRh YCwKKysvLy8gYDEuMTQuMGAsIGAxLjE2LjAtbmlnaHRseWAsIGV0Yy4KKysvLy8KKysvLy8gSWYg dGhlIHZlcnNpb24gY2Fubm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtaW5fdmVy c2lvbmAgY291bGQgbm90CisrLy8vIGJlIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lz ZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKKysvLy8gaXMgYXQgbGVh c3QgYG1pbl92ZXJzaW9uYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCisrcHViIGZuIGlzX21pbl92 ZXJzaW9uKG1pbl92ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4geworKyAgICBtYXRjaCAo VmVyc2lvbjo6cmVhZCgpLCBWZXJzaW9uOjpwYXJzZShtaW5fdmVyc2lvbikpIHsKKysgICAgICAg IChTb21lKHJ1c3RjX3ZlciksIFNvbWUobWluX3ZlcikpID0+IFNvbWUocnVzdGNfdmVyID49IG1p bl92ZXIpLAorKyAgICAgICAgXyA9PiBOb25lCisrICAgIH0KKyt9CisrCisrLy8vIENoZWNrcyB0 aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIGlzICoqYXQgbW9zdCoqIHNvbWUg bWF4aW11bQorKy8vLyB2ZXJzaW9uLgorKy8vLworKy8vLyBUaGUgZm9ybWF0IG9mIGBtYXhfdmVy c2lvbmAgaXMgYSBzZW1hbnRpYyB2ZXJzaW9uOiBgMS4zLjBgLCBgMS4xNS4wLWJldGFgLAorKy8v LyBgMS4xNC4wYCwgYDEuMTYuMC1uaWdodGx5YCwgZXRjLgorKy8vLworKy8vLyBJZiB0aGUgdmVy c2lvbiBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBhcnNlZCwgb3IgaWYgYG1heF92ZXJzaW9uYCBj b3VsZCBub3QKKysvLy8gYmUgcGFyc2VkLCByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVy bnMgYHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1c3RjYAorKy8vLyBpcyBhdCBtb3N0IGBtYXhf dmVyc2lvbmAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBpc19tYXhfdmVyc2lvbiht YXhfdmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKKysgICAgbWF0Y2ggKFZlcnNpb246 OnJlYWQoKSwgVmVyc2lvbjo6cGFyc2UobWF4X3ZlcnNpb24pKSB7CisrICAgICAgICAoU29tZShy dXN0Y192ZXIpLCBTb21lKG1heF92ZXIpKSA9PiBTb21lKHJ1c3RjX3ZlciA8PSBtYXhfdmVyKSwK KysgICAgICAgIF8gPT4gTm9uZQorKyAgICB9CisrfQorKworKy8vLyBDaGVja3MgdGhhdCB0aGUg cnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmV4YWN0bHkqKiBzb21lIHZlcnNpb24u CisrLy8vCisrLy8vIFRoZSBmb3JtYXQgb2YgYHZlcnNpb25gIGlzIGEgc2VtYW50aWMgdmVyc2lv bjogYDEuMy4wYCwgYDEuMTUuMC1iZXRhYCwKKysvLy8gYDEuMTQuMGAsIGAxLjE2LjAtbmlnaHRs eWAsIGV0Yy4KKysvLy8KKysvLy8gSWYgdGhlIHZlcnNpb24gY2Fubm90IGJlIHJldHJpZXZlZCBv ciBwYXJzZWQsIG9yIGlmIGB2ZXJzaW9uYCBjb3VsZCBub3QgYmUKKysvLy8gcGFyc2VkLCByZXR1 cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMgYHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1 c3RjYCBpcworKy8vLyBleGFjdGx5IGB2ZXJzaW9uYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCisr cHViIGZuIGlzX2V4YWN0X3ZlcnNpb24odmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsK KysgICAgbWF0Y2ggKFZlcnNpb246OnJlYWQoKSwgVmVyc2lvbjo6cGFyc2UodmVyc2lvbikpIHsK KysgICAgICAgIChTb21lKHJ1c3RjX3ZlciksIFNvbWUodmVyc2lvbikpID0+IFNvbWUocnVzdGNf dmVyID09IHZlcnNpb24pLAorKyAgICAgICAgXyA9PiBOb25lCisrICAgIH0KKyt9CisrCisrLy8v IENoZWNrcyB3aGV0aGVyIHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIHN1cHBvcnRz IGZlYXR1cmUgZmxhZ3MuCisrLy8vCisrLy8vIEluIG90aGVyIHdvcmRzLCBpZiB0aGUgY2hhbm5l bCBpcyBlaXRoZXIgIm5pZ2h0bHkiIG9yICJkZXYiLgorKy8vLworKy8vLyBOb3RlIHRoYXQgc3Vw cG9ydCBmb3Igc3BlY2lmaWMgYHJ1c3RjYCBmZWF0dXJlcyBjYW4gYmUgZW5hYmxlZCBvciBkaXNh YmxlZAorKy8vLyB2aWEgdGhlIGBhbGxvdy1mZWF0dXJlc2AgY29tcGlsZXIgZmxhZywgd2hpY2gg dGhpcyBmdW5jdGlvbiBfZG9lcyBub3RfCisrLy8vIGNoZWNrLiBUaGF0IGlzLCB0aGlzIGZ1bmN0 aW9uIF9kb2VzIG5vdF8gY2hlY2sgd2hldGhlciBhIF9zcGVjaWZpY18gZmVhdHVyZQorKy8vLyBp cyBzdXBwb3J0ZWQsIGJ1dCBpbnN0ZWFkIHdoZXRoZXIgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZCBh dCBhbGwuIFRvIGNoZWNrCisrLy8vIGZvciBzdXBwb3J0IGZvciBhIHNwZWNpZmljIGZlYXR1cmUs IHVzZSBbYHN1cHBvcnRzX2ZlYXR1cmUoKWBdLgorKy8vLworKy8vLyBJZiB0aGUgdmVyc2lvbiBj b3VsZCBub3QgYmUgZGV0ZXJtaW5lZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5z CisrLy8vIGB0cnVlYCBpZiB0aGUgcnVubmluZyB2ZXJzaW9uIHN1cHBvcnRzIGZlYXR1cmUgZmxh Z3MgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBpc19mZWF0dXJlX2ZsYWdnYWJsZSgp IC0+IE9wdGlvbjxib29sPiB7CisrICAgIENoYW5uZWw6OnJlYWQoKS5tYXAofGN8IGMuc3VwcG9y dHNfZmVhdHVyZXMoKSkKKyt9CisrCisrLy8vIENoZWNrcyB3aGV0aGVyIHRoZSBydW5uaW5nIG9y IGluc3RhbGxlZCBgcnVzdGNgIHN1cHBvcnRzIGBmZWF0dXJlYC4KKysvLy8KKysvLy8gUmV0dXJu cyBfdHJ1ZV8gX2lmZl8gW2Bpc19mZWF0dXJlX2ZsYWdnYWJsZSgpYF0gcmV0dXJucyBgdHJ1ZWAg X2FuZF8gdGhlCisrLy8vIGZlYXR1cmUgaXMgbm90IGRpc2FibGVkIHZpYSBleGNsdXNpb24gaW4g YGFsbG93LWZlYXR1cmVzYCB2aWEgYFJVU1RGTEFHU2Agb3IKKysvLy8gYENBUkdPX0VOQ09ERURf UlVTVEZMQUdTYC4gSWYgdGhlIHZlcnNpb24gY291bGQgbm90IGJlIGRldGVybWluZWQsIHJldHVy bnMKKysvLy8gYE5vbmVgLgorKy8vLworKy8vLyAjIEV4YW1wbGUKKysvLy8KKysvLy8gYGBgcnVz dAorKy8vLyB1c2UgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKKysvLy8KKysvLy8gaWYgbGV0IFNv bWUodHJ1ZSkgPSBydXN0Yzo6c3VwcG9ydHNfZmVhdHVyZSgiZG9jX2NmZyIpIHsKKysvLy8gICAg cHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1oYXNfZG9jX2NmZyIpOworKy8vLyB9CisrLy8vIGBg YAorK3B1YiBmbiBzdXBwb3J0c19mZWF0dXJlKGZlYXR1cmU6ICZzdHIpIC0+IE9wdGlvbjxib29s PiB7CisrICAgIG1hdGNoIGlzX2ZlYXR1cmVfZmxhZ2dhYmxlKCkgeworKyAgICAgICAgU29tZSh0 cnVlKSA9PiB7IC8qIGNvbnRpbnVlICovIH0KKysgICAgICAgIFNvbWUoZmFsc2UpID0+IHJldHVy biBTb21lKGZhbHNlKSwKKysgICAgICAgIE5vbmUgPT4gcmV0dXJuIE5vbmUsCisrICAgIH0KKysK KysgICAgbGV0IGVudl9mbGFncyA9IGVudjo6dmFyX29zKCJDQVJHT19FTkNPREVEX1JVU1RGTEFH UyIpCisrICAgICAgICAubWFwKHxmbGFnc3wgKGZsYWdzLCAnXHgxZicpKQorKyAgICAgICAgLm9y X2Vsc2UofHwgZW52Ojp2YXJfb3MoIlJVU1RGTEFHUyIpLm1hcCh8ZmxhZ3N8IChmbGFncywgJyAn KSkpOworKworKyAgICBpZiBsZXQgU29tZSgoZmxhZ3MsIGRlbGltKSkgPSBlbnZfZmxhZ3Mgewor KyAgICAgICAgY29uc3QgQUxMT1dfRkVBVFVSRVM6ICYnc3RhdGljIHN0ciA9ICJhbGxvdy1mZWF0 dXJlcz0iOworKworKyAgICAgICAgbGV0IHJ1c3RmbGFncyA9IGZsYWdzLnRvX3N0cmluZ19sb3Nz eSgpOworKyAgICAgICAgbGV0IGFsbG93X2ZlYXR1cmVzID0gcnVzdGZsYWdzLnNwbGl0KGRlbGlt KQorKyAgICAgICAgICAgIC5tYXAofGZsYWd8IGZsYWcudHJpbV9sZWZ0X21hdGNoZXMoIi1aIiku dHJpbSgpKQorKyAgICAgICAgICAgIC5maWx0ZXIofGZsYWd8IGZsYWcuc3RhcnRzX3dpdGgoQUxM T1dfRkVBVFVSRVMpKQorKyAgICAgICAgICAgIC5tYXAofGZsYWd8ICZmbGFnW0FMTE9XX0ZFQVRV UkVTLmxlbigpLi5dKTsKKysKKysgICAgICAgIGlmIGxldCBTb21lKGFsbG93X2ZlYXR1cmVzKSA9 IGFsbG93X2ZlYXR1cmVzLmxhc3QoKSB7CisrICAgICAgICAgICAgcmV0dXJuIFNvbWUoYWxsb3df ZmVhdHVyZXMuc3BsaXQoJywnKS5hbnkofGZ8IGYudHJpbSgpID09IGZlYXR1cmUpKTsKKysgICAg ICAgIH0KKysgICAgfQorKworKyAgICAvLyBJZiB0aGVyZSBhcmUgbm8gYFJVU1RGTEFHU2Agb3Ig YENBUkdPX0VOQ09ERURfUlVTVEZMQUdTYCBvciB0aGV5IGRvbid0CisrICAgIC8vIGNvbnRhaW4g YW4gYGFsbG93LWZlYXR1cmVzYCBmbGFnLCBhc3N1bWUgY29tcGlsZXIgYWxsb3dzIGFsbCBmZWF0 dXJlcy4KKysgICAgU29tZSh0cnVlKQorK30KKysKKysjW2NmZyh0ZXN0KV0KKyttb2QgdGVzdHMg eworKyAgICB1c2Ugc3RkOjp7ZW52LCBmc307CisrCisrICAgIHVzZSBzdXBlcjo6dmVyc2lvbl9h bmRfZGF0ZV9mcm9tX3J1c3RjX3ZlcnNpb247CisrICAgIHVzZSBzdXBlcjo6dmVyc2lvbl9hbmRf ZGF0ZV9mcm9tX3J1c3RjX3ZlcmJvc2VfdmVyc2lvbjsKKysKKysgICAgbWFjcm9fcnVsZXMhIGNo ZWNrX3BhcnNlIHsKKysgICAgICAgIChAICRmOmV4cHIsICRzOmV4cHIgPT4gJHY6ZXhwciwgJGQ6 ZXhwcikgPT4gKHsKKysgICAgICAgICAgICBpZiBsZXQgKFNvbWUodiksIGQpID0gJGYoJiRzKSB7 CisrICAgICAgICAgICAgICAgIGxldCBlX2Q6IE9wdGlvbjwmc3RyPiA9ICRkLmludG8oKTsKKysg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgodiwgZCksICgkdi50b19zdHJpbmcoKSwgZV9kLm1h cCh8c3wgcy5pbnRvKCkpKSk7CisrICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAg ICAgcGFuaWMhKCJ7Oj99IGRpZG4ndCBwYXJzZSBmb3IgdmVyc2lvbiB0ZXN0aW5nLiIsICRzKTsK KysgICAgICAgICAgICB9CisrICAgICAgICB9KTsKKysgICAgICAgICgkZjpleHByLCAkczpleHBy ID0+ICR2OmV4cHIsICRkOmV4cHIpID0+ICh7CisrICAgICAgICAgICAgbGV0IHdhcm4gPSAid2Fy bmluZzogaW52YWxpZCBsb2dnaW5nIHNwZWMgJ3dhcm5pbmcnLCBpZ25vcmluZyBpdCI7CisrICAg ICAgICAgICAgbGV0IHdhcm4yID0gIndhcm5pbmc6IHNvcnJ5LCBzb21ldGhpbmcgd2VudCB3cm9u ZyA6KHNhZCkiOworKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAkcyA9PiAkdiwgJGQp OworKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0ISgie31cbnt9Iiwgd2Fy biwgJHMpID0+ICR2LCAkZCk7CisrICAgICAgICAgICAgY2hlY2tfcGFyc2UhKEAgJGYsICZmb3Jt YXQhKCJ7fVxue30iLCB3YXJuMiwgJHMpID0+ICR2LCAkZCk7CisrICAgICAgICAgICAgY2hlY2tf cGFyc2UhKEAgJGYsICZmb3JtYXQhKCJ7fVxue31cbnt9Iiwgd2Fybiwgd2FybjIsICRzKSA9PiAk diwgJGQpOworKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0ISgie31cbnt9 XG57fSIsIHdhcm4yLCB3YXJuLCAkcykgPT4gJHYsICRkKTsKKysgICAgICAgIH0pCisrICAgIH0K KysKKysgICAgbWFjcm9fcnVsZXMhIGNoZWNrX3RlcnNlX3BhcnNlIHsKKysgICAgICAgICgkKCRz OmV4cHIgPT4gJHY6ZXhwciwgJGQ6ZXhwciwpKykgPT4geyQoCisrICAgICAgICAgICAgY2hlY2tf cGFyc2UhKHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJzaW9uLCAkcyA9PiAkdiwgJGQp OworKyAgICAgICAgKSt9CisrICAgIH0KKysKKysgICAgbWFjcm9fcnVsZXMhIGNoZWNrX3ZlcmJv c2VfcGFyc2UgeworKyAgICAgICAgKCQoJHM6ZXhwciA9PiAkdjpleHByLCAkZDpleHByLCkrKSA9 PiB7JCgKKysgICAgICAgICAgICBjaGVja19wYXJzZSEodmVyc2lvbl9hbmRfZGF0ZV9mcm9tX3J1 c3RjX3ZlcmJvc2VfdmVyc2lvbiwgJHMgPT4gJHYsICRkKTsKKysgICAgICAgICkrfQorKyAgICB9 CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF92ZXJzaW9uX3BhcnNlKCkgeworKyAgICAg ICAgY2hlY2tfdGVyc2VfcGFyc2UhIHsKKysgICAgICAgICAgICAicnVzdGMgMS4xOC4wIiA9PiAi MS4xOC4wIiwgTm9uZSwKKysgICAgICAgICAgICAicnVzdGMgMS44LjAiID0+ICIxLjguMCIsIE5v bmUsCisrICAgICAgICAgICAgInJ1c3RjIDEuMjAuMC1uaWdodGx5IiA9PiAiMS4yMC4wLW5pZ2h0 bHkiLCBOb25lLAorKyAgICAgICAgICAgICJydXN0YyAxLjIwIiA9PiAiMS4yMCIsIE5vbmUsCisr ICAgICAgICAgICAgInJ1c3RjIDEuMyIgPT4gIjEuMyIsIE5vbmUsCisrICAgICAgICAgICAgInJ1 c3RjIDEiID0+ICIxIiwgTm9uZSwKKysgICAgICAgICAgICAicnVzdGMgMS41LjEtYmV0YSIgPT4g IjEuNS4xLWJldGEiLCBOb25lLAorKyAgICAgICAgICAgICJydXN0YyAxLjIwLjAgKDIwMTctMDct MDkpIiA9PiAiMS4yMC4wIiwgU29tZSgiMjAxNy0wNy0wOSIpLAorKyAgICAgICAgICAgICJydXN0 YyAxLjIwLjAtZGV2ICgyMDE3LTA3LTA5KSIgPT4gIjEuMjAuMC1kZXYiLCBTb21lKCIyMDE3LTA3 LTA5IiksCisrICAgICAgICAgICAgInJ1c3RjIDEuMjAuMC1uaWdodGx5IChkODQ2OTNiOTMgMjAx Ny0wNy0wOSkiID0+ICIxLjIwLjAtbmlnaHRseSIsIFNvbWUoIjIwMTctMDctMDkiKSwKKysgICAg ICAgICAgICAicnVzdGMgMS4yMC4wIChkODQ2OTNiOTMgMjAxNy0wNy0wOSkiID0+ICIxLjIwLjAi LCBTb21lKCIyMDE3LTA3LTA5IiksCisrICAgICAgICAgICAgInJ1c3RjIDEuMzAuMC1uaWdodGx5 ICgzYmMyY2E3ZTQgMjAxOC0wOS0yMCkiID0+ICIxLjMwLjAtbmlnaHRseSIsIFNvbWUoIjIwMTgt MDktMjAiKSwKKysgICAgICAgIH07CisrICAgIH0KKysKKysgICAgI1t0ZXN0XQorKyAgICBmbiB0 ZXN0X3ZlcmJvc2VfdmVyc2lvbl9wYXJzZSgpIHsKKysgICAgICAgIGNoZWNrX3ZlcmJvc2VfcGFy c2UhIHsKKysgICAgICAgICAgICAicnVzdGMgMS4wLjAgKGE1OWRlMzdlOSAyMDE1LTA1LTEzKSAo YnVpbHQgMjAxNS0wNS0xNClcblwKKysgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0Y1xuXAor KyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogYTU5ZGUzN2U5OTA2MDE2MmEyNjc0ZTNmZjQ1 NDA5YWM3MzU5NWMwZVxuXAorKyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogMjAxNS0wNS0x M1xuXAorKyAgICAgICAgICAgICAgICBidWlsZC1kYXRlOiAyMDE1LTA1LTE0XG5cCisrICAgICAg ICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAorKyAgICAgICAgICAg ICAgICByZWxlYXNlOiAxLjAuMCIgPT4gIjEuMC4wIiwgU29tZSgiMjAxNS0wNS0xMyIpLAorKwor KyAgICAgICAgICAgICJydXN0YyAxLjAuMCAoYTU5ZGUzN2U5IDIwMTUtMDUtMTMpIChidWlsdCAy MDE1LTA1LTE0KVxuXAorKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogYTU5ZGUzN2U5OTA2 MDE2MmEyNjc0ZTNmZjQ1NDA5YWM3MzU5NWMwZVxuXAorKyAgICAgICAgICAgICAgICBjb21taXQt ZGF0ZTogMjAxNS0wNS0xM1xuXAorKyAgICAgICAgICAgICAgICBidWlsZC1kYXRlOiAyMDE1LTA1 LTE0XG5cCisrICAgICAgICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxu XAorKyAgICAgICAgICAgICAgICByZWxlYXNlOiAxLjAuMCIgPT4gIjEuMC4wIiwgU29tZSgiMjAx NS0wNS0xMyIpLAorKworKyAgICAgICAgICAgICJydXN0YyAxLjUwLjAgKGNiNzVhZDVkYiAyMDIx LTAyLTEwKVxuXAorKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCisrICAgICAgICAg ICAgICAgIGNvbW1pdC1oYXNoOiBjYjc1YWQ1ZGIwMjc4M2U4YjAyMjJmZWUzNjNjNWY2M2Y3ZTJj ZjViXG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiAyMDIxLTAyLTEwXG5cCisrICAg ICAgICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAorKyAgICAgICAg ICAgICAgICByZWxlYXNlOiAxLjUwLjAiID0+ICIxLjUwLjAiLCBTb21lKCIyMDIxLTAyLTEwIiks CisrCisrICAgICAgICAgICAgInJ1c3RjIDEuNTIuMC1uaWdodGx5ICgyMzQ3ODFhZmUgMjAyMS0w My0wNylcblwKKysgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0Y1xuXAorKyAgICAgICAgICAg ICAgICBjb21taXQtaGFzaDogMjM0NzgxYWZlMzNkM2YzMzliMDAyZjg1Zjk0ODA0NmQ4NDc2Y2Zj OVxuXAorKyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogMjAyMS0wMy0wN1xuXAorKyAgICAg ICAgICAgICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAg ICAgICAgcmVsZWFzZTogMS41Mi4wLW5pZ2h0bHlcblwKKysgICAgICAgICAgICAgICAgTExWTSB2 ZXJzaW9uOiAxMi4wLjAiID0+ICIxLjUyLjAtbmlnaHRseSIsIFNvbWUoIjIwMjEtMDMtMDciKSwK KysKKysgICAgICAgICAgICAicnVzdGMgMS40MS4xXG5cCisrICAgICAgICAgICAgICAgIGJpbmFy eTogcnVzdGNcblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IHVua25vd25cblwKKysg ICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IHVua25vd25cblwKKysgICAgICAgICAgICAgICAg aG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCisrICAgICAgICAgICAgICAgIHJlbGVh c2U6IDEuNDEuMVxuXAorKyAgICAgICAgICAgICAgICBMTFZNIHZlcnNpb246IDcuMCIgPT4gIjEu NDEuMSIsIE5vbmUsCisrCisrICAgICAgICAgICAgInJ1c3RjIDEuNDkuMFxuXAorKyAgICAgICAg ICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiB1 bmtub3duXG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiB1bmtub3duXG5cCisrICAg ICAgICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAorKyAgICAgICAg ICAgICAgICByZWxlYXNlOiAxLjQ5LjAiID0+ICIxLjQ5LjAiLCBOb25lLAorKworKyAgICAgICAg ICAgICJydXN0YyAxLjUwLjAgKEZlZG9yYSAxLjUwLjAtMS5mYzMzKVxuXAorKyAgICAgICAgICAg ICAgICBiaW5hcnk6IHJ1c3RjXG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiB1bmtu b3duXG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiB1bmtub3duXG5cCisrICAgICAg ICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAorKyAgICAgICAgICAg ICAgICByZWxlYXNlOiAxLjUwLjAiID0+ICIxLjUwLjAiLCBOb25lLAorKyAgICAgICAgfTsKKysg ICAgfQorKworKyAgICBmbiByZWFkX3N0YXRpYyh2ZXJib3NlOiBib29sLCBjaGFubmVsOiAmc3Ry LCBtaW5vcjogdXNpemUpIC0+IFN0cmluZyB7CisrICAgICAgICB1c2Ugc3RkOjpmczo6RmlsZTsK KysgICAgICAgIHVzZSBzdGQ6OnBhdGg6OlBhdGg7CisrICAgICAgICB1c2Ugc3RkOjppbzo6e0J1 ZlJlYWRlciwgUmVhZH07CisrCisrICAgICAgICBsZXQgc3ViZGlyID0gaWYgdmVyYm9zZSB7ICJ2 ZXJib3NlIiB9IGVsc2UgeyAidGVyc2UiIH07CisrICAgICAgICBsZXQgcGF0aCA9IFBhdGg6Om5l dyhTVEFUSUNfUEFUSCkKKysgICAgICAgICAgICAuam9pbihjaGFubmVsKQorKyAgICAgICAgICAg IC5qb2luKHN1YmRpcikKKysgICAgICAgICAgICAuam9pbihmb3JtYXQhKCJydXN0Yy0xLnt9LjAi LCBtaW5vcikpOworKworKyAgICAgICAgbGV0IGZpbGUgPSBGaWxlOjpvcGVuKHBhdGgpLnVud3Jh cCgpOworKyAgICAgICAgbGV0IG11dCBidWZfcmVhZGVyID0gQnVmUmVhZGVyOjpuZXcoZmlsZSk7 CisrICAgICAgICBsZXQgbXV0IGNvbnRlbnRzID0gU3RyaW5nOjpuZXcoKTsKKysgICAgICAgIGJ1 Zl9yZWFkZXIucmVhZF90b19zdHJpbmcoJm11dCBjb250ZW50cykudW53cmFwKCk7CisrICAgICAg ICBjb250ZW50cworKyAgICB9CisrCisrICAgIHN0YXRpYyBTVEFUSUNfUEFUSDogJidzdGF0aWMg c3RyID0gY29uY2F0IShlbnYhKCJDQVJHT19NQU5JRkVTVF9ESVIiKSwgIi9zdGF0aWMiKTsKKysK KysgICAgc3RhdGljIERBVEVTOiBbJidzdGF0aWMgc3RyOyA1MV0gPSBbCisrICAgICAgICAiMjAx NS0wNS0xMyIsICIyMDE1LTA2LTE5IiwgIjIwMTUtMDgtMDMiLCAiMjAxNS0wOS0xNSIsICIyMDE1 LTEwLTI3IiwKKysgICAgICAgICIyMDE1LTEyLTA0IiwgIjIwMTYtMDEtMTkiLCAiMjAxNi0wMi0y OSIsICIyMDE2LTA0LTExIiwgIjIwMTYtMDUtMTgiLAorKyAgICAgICAgIjIwMTYtMDctMDMiLCAi MjAxNi0wOC0xNSIsICIyMDE2LTA5LTIzIiwgIjIwMTYtMTEtMDciLCAiMjAxNi0xMi0xNiIsCisr ICAgICAgICAiMjAxNy0wMS0xOSIsICIyMDE3LTAzLTEwIiwgIjIwMTctMDQtMjQiLCAiMjAxNy0w Ni0wNiIsICIyMDE3LTA3LTE3IiwKKysgICAgICAgICIyMDE3LTA4LTI3IiwgIjIwMTctMTAtMDki LCAiMjAxNy0xMS0yMCIsICIyMDE4LTAxLTAxIiwgIjIwMTgtMDItMTIiLAorKyAgICAgICAgIjIw MTgtMDMtMjUiLCAiMjAxOC0wNS0wNyIsICIyMDE4LTA2LTE5IiwgIjIwMTgtMDctMzAiLCAiMjAx OC0wOS0xMSIsCisrICAgICAgICAiMjAxOC0xMC0yNCIsICIyMDE4LTEyLTA0IiwgIjIwMTktMDEt MTYiLCAiMjAxOS0wMi0yOCIsICIyMDE5LTA0LTEwIiwKKysgICAgICAgICIyMDE5LTA1LTIwIiwg IjIwMTktMDctMDMiLCAiMjAxOS0wOC0xMyIsICIyMDE5LTA5LTIzIiwgIjIwMTktMTEtMDQiLAor KyAgICAgICAgIjIwMTktMTItMTYiLCAiMjAyMC0wMS0yNyIsICIyMDIwLTAzLTA5IiwgIjIwMjAt MDQtMjAiLCAiMjAyMC0wNi0wMSIsCisrICAgICAgICAiMjAyMC0wNy0xMyIsICIyMDIwLTA4LTI0 IiwgIjIwMjAtMTAtMDciLCAiMjAyMC0xMS0xNiIsICIyMDIwLTEyLTI5IiwKKysgICAgICAgICIy MDIxLTAyLTEwIiwKKysgICAgXTsKKysKKysgICAgI1t0ZXN0XQorKyAgICBmbiB0ZXN0X3N0YWJs ZV9jb21wYXRpYmlsaXR5KCkgeworKyAgICAgICAgaWYgZW52Ojp2YXJfb3MoIkZPUkNFX1NUQVRJ QyIpLmlzX25vbmUoKSAmJiBmczo6bWV0YWRhdGEoU1RBVElDX1BBVEgpLmlzX2VycigpIHsKKysg ICAgICAgICAgICAvLyBXZSBleGNsdWRlIGAvc3RhdGljYCB3aGVuIHdlIHBhY2thZ2UgYHZlcnNp b25fY2hlY2tgLCBzbyBkb24ndAorKyAgICAgICAgICAgIC8vIHJ1biBpZiBzdGF0aWMgZmlsZXMg YXJlbid0IHByZXNlbnQgdW5sZXNzIHdlIGtub3cgdGhleSBzaG91bGQgYmUuCisrICAgICAgICAg ICAgcmV0dXJuOworKyAgICAgICAgfQorKworKyAgICAgICAgLy8gRW5zdXJlIHdlIGNhbiBwYXJz ZSBhbGwgb3V0cHV0IGZyb20gYWxsIExpbnV4IHN0YWJsZSByZWxlYXNlcy4KKysgICAgICAgIGZv ciB2IGluIDAuLkRBVEVTLmxlbigpIHsKKysgICAgICAgICAgICBsZXQgKHZlcnNpb24sIGRhdGUp ID0gKCZmb3JtYXQhKCIxLnt9LjAiLCB2KSwgU29tZShEQVRFU1t2XSkpOworKyAgICAgICAgICAg IGNoZWNrX3RlcnNlX3BhcnNlIShyZWFkX3N0YXRpYyhmYWxzZSwgInN0YWJsZSIsIHYpID0+IHZl cnNpb24sIGRhdGUsKTsKKysgICAgICAgICAgICBjaGVja192ZXJib3NlX3BhcnNlIShyZWFkX3N0 YXRpYyh0cnVlLCAic3RhYmxlIiwgdikgPT4gdmVyc2lvbiwgZGF0ZSwpOworKyAgICAgICAgfQor KyAgICB9CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF9wYXJzZV9jdXJyZW50KCkgewor KyAgICAgICAgbGV0ICh2ZXJzaW9uLCBjaGFubmVsKSA9ICg6OlZlcnNpb246OnJlYWQoKSwgOjpD aGFubmVsOjpyZWFkKCkpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmlzX3NvbWUoKSk7Cisr ICAgICAgICBhc3NlcnQhKGNoYW5uZWwuaXNfc29tZSgpKTsKKysKKysgICAgICAgIGlmIGxldCBP ayhrbm93bl9jaGFubmVsKSA9IGVudjo6dmFyKCJLTk9XTl9DSEFOTkVMIikgeworKyAgICAgICAg ICAgIGFzc2VydF9lcSEoY2hhbm5lbCwgOjpDaGFubmVsOjpwYXJzZSgma25vd25fY2hhbm5lbCkp OworKyAgICAgICAgfQorKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv dmVyc2lvbl9jaGVjay9zcmMvdmVyc2lvbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9j aGVjay9zcmMvdmVyc2lvbi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwK KysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvdmVyc2lvbi5ycworQEAg LTAsMCArMSwzMTYgQEAKKyt1c2Ugc3RkOjpmbXQ7CisrCisrLy8vIFZlcnNpb24gbnVtYmVyOiBg bWFqb3IubWlub3IucGF0Y2hgLCBpZ25vcmluZyByZWxlYXNlIGNoYW5uZWwuCisrI1tkZXJpdmUo UGFydGlhbEVxLCBFcSwgQ29weSwgQ2xvbmUsIFBhcnRpYWxPcmQsIE9yZCldCisrcHViIHN0cnVj dCBWZXJzaW9uKHU2NCk7CisrCisraW1wbCBWZXJzaW9uIHsKKysgICAgLy8vIFJlYWRzIHRoZSB2 ZXJzaW9uIG9mIHRoZSBydW5uaW5nIGNvbXBpbGVyLiBJZiBpdCBjYW5ub3QgYmUgZGV0ZXJtaW5l ZAorKyAgICAvLy8gKHNlZSB0aGUgW3RvcC1sZXZlbCBkb2N1bWVudGF0aW9uXShjcmF0ZSkpLCBy ZXR1cm5zIGBOb25lYC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisr ICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKKysg ICAgLy8vCisrICAgIC8vLyBtYXRjaCBWZXJzaW9uOjpyZWFkKCkgeworKyAgICAvLy8gICAgIFNv bWUoZCkgPT4gZm9ybWF0ISgiVmVyc2lvbiBpczoge30iLCBkKSwKKysgICAgLy8vICAgICBOb25l ID0+IGZvcm1hdCEoIkZhaWxlZCB0byByZWFkIHRoZSB2ZXJzaW9uLiIpCisrICAgIC8vLyB9Owor KyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiByZWFkKCkgLT4gT3B0aW9uPFZlcnNpb24+IHsKKysg ICAgICAgIDo6Z2V0X3ZlcnNpb25fYW5kX2RhdGUoKQorKyAgICAgICAgICAgIC5hbmRfdGhlbih8 KHZlcnNpb24sIF8pfCB2ZXJzaW9uKQorKyAgICAgICAgICAgIC5hbmRfdGhlbih8dmVyc2lvbnwg VmVyc2lvbjo6cGFyc2UoJnZlcnNpb24pKQorKyAgICB9CisrCisrCisrICAgIC8vLyBQYXJzZSBh IFJ1c3QgcmVsZWFzZSB2ZXJzaW9uIChvZiB0aGUgZm9ybQorKyAgICAvLy8gYG1ham9yWy5taW5v clsucGF0Y2hbLWNoYW5uZWxdXV1gKSwgaWdub3JpbmcgdGhlIHJlbGVhc2UgY2hhbm5lbCwgaWYK KysgICAgLy8vIGFueS4gUmV0dXJucyBgTm9uZWAgaWYgYHZlcnNpb25gIGlzIG5vdCBhIHZhbGlk IFJ1c3QgdmVyc2lvbiBzdHJpbmcuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAg IC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNp b247CisrICAgIC8vLworKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4x OC4wIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4xOC4w IikpOworKyAgICAvLy8KKysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEu MjAuMC1uaWdodGx5IikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhhY3Rs eSgiMS4yMC4wIikpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMjAuMC1i ZXRhIikpOworKyAgICAvLy8KKysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2Uo IjEuMyIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMy4w IikpOworKyAgICAvLy8KKysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEi KS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjAuMCIpKTsK KysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCJvbmUudHdvLnRocmVl IikuaXNfbm9uZSgpKTsKKysgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIjEuNjU1MzYu MiIpLmlzX25vbmUoKSk7CisrICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCIxLiAyIiku aXNfbm9uZSgpKTsKKysgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIiIpLmlzX25vbmUo KSk7CisrICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCIxLiIpLmlzX25vbmUoKSk7Cisr ICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCIxLjIuMy40IikuaXNfbm9uZSgpKTsKKysg ICAgLy8vIGBgYAorKyAgICBwdWIgZm4gcGFyc2UodmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPFZl cnNpb24+IHsKKysgICAgICAgIGxldCBzcGxpdHMgPSB2ZXJzaW9uLnNwbGl0KCctJykKKysgICAg ICAgICAgICAubnRoKDApCisrICAgICAgICAgICAgLnVud3JhcF9vcigiIikKKysgICAgICAgICAg ICAuc3BsaXQoJy4nKQorKyAgICAgICAgICAgIC5tYXAofHN8IHMucGFyc2U6Ojx1MTY+KCkpOwor KworKyAgICAgICAgbGV0IG11dCBtbXAgPSBbMHUxNjsgM107CisrICAgICAgICBmb3IgKGksIHNw bGl0KSBpbiBzcGxpdHMuZW51bWVyYXRlKCkgeworKyAgICAgICAgICAgIG1tcFtpXSA9IG1hdGNo IChpLCBzcGxpdCkgeworKyAgICAgICAgICAgICAgICAoMywgXykgfCAoXywgRXJyKF8pKSA9PiBy ZXR1cm4gTm9uZSwKKysgICAgICAgICAgICAgICAgKF8sIE9rKHYpKSA9PiB2LAorKyAgICAgICAg ICAgIH07CisrICAgICAgICB9CisrCisrICAgICAgICBsZXQgKG1haiwgbWluLCBwYXRjaCkgPSAo bW1wWzBdLCBtbXBbMV0sIG1tcFsyXSk7CisrICAgICAgICBTb21lKFZlcnNpb246OmZyb21fbW1w KG1haiwgbWluLCBwYXRjaCkpCisrICAgIH0KKysKKysgICAgLy8vIENyZWF0ZXMgYSBgVmVyc2lv bmAgZnJvbSBgKG1ham9yLCBtaW5vciwgcGF0Y2gpYCB2ZXJzaW9uIGNvbXBvbmVudHMuCisrICAg IC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAg ICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247CisrICAgIC8vLworKyAgICAvLy8gYXNz ZXJ0IShWZXJzaW9uOjpmcm9tX21tcCgxLCAzNSwgMCkuZXhhY3RseSgiMS4zNS4wIikpOworKyAg ICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpmcm9tX21tcCgxLCAzMywgMCkuZXhhY3RseSgiMS4zMy4w IikpOworKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpmcm9tX21tcCgxLCAzNSwgMSkuZXhhY3Rs eSgiMS4zNS4xIikpOworKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpmcm9tX21tcCgxLCAxMywg MikuZXhhY3RseSgiMS4xMy4yIikpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBmcm9tX21t cChtYWpvcjogdTE2LCBtaW5vcjogdTE2LCBwYXRjaDogdTE2KSAtPiBWZXJzaW9uIHsKKysgICAg ICAgIFZlcnNpb24oKChtYWpvciBhcyB1NjQpIDw8IDMyKSB8ICgobWlub3IgYXMgdTY0KSA8PCAx NikgfCBwYXRjaCBhcyB1NjQpCisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMgdGhlIGAobWFq b3IsIG1pbm9yLCBwYXRjaClgIHZlcnNpb24gY29tcG9uZW50cyBvZiBgc2VsZmAuCisrICAgIC8v LworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAv Ly8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0 X2VxIShWZXJzaW9uOjpwYXJzZSgiMS4zNS4wIikudW53cmFwKCkudG9fbW1wKCksICgxLCAzNSwg MCkpOworKyAgICAvLy8gYXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgiMS4zMy4wIikudW53cmFw KCkudG9fbW1wKCksICgxLCAzMywgMCkpOworKyAgICAvLy8gYXNzZXJ0X2VxIShWZXJzaW9uOjpw YXJzZSgiMS4zNS4xIikudW53cmFwKCkudG9fbW1wKCksICgxLCAzNSwgMSkpOworKyAgICAvLy8g YXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgiMS4xMy4yIikudW53cmFwKCkudG9fbW1wKCksICgx LCAxMywgMikpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiB0b19tbXAoJnNlbGYpIC0+ICh1 MTYsIHUxNiwgdTE2KSB7CisrICAgICAgICBsZXQgbWFqb3IgPSBzZWxmLjAgPj4gMzI7CisrICAg ICAgICBsZXQgbWlub3IgPSBzZWxmLjAgPj4gMTY7CisrICAgICAgICBsZXQgcGF0Y2ggPSBzZWxm LjA7CisrICAgICAgICAobWFqb3IgYXMgdTE2LCBtaW5vciBhcyB1MTYsIHBhdGNoIGFzIHUxNikK KysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIGlzIGdyZWF0ZXIg dGhhbiBvciBlcXVhbCB0byBgdmVyc2lvbmAuCisrICAgIC8vLworKyAgICAvLy8gSWYgYHZlcnNp b25gIGlzIGdyZWF0ZXIgdGhhbiBgc2VsZmAsIG9yIGlmIGB2ZXJzaW9uYCBpcyBub3QgYSB2YWxp ZCBSdXN0CisrICAgIC8vLyB2ZXJzaW9uIHN0cmluZywgcmV0dXJucyBgZmFsc2VgLgorKyAgICAv Ly8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAg Ly8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAgICAvLy8KKysgICAgLy8vIGxldCB2 ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMzUuMCIpLnVud3JhcCgpOworKyAgICAvLy8KKysg ICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4zMy4wIikpOworKyAgICAvLy8gYXNz ZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjM1LjAiKSk7CisrICAgIC8vLyBhc3NlcnQhKHZlcnNp b24uYXRfbGVhc3QoIjEuMTMuMiIpKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKCF2ZXJz aW9uLmF0X2xlYXN0KCIxLjM1LjEiKSk7CisrICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmF0X2xl YXN0KCIxLjU1LjAiKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9u OjpwYXJzZSgiMS4xMi41IikudW53cmFwKCk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISh2 ZXJzaW9uLmF0X2xlYXN0KCIxLjEyLjAiKSk7CisrICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmF0 X2xlYXN0KCIxLjM1LjAiKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIGF0X2xlYXN0KCZz ZWxmLCB2ZXJzaW9uOiAmc3RyKSAtPiBib29sIHsKKysgICAgICAgIFZlcnNpb246OnBhcnNlKHZl cnNpb24pCisrICAgICAgICAgICAgLm1hcCh8dmVyc2lvbnwgc2VsZiA+PSAmdmVyc2lvbikKKysg ICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5z IGB0cnVlYCBpZiBgc2VsZmAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGB2ZXJzaW9uYC4KKysg ICAgLy8vCisrICAgIC8vLyBJZiBgdmVyc2lvbmAgaXMgbGVzcyB0aGFuIGBzZWxmYCwgb3IgaWYg YHZlcnNpb25gIGlzIG5vdCBhIHZhbGlkIFJ1c3QKKysgICAgLy8vIHZlcnNpb24gc3RyaW5nLCBy ZXR1cm5zIGBmYWxzZWAuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLwor KyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247Cisr ICAgIC8vLworKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4zNS4wIiku dW53cmFwKCk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X21vc3QoIjEu MzUuMSIpKTsKKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9tb3N0KCIxLjU1LjAiKSk7Cisr ICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRfbW9zdCgiMS4zNS4wIikpOworKyAgICAvLy8KKysg ICAgLy8vIGFzc2VydCEoIXZlcnNpb24uYXRfbW9zdCgiMS4zMy4wIikpOworKyAgICAvLy8gYXNz ZXJ0ISghdmVyc2lvbi5hdF9tb3N0KCIxLjEzLjIiKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHVi IGZuIGF0X21vc3QoJnNlbGYsIHZlcnNpb246ICZzdHIpIC0+IGJvb2wgeworKyAgICAgICAgVmVy c2lvbjo6cGFyc2UodmVyc2lvbikKKysgICAgICAgICAgICAubWFwKHx2ZXJzaW9ufCBzZWxmIDw9 ICZ2ZXJzaW9uKQorKyAgICAgICAgICAgIC51bndyYXBfb3IoZmFsc2UpCisrICAgIH0KKysKKysg ICAgLy8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBpcyBleGFjdGx5IGVxdWFsIHRvIGB2ZXJz aW9uYC4KKysgICAgLy8vCisrICAgIC8vLyBJZiBgdmVyc2lvbmAgaXMgbm90IGVxdWFsIHRvIGBz ZWxmYCwgb3IgaWYgYHZlcnNpb25gIGlzIG5vdCBhIHZhbGlkIFJ1c3QKKysgICAgLy8vIHZlcnNp b24gc3RyaW5nLCByZXR1cm5zIGBmYWxzZWAuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxl CisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6 OlZlcnNpb247CisrICAgIC8vLworKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJz ZSgiMS4zNS4wIikudW53cmFwKCk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9u LmV4YWN0bHkoIjEuMzUuMCIpKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9u LmV4YWN0bHkoIjEuMzMuMCIpKTsKKysgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgi MS4zNS4xIikpOworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjEzLjIiKSk7 CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIGV4YWN0bHkoJnNlbGYsIHZlcnNpb246ICZzdHIp IC0+IGJvb2wgeworKyAgICAgICAgVmVyc2lvbjo6cGFyc2UodmVyc2lvbikKKysgICAgICAgICAg ICAubWFwKHx2ZXJzaW9ufCBzZWxmID09ICZ2ZXJzaW9uKQorKyAgICAgICAgICAgIC51bndyYXBf b3IoZmFsc2UpCisrICAgIH0KKyt9CisrCisraW1wbCBmbXQ6OkRpc3BsYXkgZm9yIFZlcnNpb24g eworKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVz dWx0IHsKKysgICAgICAgIGxldCAobWFqb3IsIG1pbm9yLCBwYXRjaCkgPSBzZWxmLnRvX21tcCgp OworKyAgICAgICAgd3JpdGUhKGYsICJ7fS57fS57fSIsIG1ham9yLCBtaW5vciwgcGF0Y2gpCisr ICAgIH0KKyt9CisrCisraW1wbCBmbXQ6OkRlYnVnIGZvciBWZXJzaW9uIHsKKysgICAgZm4gZm10 KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CisrICAgICAg ICAvLyBXZSBkb24ndCB1c2UgYGRlYnVnXypgIGJlY2F1c2UgaXQncyBub3QgYXZhaWxhYmxlIGlu IGAxLjAuMGAuCisrICAgICAgICB3cml0ZSEoZiwgIlZlcnNpb24oezo/fSwgezo/fSkiLCBzZWxm LjAsIHNlbGYudG9fbW1wKCkpCisrICAgIH0KKyt9CisrCisrI1tjZmcodGVzdCldCisrbW9kIHRl c3RzIHsKKysgICAgdXNlIHN1cGVyOjpWZXJzaW9uOworKworKyAgICBtYWNyb19ydWxlcyEgYXNz ZXJ0X3RvX21tcCB7CisrICAgICAgICAvLyBXZSBkb24ndCB1c2UgYC5pbnRvOjo8T3B0aW9uPF8+ PmAgYmVjYXVzZSBpdCdzIG5vdCBhdmFpbGFibGUgaW4gMS4wLgorKyAgICAgICAgLy8gV2UgZG9u J3QgdXNlIHRoZSBtZXNzYWdlIHBhcnQgb2YgYGFzc2VydCFgIGZvciB0aGUgc2FtZSByZWFzb24u CisrICAgICAgICAoJHM6ZXhwciwgTm9uZSkgPT4gKAorKyAgICAgICAgICAgIGFzc2VydF9lcSEo VmVyc2lvbjo6cGFyc2UoJHMpLCBOb25lKTsKKysgICAgICAgICk7CisrICAgICAgICAoJHM6ZXhw ciwgJG1tcDpleHByKSA9PiAoCisrICAgICAgICAgICAgYXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJz ZSgkcykubWFwKHx2fCB2LnRvX21tcCgpKSwgU29tZSgkbW1wKSk7CisrICAgICAgICApCisrICAg IH0KKysKKysgICAgbWFjcm9fcnVsZXMhIGFzc2VydF9mcm9tX21tcCB7CisrICAgICAgICAoKCR4 OmV4cHIsICR5OmV4cHIsICR6OmV4cHIpID0+ICRzOmV4cHIpID0+IHsKKysgICAgICAgICAgICBh c3NlcnRfZXEhKFNvbWUoVmVyc2lvbjo6ZnJvbV9tbXAoJHgsICR5LCAkeikpLCBWZXJzaW9uOjpw YXJzZSgkcykpOworKyAgICAgICAgfTsKKysgICAgfQorKworKyAgICAjW3Rlc3RdCisrICAgIGZu IHRlc3Rfc3RyX3RvX21tcCgpIHsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxIiwgKDEsIDAs IDApKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjIiLCAoMSwgMiwgMCkpOworKyAgICAg ICAgYXNzZXJ0X3RvX21tcCEoIjEuMTguMCIsICgxLCAxOCwgMCkpOworKyAgICAgICAgYXNzZXJ0 X3RvX21tcCEoIjMuMTkuMCIsICgzLCAxOSwgMCkpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEo IjEuMTkuMC1uaWdodGx5IiwgKDEsIDE5LCAwKSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgi MS4xMi4yMzQ5IiwgKDEsIDEyLCAyMzQ5KSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMC4x MiIsICgwLCAxMiwgMCkpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMTIuNSIsICgxLCAx MiwgNSkpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMTIiLCAoMSwgMTIsIDApKTsKKysg ICAgICAgIGFzc2VydF90b19tbXAhKCIxIiwgKDEsIDAsIDApKTsKKysgICAgICAgIGFzc2VydF90 b19tbXAhKCIxLjQuNC1uaWdodGx5IChkODQ2OTNiOTMgMjAxNy0wNy0wOSkpIiwgKDEsIDQsIDQp KTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjU4ODc5LjQ0NzgtZGV2IiwgKDEsIDU4ODc5 LCA0NDc4KSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS41ODg3OS40NDc4LWRldiAoZDg0 NjkzYjkzIDIwMTctMDctMDkpKSIsICgxLCA1ODg3OSwgNDQ3OCkpOworKyAgICB9CisrCisrICAg ICNbdGVzdF0KKysgICAgZm4gdGVzdF9tYWxmb3JtZWQoKSB7CisrICAgICAgICBhc3NlcnRfdG9f bW1wISgiMS42NTUzNi4yIiwgTm9uZSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiLTEuMi4z IiwgTm9uZSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4gMiIsIE5vbmUpOworKyAgICAg ICAgYXNzZXJ0X3RvX21tcCEoIiIsIE5vbmUpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIiAi LCBOb25lKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIuIiwgTm9uZSk7CisrICAgICAgICBh c3NlcnRfdG9fbW1wISgib25lIiwgTm9uZSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4i LCBOb25lKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjIuMy40LjUuNiIsIE5vbmUpOwor KyAgICB9CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF9mcm9tX21tcCgpIHsKKysgICAg ICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDE4LCAwKSA9PiAiMS4xOC4wIik7CisrICAgICAgICBh c3NlcnRfZnJvbV9tbXAhKCgzLCAxOSwgMCkgPT4gIjMuMTkuMCIpOworKyAgICAgICAgYXNzZXJ0 X2Zyb21fbW1wISgoMSwgMTksIDApID0+ICIxLjE5LjAiKTsKKysgICAgICAgIGFzc2VydF9mcm9t X21tcCEoKDEsIDEyLCAyMzQ5KSA9PiAiMS4xMi4yMzQ5Iik7CisrICAgICAgICBhc3NlcnRfZnJv bV9tbXAhKCgwLCAxMiwgMCkgPT4gIjAuMTIiKTsKKysgICAgICAgIGFzc2VydF9mcm9tX21tcCEo KDEsIDEyLCA1KSA9PiAiMS4xMi41Iik7CisrICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAx MiwgMCkgPT4gIjEuMTIiKTsKKysgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDAsIDApID0+ ICIxIik7CisrICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCA0LCA0KSA9PiAiMS40LjQiKTsK KysgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDU4ODc5LCA0NDc4KSA9PiAiMS41ODg3OS40 NDc4Iik7CisrICAgIH0KKysKKysgICAgI1t0ZXN0XQorKyAgICBmbiB0ZXN0X2NvbXBhcmlzb25z KCkgeworKyAgICAgICAgbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4xOC4wIikudW53 cmFwKCk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4xOC4wIikpOworKyAg ICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjEyLjAiKSk7CisrICAgICAgICBhc3Nl cnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMTIiKSk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24u YXRfbGVhc3QoIjEiKSk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24uYXRfbW9zdCgiMS4xOC4x IikpOworKyAgICAgICAgYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjE5LjAiKSk7CisrICAg ICAgICBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMTguMSIpKTsKKysKKysgICAgICAgIGxl dCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMjAuMC1uaWdodGx5IikudW53cmFwKCk7Cisr ICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4yMC4wLWJldGEiKSk7CisrICAgICAg ICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4yMC4wLW5pZ2h0bHkiKSk7CisrICAgICAgICBh c3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4yMC4wIikpOworKyAgICAgICAgYXNzZXJ0ISghdmVy c2lvbi5leGFjdGx5KCIxLjE5IikpOworKworKyAgICAgICAgbGV0IHZlcnNpb24gPSBWZXJzaW9u OjpwYXJzZSgiMS4zIikudW53cmFwKCk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3Rs eSgiMS4zLjAiKSk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4zLjAtc3Rh YmxlIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMyIpKTsKKysgICAg ICAgIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS41LjAtc3RhYmxlIikpOworKworKyAgICAg ICAgbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMSIpLnVud3JhcCgpOworKyAgICAgICAg YXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMC4wIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJz aW9uLmV4YWN0bHkoIjEuMCIpKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIx IikpOworKworKyAgICAgICAgYXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgib25lLnR3by50aHJlZSIp LmlzX25vbmUoKSk7CisrICAgIH0KKysKKysgICAgbWFjcm9fcnVsZXMhIHJlZmxleGl2ZV9kaXNw bGF5IHsKKysgICAgICAgICgkczpleHByKSA9PiAoCisrICAgICAgICAgICAgYXNzZXJ0X2VxIShW ZXJzaW9uOjpwYXJzZSgkcykudW53cmFwKCkudG9fc3RyaW5nKCksICRzKTsKKysgICAgICAgICkK KysgICAgfQorKworKyAgICAjW3Rlc3RdCisrICAgIGZuIGRpc3BsYXkoKSB7CisrICAgICAgICBy ZWZsZXhpdmVfZGlzcGxheSEoIjEuMC4wIik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEo IjEuMi4zIik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjEuMTIuMTQzOCIpOworKyAg ICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIxLjQ0LjAiKTsKKysgICAgICAgIHJlZmxleGl2ZV9k aXNwbGF5ISgiMi40NC4wIik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjIzNDU5LjI4 OTIzLjM0ODMiKTsKKysgICAgfQorK30KCmRpZmYgLS1naXQgYS9zZWFtb25rZXktMi41My4yNC1t b3ppbGxhLTIwMzMyNzkucGF0Y2ggYi9zZWFtb25rZXktMi41My4yNC1tb3ppbGxhLTIwMzMyNzku cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc5NzM3NAotLS0gL2Rl di9udWxsCisrKyBiL3NlYW1vbmtleS0yLjUzLjI0LW1vemlsbGEtMjAzMzI3OS5wYXRjaApAQCAt MCwwICsxLDE5NyBAQAorIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKKyMgVXNlciBIZW5yaSBTaXZvbmVu IDxoc2l2b25lbkBoc2l2b25lbi5maT4KKyMgRGF0ZSAxNzc2NzU1MzYwIDAKKyMgTm9kZSBJRCBl YzFkZDA1ZmQ1Nzg1OTg1YjdiZDk2MzY0MDU2ODhkMWQ2MWE5NWQ5CisjIFBhcmVudCAgNzU3N2M0 NzJjM2YxOGNhNDk3YWI5MmIxNWRmN2EwMWU3MTk0ZmZkNgorQnVnIDIwMzMyNzkgLSBNYWtlIC0t ZW5hYmxlLXJ1c3Qtc2ltZCB3b3JrIHdpdGggUnVzdCAxLjk1LiByPWZpcmVmb3gtYnVpbGQtc3lz dGVtLXJldmlld2VycyxzdXBwbHktY2hhaW4tcmV2aWV3ZXJzLGFob2NoaGVpZGVuCisKK0RpZmZl cmVudGlhbCBSZXZpc2lvbjogaHR0cHM6Ly9waGFicmljYXRvci5zZXJ2aWNlcy5tb3ppbGxhLmNv bS9EMjk1Mjg3CisKK2RpZmYgLS1naXQgYS8uY2FyZ28vY29uZmlnLmluIGIvLmNhcmdvL2NvbmZp Zy5pbgorLS0tIGEvLmNhcmdvL2NvbmZpZy5pbgorKysrIGIvLmNhcmdvL2NvbmZpZy5pbgorQEAg LTcsMTAgKzcsMTUgQEAgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9zZXJkZSIKKyBi cmFuY2ggPSAiZGVzZXJpYWxpemVfZnJvbV9lbnVtczgiCisgcmVwbGFjZS13aXRoID0gInZlbmRv cmVkLXNvdXJjZXMiCisgCisgW3NvdXJjZS4iZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25l bi9hbnlfYWxsX3dvcmthcm91bmQ/cmV2PTdmYjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThk OGE0OGFmODAiXQorIGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93 b3JrYXJvdW5kIgorIHJldiA9ICI3ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhh ZjgwIgorIHJlcGxhY2Utd2l0aCA9ICJ2ZW5kb3JlZC1zb3VyY2VzIgorIAorK1tzb3VyY2UuImdp dCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2RpbmdfcnM/cmV2PTEyMzZkMWJjNDIz ZTZiYTM1YTA2NDg1Zjc0YTYzMDRkYjJkNzAzYjUiXQorK2dpdCA9ICJodHRwczovL2dpdGh1Yi5j b20vaHNpdm9uZW4vZW5jb2RpbmdfcnMiCisrcmV2ID0gIjEyMzZkMWJjNDIzZTZiYTM1YTA2NDg1 Zjc0YTYzMDRkYjJkNzAzYjUiCisrcmVwbGFjZS13aXRoID0gInZlbmRvcmVkLXNvdXJjZXMiCisr CisgW3NvdXJjZS52ZW5kb3JlZC1zb3VyY2VzXQorIGRpcmVjdG9yeSA9ICdAdG9wX3NyY2RpckAv dGhpcmRfcGFydHkvcnVzdCcKK2RpZmYgLS1naXQgYS9DYXJnby5sb2NrIGIvQ2FyZ28ubG9jawor LS0tIGEvQ2FyZ28ubG9jaworKysrIGIvQ2FyZ28ubG9jaworQEAgLTYxNSwyMSArNjE1LDIxIEBA IGRlcGVuZGVuY2llcyA9IFsKKyAgImVuY29kaW5nX3JzIiwKKyAgIm5zZXJyb3IiLAorICAibnNz dHJpbmciLAorIF0KKyAKKyBbW3BhY2thZ2VdXQorIG5hbWUgPSAiZW5jb2RpbmdfcnMiCisgdmVy c2lvbiA9ICIwLjguMzUiCistc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorLWNoZWNrc3VtID0gIjc1MDMwZjNjNGY0NWRhZmQ3 NTg2ZGQ2NzgwOTY1YThjN2U4ZTI4NWE1ZWNiODY3MTNlNjNhNzljNWIyNzY2ZjMiCisrc291cmNl ID0gImdpdCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2RpbmdfcnM/cmV2PTEyMzZk MWJjNDIzZTZiYTM1YTA2NDg1Zjc0YTYzMDRkYjJkNzAzYjUjMTIzNmQxYmM0MjNlNmJhMzVhMDY0 ODVmNzRhNjMwNGRiMmQ3MDNiNSIKKyBkZXBlbmRlbmNpZXMgPSBbCisgICJhbnlfYWxsX3dvcmth cm91bmQiLAorICAiY2ZnLWlmIDEuMC4wIiwKKysgInJ1c3R2ZXJzaW9uIiwKKyBdCisgCisgW1tw YWNrYWdlXV0KKyBuYW1lID0gImVudl9sb2dnZXIiCisgdmVyc2lvbiA9ICIwLjUuMTMiCisgc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgorIGNoZWNrc3VtID0gIjE1YjBhNGQyZTM5Zjg0MjAyMTBiZThiMjdlZWRhMjgwMjk3Mjll MmZkNDI5MTAxOTQ1NTAxNmMzNDgyNDBjMzgiCisgZGVwZW5kZW5jaWVzID0gWworZGlmZiAtLWdp dCBhL0NhcmdvLnRvbWwgYi9DYXJnby50b21sCistLS0gYS9DYXJnby50b21sCisrKysgYi9DYXJn by50b21sCitAQCAtNDksOCArNDksMTAgQEAgcnBhdGggPSBmYWxzZQorIGRlYnVnLWFzc2VydGlv bnMgPSBmYWxzZQorIHBhbmljID0gImFib3J0IgorIGNvZGVnZW4tdW5pdHMgPSAxCisgCisgW3Bh dGNoLmNyYXRlcy1pb10KKyBsaWJ1ZGV2LXN5cyA9IHsgcGF0aCA9ICJkb20vd2ViYXV0aG4vbGli dWRldi1zeXMiIH0KKyBzZXJkZV9kZXJpdmUgPSB7IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20v c2Vydm8vc2VyZGUiLCBicmFuY2ggPSAiZGVzZXJpYWxpemVfZnJvbV9lbnVtczgiIH0KKyBhbnlf YWxsX3dvcmthcm91bmQgPSB7IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55 X2FsbF93b3JrYXJvdW5kIiwgcmV2ID0gIjdmYjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThk OGE0OGFmODAiIH0KKysjIE1ha2UgLS1lbmFibGUtcnVzdC1zaW1kIGNvbXBhdGlibGUgd2l0aCBS dXN0IDEuOTUKKytlbmNvZGluZ19ycyA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2 b25lbi9lbmNvZGluZ19ycyIsIHJldiA9ICIxMjM2ZDFiYzQyM2U2YmEzNWEwNjQ4NWY3NGE2MzA0 ZGIyZDcwM2I1IiB9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9D YXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorQEAgLTExLDE2ICsxMSwxNyBAQAorIAor IFtwYWNrYWdlXQorIGVkaXRpb24gPSAiMjAxOCIKKyBydXN0LXZlcnNpb24gPSAiMS4zNiIKKyBu YW1lID0gImVuY29kaW5nX3JzIgorIHZlcnNpb24gPSAiMC44LjM1IgorIGF1dGhvcnMgPSBbIkhl bnJpIFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPiJdCisgYnVpbGQgPSBmYWxzZQorK2F1 dG9saWIgPSBmYWxzZQorIGF1dG9iaW5zID0gZmFsc2UKKyBhdXRvZXhhbXBsZXMgPSBmYWxzZQor IGF1dG90ZXN0cyA9IGZhbHNlCisgYXV0b2JlbmNoZXMgPSBmYWxzZQorIGRlc2NyaXB0aW9uID0g IkEgR2Vja28tb3JpZW50ZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIEVuY29kaW5nIFN0YW5kYXJk IgorIGhvbWVwYWdlID0gImh0dHBzOi8vZG9jcy5ycy9lbmNvZGluZ19ycy8iCisgZG9jdW1lbnRh dGlvbiA9ICJodHRwczovL2RvY3MucnMvZW5jb2RpbmdfcnMvIgorIHJlYWRtZSA9ICJSRUFETUUu bWQiCitAQCAtMzQsNDMgKzM1LDE2IEBAIGNhdGVnb3JpZXMgPSBbCisgICAgICJ0ZXh0LXByb2Nl c3NpbmciLAorICAgICAiZW5jb2RpbmciLAorICAgICAid2ViLXByb2dyYW1taW5nIiwKKyAgICAg ImludGVybmF0aW9uYWxpemF0aW9uIiwKKyBdCisgbGljZW5zZSA9ICIoQXBhY2hlLTIuMCBPUiBN SVQpIEFORCBCU0QtMy1DbGF1c2UiCisgcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20v aHNpdm9uZW4vZW5jb2RpbmdfcnMiCisgCistW3Byb2ZpbGUucmVsZWFzZV0KKy1sdG8gPSB0cnVl CistCistW2xpYl0KKy1uYW1lID0gImVuY29kaW5nX3JzIgorLXBhdGggPSAic3JjL2xpYi5ycyIK Ky0KKy1bZGVwZW5kZW5jaWVzLmFueV9hbGxfd29ya2Fyb3VuZF0KKy12ZXJzaW9uID0gIjAuMS4w IgorLW9wdGlvbmFsID0gdHJ1ZQorLQorLVtkZXBlbmRlbmNpZXMuY2ZnLWlmXQorLXZlcnNpb24g PSAiMS4wIgorLQorLVtkZXBlbmRlbmNpZXMuc2VyZGVdCistdmVyc2lvbiA9ICIxLjAiCistb3B0 aW9uYWwgPSB0cnVlCistCistW2Rldi1kZXBlbmRlbmNpZXMuYmluY29kZV0KKy12ZXJzaW9uID0g IjEuMCIKKy0KKy1bZGV2LWRlcGVuZGVuY2llcy5zZXJkZV9kZXJpdmVdCistdmVyc2lvbiA9ICIx LjAiCistCistW2Rldi1kZXBlbmRlbmNpZXMuc2VyZGVfanNvbl0KKy12ZXJzaW9uID0gIjEuMCIK Ky0KKyBbZmVhdHVyZXNdCisgYWxsb2MgPSBbXQorIGRlZmF1bHQgPSBbImFsbG9jIl0KKyBmYXN0 LWJpZzUtaGFuemktZW5jb2RlID0gW10KKyBmYXN0LWdiLWhhbnppLWVuY29kZSA9IFtdCisgZmFz dC1oYW5ndWwtZW5jb2RlID0gW10KKyBmYXN0LWhhbmphLWVuY29kZSA9IFtdCisgZmFzdC1rYW5q aS1lbmNvZGUgPSBbXQorQEAgLTc5LDkgKzUzLDM5IEBAIGZhc3QtbGVnYWN5LWVuY29kZSA9IFsK KyAgICAgImZhc3QtaGFuamEtZW5jb2RlIiwKKyAgICAgImZhc3Qta2FuamktZW5jb2RlIiwKKyAg ICAgImZhc3QtZ2ItaGFuemktZW5jb2RlIiwKKyAgICAgImZhc3QtYmlnNS1oYW56aS1lbmNvZGUi LAorIF0KKyBsZXNzLXNsb3ctYmlnNS1oYW56aS1lbmNvZGUgPSBbXQorIGxlc3Mtc2xvdy1nYi1o YW56aS1lbmNvZGUgPSBbXQorIGxlc3Mtc2xvdy1rYW5qaS1lbmNvZGUgPSBbXQorLXNpbWQtYWNj ZWwgPSBbImFueV9hbGxfd29ya2Fyb3VuZCJdCisrc2ltZC1hY2NlbCA9IFsKKysgICAgImFueV9h bGxfd29ya2Fyb3VuZCIsCisrICAgICJydXN0dmVyc2lvbiIsCisrXQorKworK1tsaWJdCisrbmFt ZSA9ICJlbmNvZGluZ19ycyIKKytwYXRoID0gInNyYy9saWIucnMiCisrCisrW2RlcGVuZGVuY2ll c10KKytjZmctaWYgPSAiMS4wIgorKworK1tkZXBlbmRlbmNpZXMuYW55X2FsbF93b3JrYXJvdW5k XQorK3ZlcnNpb24gPSAiMC4xLjAiCisrb3B0aW9uYWwgPSB0cnVlCisrCisrW2RlcGVuZGVuY2ll cy5ydXN0dmVyc2lvbl0KKyt2ZXJzaW9uID0gIjEuMC4xOSIKKytvcHRpb25hbCA9IHRydWUKKysK KytbZGVwZW5kZW5jaWVzLnNlcmRlXQorK3ZlcnNpb24gPSAiMS4wIgorK29wdGlvbmFsID0gdHJ1 ZQorKworK1tkZXYtZGVwZW5kZW5jaWVzXQorK2JpbmNvZGUgPSAiMS4wIgorK3NlcmRlX2Rlcml2 ZSA9ICIxLjAiCisrc2VyZGVfanNvbiA9ICIxLjAiCisrCisrW3Byb2ZpbGUucmVsZWFzZV0KKyts dG8gPSB0cnVlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv eF91c2VyX2RlZmluZWQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3Vz ZXJfZGVmaW5lZC5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91 c2VyX2RlZmluZWQucnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hf dXNlcl9kZWZpbmVkLnJzCitAQCAtMTEsMTYgKzExLDE4IEBAIHVzZSBzdXBlcjo6KjsKKyB1c2Ug Y3JhdGU6OmhhbmRsZXM6Oio7CisgdXNlIGNyYXRlOjp2YXJpYW50OjoqOworIAorIGNmZ19pZiEg eworICAgICBpZiAjW2NmZyhmZWF0dXJlID0gInNpbWQtYWNjZWwiKV0geworICAgICAgICAgdXNl IHNpbWRfZnVuY3M6Oio7CisgICAgICAgICB1c2UgY29yZTo6c2ltZDo6dTE2eDg7CisgICAgICAg ICB1c2UgY29yZTo6c2ltZDo6Y21wOjpTaW1kUGFydGlhbE9yZDsKKysgICAgICAgICNbcnVzdHZl cnNpb246OnNpbmNlKDEuOTUpXQorKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OlNlbGVjdDsKKyAK KyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBmbiBzaGlmdF91cHBlcih1bnBh Y2tlZDogdTE2eDgpIC0+IHUxNng4IHsKKyAgICAgICAgICAgICBsZXQgaGlnaGVzdF9hc2NpaSA9 IHUxNng4OjpzcGxhdCgweDdGKTsKKyAgICAgICAgICAgICB1bnBhY2tlZCArIHVucGFja2VkLnNp bWRfZ3QoaGlnaGVzdF9hc2NpaSkuc2VsZWN0KHUxNng4OjpzcGxhdCgweEY3MDApLCB1MTZ4ODo6 c3BsYXQoMCkpICAgICAgICB9CisgICAgIH0gZWxzZSB7CisgICAgIH0KKyB9CgpkaWZmIC0tZ2l0 IGEvc2VhbW9ua2V5LTIuNTMuMjQtcnVzdF91MmZoaWQucGF0Y2ggYi9zZWFtb25rZXktMi41My4y NC1ydXN0X3UyZmhpZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j NDM0NGNhCi0tLSAvZGV2L251bGwKKysrIGIvc2VhbW9ua2V5LTIuNTMuMjQtcnVzdF91MmZoaWQu cGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKKyMgVXNlciBGcmFu ay1SYWluZXIgR3JhaGwgPGZyZ3JhaGxAZ214Lm5ldD4KKyMgRGF0ZSAxNzg1MTA4MTE5IC03MjAw CisjIFBhcmVudCAgZDZjMGZmN2IwYzA1YTBjYmNiMGE3NDlhODYxMDgxZGM4NDg1MzliZAorTm8g QnVnIC0gRml4IHUyZmhpZCBmb3IgbGF0ZXIgcnVzdCB2ZXJzaW9ucy4gcj1tZSBhPW1lCisKK2Rp ZmYgLS1naXQgYS9kb20vd2ViYXV0aG4vdTJmLWhpZC1ycy9zcmMvd2luZG93cy93aW5hcGkucnMg Yi9kb20vd2ViYXV0aG4vdTJmLWhpZC1ycy9zcmMvd2luZG93cy93aW5hcGkucnMKKy0tLSBhL2Rv bS93ZWJhdXRobi91MmYtaGlkLXJzL3NyYy93aW5kb3dzL3dpbmFwaS5ycworKysrIGIvZG9tL3dl YmF1dGhuL3UyZi1oaWQtcnMvc3JjL3dpbmRvd3Mvd2luYXBpLnJzCitAQCAtMSwxMiArMSwxNSBA QAorIC8qIFRoaXMgU291cmNlIENvZGUgRm9ybSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0 aGUgTW96aWxsYSBQdWJsaWMKKyAgKiBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUg TVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzCisgICogZmlsZSwgWW91IGNhbiBvYnRh aW4gb25lIGF0IGh0dHA6Ly9tb3ppbGxhLm9yZy9NUEwvMi4wLy4gKi8KKyAKKysvLyBZZXMgaXQg aXMgYmFkIGJ1dCB3ZSBkb24ndCB1c2Ugd2ViYXV0aG4gY3VycmVudGx5IGFueXdheS4KKysjIVt3 YXJuKGRlcmVmX251bGxwdHIpXQorKworIHVzZSBzdGQ6OmlvOworIHVzZSBzdGQ6Om1lbTsKKyB1 c2Ugc3RkOjpwdHI7CisgdXNlIHN0ZDo6c2xpY2U7CisgCisgdXNlIHN0ZDo6ZmZpOjpPc1N0cmlu ZzsKKyB1c2Ugc3RkOjpvczo6d2luZG93czo6ZmZpOjpPc1N0cmluZ0V4dDsKKyAKCmRpZmYgLS1n aXQgYS9zZWFtb25rZXktMi41My4yNC1ydXN0X3ZlcnNpb24ucGF0Y2ggYi9zZWFtb25rZXktMi41 My4yNC1ydXN0X3ZlcnNpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYjlhOGE5MwotLS0gL2Rldi9udWxsCisrKyBiL3NlYW1vbmtleS0yLjUzLjI0LXJ1c3RfdmVy c2lvbi5wYXRjaApAQCAtMCwwICsxLDIyNzYgQEAKKyMgSEcgY2hhbmdlc2V0IHBhdGNoCisjIFVz ZXIgRnJhbmstUmFpbmVyIEdyYWhsIDxmcmdyYWhsQGdteC5uZXQ+CisjIERhdGUgMTc4NTEwODAz MiAtNzIwMAorIyBQYXJlbnQgIDlkZmZkNzg2MTFkMDgwMzRhZGFiYTcwMmQyMDhlYTg5NzliZDdj NDAKK05vIEJ1ZyAtIEFkZCBydXN0IHZlcnNpb24gY3JhdGUuIHI9bWUgYT1tZQorCitkaWZmIC0t Z2l0IGEvQ2FyZ28ubG9jayBiL0NhcmdvLmxvY2sKKy0tLSBhL0NhcmdvLmxvY2sKKysrKyBiL0Nh cmdvLmxvY2sKK0BAIC0xNzE0LDE2ICsxNzE0LDIyIEBAIG5hbWUgPSAicnVzdGNfdmVyc2lvbiIK KyB2ZXJzaW9uID0gIjAuMi4xIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICJiOTc0M2E3NjcwZDg4 ZDVkNTI5NTA0MDhlY2RiN2M3MWQ4OTg2MjUxYWI2MDRkNDY4OWRkMmNhMjVjOWJjYTY5IgorIGRl cGVuZGVuY2llcyA9IFsKKyAgInNlbXZlciIsCisgXQorIAorIFtbcGFja2FnZV1dCisrbmFtZSA9 ICJydXN0dmVyc2lvbiIKKyt2ZXJzaW9uID0gIjEuMC4yMyIKKytzb3VyY2UgPSAicmVnaXN0cnkr aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCisrY2hlY2tzdW0g PSAiY2Y1NDcxNWE1NzNiOTlhYzgwZGYwYmMyMDZkYTAyMmJjZDQ0MmM5NzQ5NTJjN2I5NzIwMDY5 MzcwODUyZTIxZiIKKysKKytbW3BhY2thZ2VdXQorIG5hbWUgPSAic2FtZS1maWxlIgorIHZlcnNp b24gPSAiMS4wLjIiCisgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorIGNoZWNrc3VtID0gImNmYjZlZGVkMGIwNmEwYjUxMmM4 ZGRiY2YwNDA4OTEzOGM5YjQzNjJjMmY2OTZmM2MzZDc2MDM5ZDY4ZjM2MzciCisgZGVwZW5kZW5j aWVzID0gWworICAid2luYXBpIDAuMy43IiwKKyBdCisgCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KKysrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KK0BAIC0xLDEgKzEsMSBAQAorLXsi ZmlsZXMiOnsiQ09OVFJJQlVUSU5HLm1kIjoiY2ExOTAxZjNlODUzMmZiNGNlYzg5NGZkMzY2NGYw ZWFhODk4YzBjNGI5NjFkMWI5OTJkMWVkNTRlYWNmMzYyYSIsIkNPUFlSSUdIVCI6IjExNzg5ZjQ1 YmIxODA4NDFjZDM2MmE1ZWVlNjc4OWM2OGRkYjU3M2ExMTEwNWUzMDc2OGMzMDhhNmFkZDAxOTAi LCJDYXJnby50b21sIjoiZDc0MDVkMmJjZjk5Y2Y5NzI5MDc1NDczYzQ1ZjY3NzYzMGY0YzE5NDdj OGJhOTc1N2RiNjA3ZjIwMjVhN2RhMiIsIklkZWFzLm1kIjoiYjc0NTI4OTNmNTAwMTYzODY4ZDhk ZTUyYzA5YWRkYWY5MWUxNjMyNDU0ZWQwMmU4OTJjNDY3ZWQ3ZWMzOWRiZCIsIkxJQ0VOU0UtQVBB Q0hFIjoiY2ZjNzc0OWI5NmY2M2JkMzFjM2M0MmI1YzQ3MWJmNzU2ODE0MDUzZTg0N2MxMGYzZWIw MDM0MTdiYzUyM2QzMCIsIkxJQ0VOU0UtTUlUIjoiM2ZhNGNhODNkY2M5MjM3ODM5YjFiZGViMmU2 ZDE2YmRmYjVlYzBjNWNlNDJiMjQ2OTRkOGJiZjBkY2JlZjcyYyIsIkxJQ0VOU0UtV0hBVFdHIjoi ODM4MTE4Mzg4ZmU1YzJlN2YxZGJiYWVlZDEzZTFjN2YzZWJmODhiZTkxMzE5YzdjMWQ3N2MxOGU5 ODdkMWE1MCIsIlJFQURNRS5tZCI6Ijk4MjYxMzdlZDQyOTdiZTNiMjAxOWI3NGE4ZjYxMTFhNzk2 ZmY1MDdiZGU0MWRmMmYyMDcxMjUzOTcwNGI5ZTkiLCJjaS9taXJpLnNoIjoiNDNjYjhkODJmNDll M2JmZTJkMjI3NGI2Y2NkNmYwNzE0YTQxODhjY2VmMGNlY2MwNDA4Mjk4ODNjZmRiZWUyNSIsImRv Yy9CaWc1LnR4dCI6ImY3M2EyZWRjNWNiNmMyZDE0MGJhNmUwN2Y0NTQyZTFjNGEyMzQ5NTAzNzhh Y2RlMWRmOTM0ODBmMGNhMGJlMGIiLCJkb2MvRVVDLUpQLnR4dCI6ImVlMjgxOGI5MDdkMDEzN2Y0 MGE5YWI5ZmQ1MjVmYzcwMGE0NGRiZGRkYjZjZjBjMTU3YTY1NjU2NmJhZTRiZjEiLCJkb2MvRVVD LUtSLnR4dCI6IjcxZDllMmNjZjNiMTI0ZThiZGZiNDMzYzhjZjI3NzNmZDg3ODA3NzAzOGQwY2Vj M2M3MjM3YTUwZjRhNzhhMzAiLCJkb2MvR0JLLnR4dCI6IjgyMjllNTkwNzZkOGJkZGIwMTg2NWNk Y2Y2YWZkYTM1MzMyMzhkN2MyM2Q5N2Y5ODgyMGY5ZTNiMmQxMzUwNWQiLCJkb2MvSUJNODY2LnR4 dCI6ImE1YTQzM2U4MDRkMGY4M2FmNzg1MDE1MTc5ZmJjMWQ5YjBlYWYxZjc5NjBlZmNkMDQwOTNl MTM2YjUxZmJkMGUiLCJkb2MvSVNPLTIwMjItSlAudHh0IjoiYWY4NjY4NGY1YThmMGUyODY4ZDdi MmMyOTI4NjAxNDBjM2QyZTU1Mjc1MzBjYTA5MWYxYjI4MTk4ZThlMmZlNiIsImRvYy9JU08tODg1 OS0xMC50eHQiOiI2ZDM5NDlhZDdjODFjYTE3Njg5NTEwMWVkODFhMWRiN2RmMTA2MGQ2NGUyNjI4 ODBiOTRiZDMxYmIzNDRhYjRkIiwiZG9jL0lTTy04ODU5LTEzLnR4dCI6IjM5NTFkZDg5Y2Y5M2Y3 NzI5MTQ4MDkxNjgzY2Y4NTExZjQ1MjkzODhiN2RjOGRjZDBkNjJlYWVkNTViZTkzZmEiLCJkb2Mv SVNPLTg4NTktMTQudHh0IjoiM2QzMzA3ODRhMDM3NGZkMjU1YTM4YjQ3OTQ5Njc1Y2M3MTY4Yzgw MDUzMDUzNGIwYTAxY2FjNmVkYzYyM2FkYyIsImRvYy9JU08tODg1OS0xNS50eHQiOiIyNGIxMDg0 YWFiNTEyN2E4NWFhYjk5MTUzZjg2ZTI0Njk0ZDBhMzYxNWY1M2I1Y2UyMzY4M2Y5N2NmNjZjNDdh IiwiZG9jL0lTTy04ODU5LTE2LnR4dCI6ImNlMDI3MjU1OWI5MmJhNzZkN2E3ZTQ3NmY2NDI0YWU0 YTVjYzcyZTc1YjE4MzYxMWIwODM5MmU0NGFkZDRkMjUiLCJkb2MvSVNPLTg4NTktMi50eHQiOiIx OGNlZmY4OGMxM2QxYjViYTQ1NWEzOTE5YjFlM2RlNDg5MDQ1YzRjM2QyZGQ3ZTg1MjdjMTI1Yzc1 ZDU0YWFkIiwiZG9jL0lTTy04ODU5LTMudHh0IjoiMjE3OTg0MDRjNjhmNGY1ZGI1OTIyMzM2MmYy NDk5OWRhOTY5NjhjMDYyODQyNzMyMWZjY2NlN2QyODQ5YTEzMCIsImRvYy9JU08tODg1OS00LnR4 dCI6ImQyN2Y2NTIwYzZjNWJmYmNjMTkxNzZiNzFkMDgxY2RiM2JjY2RlMTYyMmJiM2U0MjBkNTY4 MGU4MTI2MzJkNTMiLCJkb2MvSVNPLTg4NTktNS50eHQiOiJhMTBlYzhkNmVhN2E3OGFkMTVkYTcy NzVmNmNiMWEzMzY1MTE4NTI3ZTI4ZjlhZjZkMGQ1ODMwNTAxMzAzZjNhIiwiZG9jL0lTTy04ODU5 LTYudHh0IjoiY2NkYThhMmVmYzk2MTE1MzM2YmRkNzc3NzY2MzdiOTcxMjQyNWU0NGZiY2Y3NDUz NTNiOTA1N2ZiZWYxNDRlNyIsImRvYy9JU08tODg1OS03LnR4dCI6IjE3OTAwZmExZjI3YTQ0NTk1 OGYwYTc3ZDdkOTA1NmJlMzc1YTZiZDdlZTQ0OTJhYTY4MGM3YzE1MDBiYWI4NWUiLCJkb2MvSVNP LTg4NTktOC1JLnR4dCI6IjgzNTc1NTU2NDZkNTQyNjVhOWI5ZmZhM2U2OGIwOGQxMzIzMTJmMTU2 MWM2MDEwOGZmOWI4YjExNjdiNmVjZjIiLCJkb2MvSVNPLTg4NTktOC50eHQiOiI3MmNkNmYzYWZi N2I0YTljMTZhNjZhMzYyNDczMzE1NzcwYjc3NTVkNzJjODZjODcwZTUyZmMzZWJhODZjOGFmIiwi ZG9jL0tPSTgtUi50eHQiOiI4MzljZjE5YTM4ZGE5OTQ0ODgwMDRlZDc4MTRiMWY2MTUxNjQwMTU2 YTlhMmFmMDJiZjJlZmNhNzQ1ZmI1OTY2IiwiZG9jL0tPSTgtVS50eHQiOiIwY2M3NjYyNGVkMWYw MjQxODNlMjI5OGI3ZTAxOTk1N2RhMmM3MGM4Y2EwNmUwZmM0ZTZmMzUzZjUwYTUwNTRmIiwiZG9j L1NoaWZ0X0pJUy50eHQiOiIzNGM0OTE0MTgxOGNiOWRkYmNmNTljYzg1OGY3OGE3OWJlOGFkMTQ4 ZDU2M2YyNjQxNTEwOGFlMWYxNDg0NDNmIiwiZG9jL1VURi0xNkJFLnR4dCI6ImUyZTI4MGQ4YWNi YWE2ZDJhNmIzNTY5ZDYwZTE3NTAwYTI4NWYyYmFhMGRmMzM2M2RkODU1MzdjZDVhMWVmOGYiLCJk b2MvVVRGLTE2TEUudHh0IjoiNzBiZGMxNzBlM2ZjNTI5OGJhNjhmMTAxMjVmYjVlZWI4YjA3NzAz NmNjOTZiYjQ0MTZjNGRlMzk2ZjZkNzZjMSIsImRvYy9VVEYtOC50eHQiOiJlYTdiYWU3NDJlNjEz MDEwY2VkMDAyY2Y0YjYwMWE3MzdkMjIwM2ZhZDY1ZTExNTYxMTQ1MWJjNDQyOGY1NDhhIiwiZG9j L2diMTgwMzAudHh0IjoiNjdhMDE2NjVjNzU1MDUzMzBiMGZlNWI4ZDg4ZDU4NzNkOGNlNTU1YTE0 NWM3N2RjYTA0YTQ2N2ZhMjY4MDc0NCIsImRvYy9tYWNpbnRvc2gudHh0IjoiNTc0OTFlNTM4NjY3 MTFiNDY3MmQ5YjlmZjM1MzgwYjlkYWM5ZTBkOGUzZDZjMjBiZGQ2MTQwNjAzNjg3YzAyMyIsImRv Yy9yZXBsYWNlbWVudC50eHQiOiI0YjZjM2JiZDc5OTlkOWQ0MTA4YTI4MTU5NGJkMDJkMTM2MDdl MzM0YTk1NDY1YWZmZjhjMmMwOGQzOTVmMGU0IiwiZG9jL3dpbmRvd3MtMTI1MC50eHQiOiI2MTI5 NmJiNmEyMWNkYWI2MDIzMDBkMzJlY2ZiYTQzNGNiODJkZTVhYzNiYzg4ZDU4NzEwZDJmMTI1ZTI4 ZDM5IiwiZG9jL3dpbmRvd3MtMTI1MS50eHQiOiI3ZGVlYTFjNjFkZWExNDg1YzhmZjAyZGIyYzdk NTc4ZGI3YTlhYWI2M2FiMWNmZDAyZWMwNGI1MTU4NjQ2ODllIiwiZG9jL3dpbmRvd3MtMTI1Mi50 eHQiOiI5MzNlZjNiZGRkZmNlNWVlMTMyYjlmMWExYWE4YjQ3NDIzZDI1ODdiYmU0NzViMTkwMjhk MGE2ZDM4ZTE4MGI2IiwiZG9jL3dpbmRvd3MtMTI1My50eHQiOiIxYTM4NzQ4Yjg4ZTk5MDcxYTVj N2IzZDU0NTZlYWQ0Y2FlZGVhYmFiNTBkNTBkNjU4YmUxMDViYzExMzcxNGRlIiwiZG9jL3dpbmRv d3MtMTI1NC50eHQiOiJmODM3MmY4NmM2ZjhkNjQyNTYzY2Q2ZGRjMDI1MjYwNTUzMjkyYTM5NDIz ZGYxNjgzYTk4NjcwYmQ3YmYyYjQ3IiwiZG9jL3dpbmRvd3MtMTI1NS50eHQiOiI0ZTU4NTI0OTQ3 MzAwNTRlMmRhMjU4YTc0ZTFiOWQ3ODBhYmJjZGQ4Y2UyMmViYzIxOGNhMmVmZTllOTA0OTNkIiwi ZG9jL3dpbmRvd3MtMTI1Ni50eHQiOiJjMDg3OWM1MTcyYWJlZGVhZDMwMmE0MDZlOGY2MGQ5Y2Q5 NTk4Njk0YTBmZmE0ZmQyODhmZmU0ZmVmN2I4ZWExIiwiZG9jL3dpbmRvd3MtMTI1Ny50eHQiOiJj MjhhMGM5Zjk2NGZjYjJiNDZkMjFmNTM3YzQwMjQ0NjUwMWEyODAwNjcwNDgxZDZhYmY5ZmQ5ZTkw MThkNTIzIiwiZG9jL3dpbmRvd3MtMTI1OC50eHQiOiI1MDE5YWU0ZDYxODA1Yzc5YWFjYmYxN2M5 Mzc5MzM0MmRiYjA5OGQ2NWExODM3NzgzYmMzZTJjNmQ2YTIzNjAyIiwiZG9jL3dpbmRvd3MtODc0 LnR4dCI6IjRlZjBlNDUwMWM1ZmViYThiMTdhZWUxODE4NjAyZWQ0NGIzNmNhODQ3NWRiNzcxY2Uy ZmMxNmQzOTJjYWJlY2MiLCJkb2MveC1tYWMtY3lyaWxsaWMudHh0IjoiNThiZTE1NGQ4YTg4OGNh M2Q0ODRiODNiNDRmNzQ5ODIzZWYzMzlhYjI3ZjE0ZDkwY2E5YTg1NmY1MDUwYThiZCIsImRvYy94 LXVzZXItZGVmaW5lZC50eHQiOiJmOWNkMDdjNDMyMWJmNWNmYjBiZTRiZGRkZDI1MTA3Mjk5OWIw NGE2Y2Y3YTZmNWJjNjM3MDlhODRlMmMxZmZjIiwiZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weSI6 IjZmMzRhODQ1Nzg1ZjUzNDI1YWNjZjMwNzU5ZWRjNTY2ODczZmNiMGMyMTg4NjQ4ZTA3YjA5Yzg5 OGYzOWRkZGIiLCJydXN0Zm10LnRvbWwiOiI4NWMxYTNiNDM4MmZkODllOTkxY2JiODFiNzBmYjUy NzgwNDcyZWRjMDY0Yzk2Mzk0M2NkYWFhNTZlMGEyMDMwIiwic3JjL2FzY2lpLnJzIjoiNTg4ZTM4 YjAxZTY2NmQ1ZTc0NjI2MTdlYTdlOTBhMTA4ZDYwOGRlYzllMDE2ZjNkMjczYWMwNzQ0YWYyZTA1 ZCIsInNyYy9iaWc1LnJzIjoiZWM2ZTI5MTMwMTFhMzhlOWEzZTgyNWExNzMxZjEzOWE3Y2ExZDVi MjY0ZmVmYWU1MWEzY2MxYTY4YTU3Y2VmOSIsInNyYy9kYXRhLnJzIjoiYjkzZjM0MDI1ZmU1YzZh ODViNGI5ZjAwMzdiZjU4OTYxMzUyYmYxOWM4M2Y5MWIwOWIzNWViODQ5NTYyNWVlYyIsInNyYy9l dWNfanAucnMiOiIzMjA0N2Y1YjU0MDE4OGM0Y2IxOWMwNzE2NWY4NDZiOTc4NmEwOWYxOGUzMTVl ZDNlOWJkYTEyOTNkYWU1MmFhIiwic3JjL2V1Y19rci5ycyI6IjliMjVhZmM3MmQ5Mzc4NzAwZWVj ZmFjNThkNTVhZDFjNTk0NmQ2Y2QwY2NkZTJjMjljMDgyMDBlZjJkZTZiYjkiLCJzcmMvZ2IxODAz MC5ycyI6Ijg5Y2Q2YWUyMjQ3YWRkM2YzNDcxYTY5OWJjMTIxMTNhOWFlMmY2YjkxYTUyMjNhYmJm MTViNjhhMTM1MzdkY2QiLCJzcmMvZ2IxODAzMF8yMDIyLnJzIjoiM2MyZTA2NDkyYzVlMDBmY2Qz OTUxNWU0YWY0YzU2MGQ4Y2VlNWMzMWU3YTdlMzg4ZGI2ODJiYzllZTMzZWUzMiIsInNyYy9oYW5k bGVzLnJzIjoiYjA4Y2VmMWY1Nzg1YmI2YTQ4MjJmMmU4NDRjNmRmMWIwNDZiNzM3YjdhMDc1ZTQ1 OTNlYWE4YzQyMDhlOWZlMiIsInNyYy9pc29fMjAyMl9qcC5ycyI6IjliYjQ4NWU4MjU3NGY0Yjdk NGIyMzY0ZjBmZjI3NmFjYjZhMGJjMTExNzU4NDIwYTNiMGVjNWUwNGMxOTY2NTIiLCJzcmMvbGli LnJzIjoiYzRkOWZhMWM0MzEwNWUyMzEwMTIyZjFiOTE5NzEyNTAzMmU2MDdmZTZmNzliYzIyNzY5 YjM0MGRlNzZlMjQzMCIsInNyYy9tYWNyb3MucnMiOiIyMDA5OTdmODg3MGRlOGJmZDhjZGM0NzVl OTIxMTVkZjQyMTA4YzBkZjY2MWU0OWQzZDFjYmMzMjA1NmUxZDk5Iiwic3JjL21lbS5ycyI6Ijk0 ODU3MTEzN2QzYjE1MWRmOGRiNGZiMmM3MzNlNzRhZTU5NWQwNTVjZGYwYWQ4M2FiY2FiOTM0MWQ2 YWRhYmUiLCJzcmMvcmVwbGFjZW1lbnQucnMiOiI3NjYwYjM0YTUzZjhjMWNhMmJkZmEwZTUxZTg0 M2VjMjgzMjY5NTA5NTJhZDhiYzk2NTY5ZmViOTNhYzYyMzA4Iiwic3JjL3NoaWZ0X2ppcy5ycyI6 IjY5NTFhZTY3ZTM2YjFhMTJmYTNhMzA3MzQ5NTdmNDQ0ZDhiMWI0YWUwZTJiZGU1MjA2MGIyOWJk MGYxNmQ5ZDkiLCJzcmMvc2ltZF9mdW5jcy5ycyI6IjA1YzZlNzdhZjc0YmZlNzNjZDM5YTc1MjA2 N2MxMTQyNWQ2YjQ2ZTVkYTQxOTkxMGY1NGJmNzVhNWMwMmE5ODQiLCJzcmMvc2luZ2xlX2J5dGUu cnMiOiIzYWQ4NzExNmZiMzM5NDM0YTRiNThlOGYyYjE1NDg1ZjJiNjZiOWY3ODE0ZDcwOGYxNjE5 NGVkMDhmNmQ2Y2NmIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luLnR4dCI6ImE1YWUyOTA3ODY2MTBj N2ZhY2RiYjFkMDZiZTY4MTVlOGJiODFkNjhkZmE3MzgwZWRjN2RkYjZiOGM3ZTQxMmUiLCJzcmMv dGVzdF9kYXRhL2JpZzVfaW5fcmVmLnR4dCI6IjUyNzMzZDk5NzBmYjg5ODdmMDE0ZmEwZWFjMjc5 MjI1MDEyM2NmNTgzYjM2M2JlYjJjZTdiM2M1NWUzZGM1NTUiLCJzcmMvdGVzdF9kYXRhL2JpZzVf b3V0LnR4dCI6IjU3NDIwY2E0MWE2NjljOTQ5NzM4Yzg0Y2FiNjIwMDIwOTU5NTcyZDJlZTk3YjRl MDU5NDA1YmZlMjZhNzliNmQiLCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0X3JlZi50eHQiOiIwMGU1 ZjY3YzIyMmRkNWNkM2JiMTczOTI3NjkxMGI4ZjAwMzJmNDU0Y2JhN2NmN2MzZWFhMjU1YTU2NDE4 OGQwIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0IjoiMjE1MzRlYzg3ZTgyZDc4NWQxMjhm OTgwOTAyZDEzZmFiNmQ5ZGVhMTVjNjlhOTkxZjQwOWQ5YjBhZmQxYzg1MiIsInNyYy90ZXN0X2Rh dGEvZXVjX2tyX2luX3JlZi50eHQiOiJiMzAwOWU2YTk0OTY3ZGYxZjExMzVjNjZmMDA1NjEwYmVi YWQ2NjY2ZDYzNGFlYzcyZDJhZDc3YzMyMTFiZGEzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0 LnR4dCI6IjIwMjA1YjBiNWJlNGY1NzkyNzExOTNiNWJmYmM1NDlhNjFhOWZkNTIxN2MzM2VlY2Zh NjE3ODRhM2ZmZTJlOWQiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dCI6ImI1ZjU2 NjIzN2Y4ZDRlZjRkMDNhZDI2MTM1Y2E5N2RmZDczOTg2MDhhODIxNjViZDQ4NTNiNTEzNGFiMjJj YjUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0IjoiMGRkMWZiZjAzNjA5MzBkYWFmZGNl N2U2NzYxODUyMDA1YThmOTJmNzkxMDE4MGRmMTlhMDcwYjZjM2M1OWRlZSIsInNyYy90ZXN0X2Rh dGEvZ2IxODAzMF9pbl9yZWYudHh0IjoiZjNlYWVhMTExNTg1NzA1NGNmMzBmOGJhMTgyMTllNzIz NzdmMmE0YWZkODQ4Y2NmMjIzNzcwZDc1YWE0MjUxZCIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9v dXQudHh0IjoiNzE4NGZlOTU5MjYwOTU5N2Q1NWMyNzMzNjA2YjRjNGIxYTE4Yjc5YjI0NTMzZTFh MTZhMTRmZjkyZTdkMmI1NSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4dCI6IjIz YmI4NTBkZGM2OWFhZjFiZGZlYWJlMDVhMTJkOTNmNjE0ZTU1NjBkYWM4NzlkNWYwMjkyOWVlNGE3 YzA2YzUiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4dCI6Ijk4ZmI4MjM1MzBhMzBh NzZlYjBiYTdhYjZhYzc5Njk1OWU4ODY5YzFlYzE0M2YwMThhMTk2NDU4MWFlODEzYWEiLCJzcmMv dGVzdF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQiOiJkZjgyMTY2ZDJlMDFiYjQ0NjIxMWQ3 ZTQ2ZjMzYjQ3ZDkzYWMxYmFmZWFlMmVkODgwZWU5M2M0MDk2ZDExMjEwIiwic3JjL3Rlc3RfZGF0 YS9pc29fMjAyMl9qcF9vdXQudHh0IjoiYmVmOGViNDgwNGVkMDg0M2I5ZGZmZGQxZDE2ODczODYz NWNjNzdmOGQwOTI5YmViMjUzMmI2ODYzMThkZGFlNiIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJf anBfb3V0X3JlZi50eHQiOiJiMjIxYjM2YjJiY2U0OWQ0OWI2MjBkYzhiYTgwZDc3YmFjNzRlODY2 MGE4NmExMTYyOGU3OWI2N2YxZDk4OTY0Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luLnR4dCI6 IjNjMWE3YWFhZGEwMGQ2ZmZmNDFlNjBiZDc1ODlkN2FlOTRhZmFmNTYyNzU5YjExNjk1OGIxZDg0 NzExZDE3YjYiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4dCI6ImRmODIxNjZkMmUw MWJiNDQ2MjExZDdlNDZmMzNiNDdkOTNhYzFiYWZlYWUyZWQ4ODBlZTkzYzQwOTZkMTEyMTAiLCJz cmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0LnR4dCI6ImE2MTg4YjY3ZWIwMGJhOTgwY2I4MzA1NjE4 NmM4OWJjZGRkYzFiMDIxMGFmOWFmYTc4ZWQxYzliN2EwOTg5NTAiLCJzcmMvdGVzdF9kYXRhL2pp czAyMDhfb3V0X3JlZi50eHQiOiJlNzVhOTg2ZmU1ZTc4ZTY0YmY4ZmFmZDczOTJhZTk2ZWUwY2Iw YTRiMmU3ZWYyZmU3MjJiM2NhYWNmM2UyZjcwIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4 dCI6IjllZGE3NjYwMDI2NDZhMjczMTA0NTdjNjYxODMyNDI5YmVmZjkwODlkMjcwMzM1NTgxMmM0 Y2FjMzBkODAwYjUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5fcmVmLnR4dCI6ImZjZjc0YzU4 ZDJjYmU5YjNmM2RiNGZhOWVmZjI2ZTA5ZjVlOTY0NDA5N2M3ODYxNGMwMzE3N2U5Mzg5ODhkMDMi LCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50eHQiOiJlNjVkZjc0NmJlOTAzNTllNzA0MjI4 Njg1MjJhN2FhM2U4ZWQyMGUwZDRjMGNmOTk5NWQ5ZGUyNDhiZjkzMzg4Iiwic3JjL3Rlc3RfZGF0 YS9zaGlmdF9qaXNfaW5fcmVmLnR4dCI6IjEzYjE1YWVkNjRlOWU3Y2IzNWU2YTc0MGI2NzQxM2Yw YzI4NWZkYTk0NGY0ODE0ZDQ1YTc2MTllYTMzOGZiNWUiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2pp c19vdXQudHh0IjoiMTkyZDBhNGE4Y2U1ZDBmOTA0YzVjYjI4M2RmYjk3NDU3N2VlNjY3Y2YxZTcx OTU1YTZkZDZhZWNlMmIzNTRlZiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0 IjoiY2I2ZDUwYjBjMTFiYWQxZDFmMWZjYzAyZDc3OTY3MmE4YjlhMjUwOWNiYmFmZGM2MzkyYWNl YjQ5YzhiNDI2OCIsInNyYy90ZXN0X2xhYmVsc19uYW1lcy5ycyI6IjIzYTJlMTFiMDJiM2I4ZDE1 ZmI1NjEzYTYyNWUzZWRiMmM2MWU3MGUzYzU4MWFiZmQ2Mzg3MTlhNDA4ODIwMGQiLCJzcmMvdGVz dGluZy5ycyI6ImY1OWU2NzFlOTVhOThhNTZmNmI1NzNlOGM2YmU0ZDcxZTY3MGJmNTJmN2UyMGVi MTYwNWQ5OTBhYWZhMTg5NGUiLCJzcmMvdXRmXzE2LnJzIjoiYzA3MWExNDdmYWQzOGQ3NTBjMmMy NDdlMTQxYjc2YjkyOWE0ODAwN2I5OWYyNmIyOTIyYjljYWVjZGFmMmYyNSIsInNyYy91dGZfOC5y cyI6IjdiN2Q4ODdiMzQ3ZjFhZWZhMDMyNDZiMDI4YTM2YTcyNzU4YTRjZTc2YzI4ZjNiNDVjMTk0 Njc4NTFhYTc4MzkiLCJzcmMvdmFyaWFudC5ycyI6IjFmYWI1MzYzNTg4YTE1NTRhNzE2OWRlODcz MWVhOWNkZWQ3YWM2M2VhMzVjYWFiZGQxYzI3YThkZGU2OGMyN2IiLCJzcmMveF91c2VyX2RlZmlu ZWQucnMiOiI5NDU2Y2E0NjE2OGVmODZjOTgzOTlhMjUzNmY1NzdlZjdiZTNjZGRlOTBjMGM1MTM5 MmQ4YWM0ODUxOWQzZmFlIn0sInBhY2thZ2UiOiI3NTAzMGYzYzRmNDVkYWZkNzU4NmRkNjc4MDk2 NWE4YzdlOGUyODVhNWVjYjg2NzEzZTYzYTc5YzViMjc2NmYzIn0KK1wgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQorK3siZmlsZXMiOnsiQ09OVFJJQlVUSU5HLm1kIjoiY2ExOTAxZjNlODUzMmZi NGNlYzg5NGZkMzY2NGYwZWFhODk4YzBjNGI5NjFkMWI5OTJkMWVkNTRlYWNmMzYyYSIsIkNPUFlS SUdIVCI6IjExNzg5ZjQ1YmIxODA4NDFjZDM2MmE1ZWVlNjc4OWM2OGRkYjU3M2ExMTEwNWUzMDc2 OGMzMDhhNmFkZDAxOTAiLCJDYXJnby50b21sIjoiYmZlYzA2YmM2MjkzMmI2MjlmYWE1NzhkNWZl ZmJjNGRjOGRkYmQ2YzgwN2U1NDJmNmE2NzZkYzI4M2UyZjcxNiIsIklkZWFzLm1kIjoiYjc0NTI4 OTNmNTAwMTYzODY4ZDhkZTUyYzA5YWRkYWY5MWUxNjMyNDU0ZWQwMmU4OTJjNDY3ZWQ3ZWMzOWRi ZCIsIkxJQ0VOU0UtQVBBQ0hFIjoiY2ZjNzc0OWI5NmY2M2JkMzFjM2M0MmI1YzQ3MWJmNzU2ODE0 MDUzZTg0N2MxMGYzZWIwMDM0MTdiYzUyM2QzMCIsIkxJQ0VOU0UtTUlUIjoiM2ZhNGNhODNkY2M5 MjM3ODM5YjFiZGViMmU2ZDE2YmRmYjVlYzBjNWNlNDJiMjQ2OTRkOGJiZjBkY2JlZjcyYyIsIkxJ Q0VOU0UtV0hBVFdHIjoiODM4MTE4Mzg4ZmU1YzJlN2YxZGJiYWVlZDEzZTFjN2YzZWJmODhiZTkx MzE5YzdjMWQ3N2MxOGU5ODdkMWE1MCIsIlJFQURNRS5tZCI6Ijk4MjYxMzdlZDQyOTdiZTNiMjAx OWI3NGE4ZjYxMTFhNzk2ZmY1MDdiZGU0MWRmMmYyMDcxMjUzOTcwNGI5ZTkiLCJjaS9taXJpLnNo IjoiNDNjYjhkODJmNDllM2JmZTJkMjI3NGI2Y2NkNmYwNzE0YTQxODhjY2VmMGNlY2MwNDA4Mjk4 ODNjZmRiZWUyNSIsImRvYy9CaWc1LnR4dCI6ImY3M2EyZWRjNWNiNmMyZDE0MGJhNmUwN2Y0NTQy ZTFjNGEyMzQ5NTAzNzhhY2RlMWRmOTM0ODBmMGNhMGJlMGIiLCJkb2MvRVVDLUpQLnR4dCI6ImVl MjgxOGI5MDdkMDEzN2Y0MGE5YWI5ZmQ1MjVmYzcwMGE0NGRiZGRkYjZjZjBjMTU3YTY1NjU2NmJh ZTRiZjEiLCJkb2MvRVVDLUtSLnR4dCI6IjcxZDllMmNjZjNiMTI0ZThiZGZiNDMzYzhjZjI3NzNm ZDg3ODA3NzAzOGQwY2VjM2M3MjM3YTUwZjRhNzhhMzAiLCJkb2MvR0JLLnR4dCI6IjgyMjllNTkw NzZkOGJkZGIwMTg2NWNkY2Y2YWZkYTM1MzMyMzhkN2MyM2Q5N2Y5ODgyMGY5ZTNiMmQxMzUwNWQi LCJkb2MvSUJNODY2LnR4dCI6ImE1YTQzM2U4MDRkMGY4M2FmNzg1MDE1MTc5ZmJjMWQ5YjBlYWYx Zjc5NjBlZmNkMDQwOTNlMTM2YjUxZmJkMGUiLCJkb2MvSVNPLTIwMjItSlAudHh0IjoiYWY4NjY4 NGY1YThmMGUyODY4ZDdiMmMyOTI4NjAxNDBjM2QyZTU1Mjc1MzBjYTA5MWYxYjI4MTk4ZThlMmZl NiIsImRvYy9JU08tODg1OS0xMC50eHQiOiI2ZDM5NDlhZDdjODFjYTE3Njg5NTEwMWVkODFhMWRi N2RmMTA2MGQ2NGUyNjI4ODBiOTRiZDMxYmIzNDRhYjRkIiwiZG9jL0lTTy04ODU5LTEzLnR4dCI6 IjM5NTFkZDg5Y2Y5M2Y3NzI5MTQ4MDkxNjgzY2Y4NTExZjQ1MjkzODhiN2RjOGRjZDBkNjJlYWVk NTViZTkzZmEiLCJkb2MvSVNPLTg4NTktMTQudHh0IjoiM2QzMzA3ODRhMDM3NGZkMjU1YTM4YjQ3 OTQ5Njc1Y2M3MTY4YzgwMDUzMDUzNGIwYTAxY2FjNmVkYzYyM2FkYyIsImRvYy9JU08tODg1OS0x NS50eHQiOiIyNGIxMDg0YWFiNTEyN2E4NWFhYjk5MTUzZjg2ZTI0Njk0ZDBhMzYxNWY1M2I1Y2Uy MzY4M2Y5N2NmNjZjNDdhIiwiZG9jL0lTTy04ODU5LTE2LnR4dCI6ImNlMDI3MjU1OWI5MmJhNzZk N2E3ZTQ3NmY2NDI0YWU0YTVjYzcyZTc1YjE4MzYxMWIwODM5MmU0NGFkZDRkMjUiLCJkb2MvSVNP LTg4NTktMi50eHQiOiIxOGNlZmY4OGMxM2QxYjViYTQ1NWEzOTE5YjFlM2RlNDg5MDQ1YzRjM2Qy ZGQ3ZTg1MjdjMTI1Yzc1ZDU0YWFkIiwiZG9jL0lTTy04ODU5LTMudHh0IjoiMjE3OTg0MDRjNjhm NGY1ZGI1OTIyMzM2MmYyNDk5OWRhOTY5NjhjMDYyODQyNzMyMWZjY2NlN2QyODQ5YTEzMCIsImRv Yy9JU08tODg1OS00LnR4dCI6ImQyN2Y2NTIwYzZjNWJmYmNjMTkxNzZiNzFkMDgxY2RiM2JjY2Rl MTYyMmJiM2U0MjBkNTY4MGU4MTI2MzJkNTMiLCJkb2MvSVNPLTg4NTktNS50eHQiOiJhMTBlYzhk NmVhN2E3OGFkMTVkYTcyNzVmNmNiMWEzMzY1MTE4NTI3ZTI4ZjlhZjZkMGQ1ODMwNTAxMzAzZjNh IiwiZG9jL0lTTy04ODU5LTYudHh0IjoiY2NkYThhMmVmYzk2MTE1MzM2YmRkNzc3NzY2MzdiOTcx MjQyNWU0NGZiY2Y3NDUzNTNiOTA1N2ZiZWYxNDRlNyIsImRvYy9JU08tODg1OS03LnR4dCI6IjE3 OTAwZmExZjI3YTQ0NTk1OGYwYTc3ZDdkOTA1NmJlMzc1YTZiZDdlZTQ0OTJhYTY4MGM3YzE1MDBi YWI4NWUiLCJkb2MvSVNPLTg4NTktOC1JLnR4dCI6IjgzNTc1NTU2NDZkNTQyNjVhOWI5ZmZhM2U2 OGIwOGQxMzIzMTJmMTU2MWM2MDEwOGZmOWI4YjExNjdiNmVjZjIiLCJkb2MvSVNPLTg4NTktOC50 eHQiOiI3MmNkNmYzYWZiN2I0YTljMTZhNjZhMzYyNDczMzE1NzcwYjc3NTVkNzJjODZjODcwZTUy ZmMzZWJhODZjOGFmIiwiZG9jL0tPSTgtUi50eHQiOiI4MzljZjE5YTM4ZGE5OTQ0ODgwMDRlZDc4 MTRiMWY2MTUxNjQwMTU2YTlhMmFmMDJiZjJlZmNhNzQ1ZmI1OTY2IiwiZG9jL0tPSTgtVS50eHQi OiIwY2M3NjYyNGVkMWYwMjQxODNlMjI5OGI3ZTAxOTk1N2RhMmM3MGM4Y2EwNmUwZmM0ZTZmMzUz ZjUwYTUwNTRmIiwiZG9jL1NoaWZ0X0pJUy50eHQiOiIzNGM0OTE0MTgxOGNiOWRkYmNmNTljYzg1 OGY3OGE3OWJlOGFkMTQ4ZDU2M2YyNjQxNTEwOGFlMWYxNDg0NDNmIiwiZG9jL1VURi0xNkJFLnR4 dCI6ImUyZTI4MGQ4YWNiYWE2ZDJhNmIzNTY5ZDYwZTE3NTAwYTI4NWYyYmFhMGRmMzM2M2RkODU1 MzdjZDVhMWVmOGYiLCJkb2MvVVRGLTE2TEUudHh0IjoiNzBiZGMxNzBlM2ZjNTI5OGJhNjhmMTAx MjVmYjVlZWI4YjA3NzAzNmNjOTZiYjQ0MTZjNGRlMzk2ZjZkNzZjMSIsImRvYy9VVEYtOC50eHQi OiJlYTdiYWU3NDJlNjEzMDEwY2VkMDAyY2Y0YjYwMWE3MzdkMjIwM2ZhZDY1ZTExNTYxMTQ1MWJj NDQyOGY1NDhhIiwiZG9jL2diMTgwMzAudHh0IjoiNjdhMDE2NjVjNzU1MDUzMzBiMGZlNWI4ZDg4 ZDU4NzNkOGNlNTU1YTE0NWM3N2RjYTA0YTQ2N2ZhMjY4MDc0NCIsImRvYy9tYWNpbnRvc2gudHh0 IjoiNTc0OTFlNTM4NjY3MTFiNDY3MmQ5YjlmZjM1MzgwYjlkYWM5ZTBkOGUzZDZjMjBiZGQ2MTQw NjAzNjg3YzAyMyIsImRvYy9yZXBsYWNlbWVudC50eHQiOiI0YjZjM2JiZDc5OTlkOWQ0MTA4YTI4 MTU5NGJkMDJkMTM2MDdlMzM0YTk1NDY1YWZmZjhjMmMwOGQzOTVmMGU0IiwiZG9jL3dpbmRvd3Mt MTI1MC50eHQiOiI2MTI5NmJiNmEyMWNkYWI2MDIzMDBkMzJlY2ZiYTQzNGNiODJkZTVhYzNiYzg4 ZDU4NzEwZDJmMTI1ZTI4ZDM5IiwiZG9jL3dpbmRvd3MtMTI1MS50eHQiOiI3ZGVlYTFjNjFkZWEx NDg1YzhmZjAyZGIyYzdkNTc4ZGI3YTlhYWI2M2FiMWNmZDAyZWMwNGI1MTU4NjQ2ODllIiwiZG9j L3dpbmRvd3MtMTI1Mi50eHQiOiI5MzNlZjNiZGRkZmNlNWVlMTMyYjlmMWExYWE4YjQ3NDIzZDI1 ODdiYmU0NzViMTkwMjhkMGE2ZDM4ZTE4MGI2IiwiZG9jL3dpbmRvd3MtMTI1My50eHQiOiIxYTM4 NzQ4Yjg4ZTk5MDcxYTVjN2IzZDU0NTZlYWQ0Y2FlZGVhYmFiNTBkNTBkNjU4YmUxMDViYzExMzcx NGRlIiwiZG9jL3dpbmRvd3MtMTI1NC50eHQiOiJmODM3MmY4NmM2ZjhkNjQyNTYzY2Q2ZGRjMDI1 MjYwNTUzMjkyYTM5NDIzZGYxNjgzYTk4NjcwYmQ3YmYyYjQ3IiwiZG9jL3dpbmRvd3MtMTI1NS50 eHQiOiI0ZTU4NTI0OTQ3MzAwNTRlMmRhMjU4YTc0ZTFiOWQ3ODBhYmJjZGQ4Y2UyMmViYzIxOGNh MmVmZTllOTA0OTNkIiwiZG9jL3dpbmRvd3MtMTI1Ni50eHQiOiJjMDg3OWM1MTcyYWJlZGVhZDMw MmE0MDZlOGY2MGQ5Y2Q5NTk4Njk0YTBmZmE0ZmQyODhmZmU0ZmVmN2I4ZWExIiwiZG9jL3dpbmRv d3MtMTI1Ny50eHQiOiJjMjhhMGM5Zjk2NGZjYjJiNDZkMjFmNTM3YzQwMjQ0NjUwMWEyODAwNjcw NDgxZDZhYmY5ZmQ5ZTkwMThkNTIzIiwiZG9jL3dpbmRvd3MtMTI1OC50eHQiOiI1MDE5YWU0ZDYx ODA1Yzc5YWFjYmYxN2M5Mzc5MzM0MmRiYjA5OGQ2NWExODM3NzgzYmMzZTJjNmQ2YTIzNjAyIiwi ZG9jL3dpbmRvd3MtODc0LnR4dCI6IjRlZjBlNDUwMWM1ZmViYThiMTdhZWUxODE4NjAyZWQ0NGIz NmNhODQ3NWRiNzcxY2UyZmMxNmQzOTJjYWJlY2MiLCJkb2MveC1tYWMtY3lyaWxsaWMudHh0Ijoi NThiZTE1NGQ4YTg4OGNhM2Q0ODRiODNiNDRmNzQ5ODIzZWYzMzlhYjI3ZjE0ZDkwY2E5YTg1NmY1 MDUwYThiZCIsImRvYy94LXVzZXItZGVmaW5lZC50eHQiOiJmOWNkMDdjNDMyMWJmNWNmYjBiZTRi ZGRkZDI1MTA3Mjk5OWIwNGE2Y2Y3YTZmNWJjNjM3MDlhODRlMmMxZmZjIiwiZ2VuZXJhdGUtZW5j b2RpbmctZGF0YS5weSI6IjZmMzRhODQ1Nzg1ZjUzNDI1YWNjZjMwNzU5ZWRjNTY2ODczZmNiMGMy MTg4NjQ4ZTA3YjA5Yzg5OGYzOWRkZGIiLCJydXN0Zm10LnRvbWwiOiI4NWMxYTNiNDM4MmZkODll OTkxY2JiODFiNzBmYjUyNzgwNDcyZWRjMDY0Yzk2Mzk0M2NkYWFhNTZlMGEyMDMwIiwic3JjL2Fz Y2lpLnJzIjoiNTg4ZTM4YjAxZTY2NmQ1ZTc0NjI2MTdlYTdlOTBhMTA4ZDYwOGRlYzllMDE2ZjNk MjczYWMwNzQ0YWYyZTA1ZCIsInNyYy9iaWc1LnJzIjoiZWM2ZTI5MTMwMTFhMzhlOWEzZTgyNWEx NzMxZjEzOWE3Y2ExZDViMjY0ZmVmYWU1MWEzY2MxYTY4YTU3Y2VmOSIsInNyYy9kYXRhLnJzIjoi YjkzZjM0MDI1ZmU1YzZhODViNGI5ZjAwMzdiZjU4OTYxMzUyYmYxOWM4M2Y5MWIwOWIzNWViODQ5 NTYyNWVlYyIsInNyYy9ldWNfanAucnMiOiIzMjA0N2Y1YjU0MDE4OGM0Y2IxOWMwNzE2NWY4NDZi OTc4NmEwOWYxOGUzMTVlZDNlOWJkYTEyOTNkYWU1MmFhIiwic3JjL2V1Y19rci5ycyI6IjliMjVh ZmM3MmQ5Mzc4NzAwZWVjZmFjNThkNTVhZDFjNTk0NmQ2Y2QwY2NkZTJjMjljMDgyMDBlZjJkZTZi YjkiLCJzcmMvZ2IxODAzMC5ycyI6Ijg5Y2Q2YWUyMjQ3YWRkM2YzNDcxYTY5OWJjMTIxMTNhOWFl MmY2YjkxYTUyMjNhYmJmMTViNjhhMTM1MzdkY2QiLCJzcmMvZ2IxODAzMF8yMDIyLnJzIjoiM2My ZTA2NDkyYzVlMDBmY2QzOTUxNWU0YWY0YzU2MGQ4Y2VlNWMzMWU3YTdlMzg4ZGI2ODJiYzllZTMz ZWUzMiIsInNyYy9oYW5kbGVzLnJzIjoiYjA4Y2VmMWY1Nzg1YmI2YTQ4MjJmMmU4NDRjNmRmMWIw NDZiNzM3YjdhMDc1ZTQ1OTNlYWE4YzQyMDhlOWZlMiIsInNyYy9pc29fMjAyMl9qcC5ycyI6Ijli YjQ4NWU4MjU3NGY0YjdkNGIyMzY0ZjBmZjI3NmFjYjZhMGJjMTExNzU4NDIwYTNiMGVjNWUwNGMx OTY2NTIiLCJzcmMvbGliLnJzIjoiYzRkOWZhMWM0MzEwNWUyMzEwMTIyZjFiOTE5NzEyNTAzMmU2 MDdmZTZmNzliYzIyNzY5YjM0MGRlNzZlMjQzMCIsInNyYy9tYWNyb3MucnMiOiIyMDA5OTdmODg3 MGRlOGJmZDhjZGM0NzVlOTIxMTVkZjQyMTA4YzBkZjY2MWU0OWQzZDFjYmMzMjA1NmUxZDk5Iiwi c3JjL21lbS5ycyI6Ijk0ODU3MTEzN2QzYjE1MWRmOGRiNGZiMmM3MzNlNzRhZTU5NWQwNTVjZGYw YWQ4M2FiY2FiOTM0MWQ2YWRhYmUiLCJzcmMvcmVwbGFjZW1lbnQucnMiOiI3NjYwYjM0YTUzZjhj MWNhMmJkZmEwZTUxZTg0M2VjMjgzMjY5NTA5NTJhZDhiYzk2NTY5ZmViOTNhYzYyMzA4Iiwic3Jj L3NoaWZ0X2ppcy5ycyI6IjY5NTFhZTY3ZTM2YjFhMTJmYTNhMzA3MzQ5NTdmNDQ0ZDhiMWI0YWUw ZTJiZGU1MjA2MGIyOWJkMGYxNmQ5ZDkiLCJzcmMvc2ltZF9mdW5jcy5ycyI6IjA1YzZlNzdhZjc0 YmZlNzNjZDM5YTc1MjA2N2MxMTQyNWQ2YjQ2ZTVkYTQxOTkxMGY1NGJmNzVhNWMwMmE5ODQiLCJz cmMvc2luZ2xlX2J5dGUucnMiOiIzYWQ4NzExNmZiMzM5NDM0YTRiNThlOGYyYjE1NDg1ZjJiNjZi OWY3ODE0ZDcwOGYxNjE5NGVkMDhmNmQ2Y2NmIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luLnR4dCI6 ImE1YWUyOTA3ODY2MTBjN2ZhY2RiYjFkMDZiZTY4MTVlOGJiODFkNjhkZmE3MzgwZWRjN2RkYjZi OGM3ZTQxMmUiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW5fcmVmLnR4dCI6IjUyNzMzZDk5NzBmYjg5 ODdmMDE0ZmEwZWFjMjc5MjI1MDEyM2NmNTgzYjM2M2JlYjJjZTdiM2M1NWUzZGM1NTUiLCJzcmMv dGVzdF9kYXRhL2JpZzVfb3V0LnR4dCI6IjU3NDIwY2E0MWE2NjljOTQ5NzM4Yzg0Y2FiNjIwMDIw OTU5NTcyZDJlZTk3YjRlMDU5NDA1YmZlMjZhNzliNmQiLCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0 X3JlZi50eHQiOiIwMGU1ZjY3YzIyMmRkNWNkM2JiMTczOTI3NjkxMGI4ZjAwMzJmNDU0Y2JhN2Nm N2MzZWFhMjU1YTU2NDE4OGQwIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0IjoiMjE1MzRl Yzg3ZTgyZDc4NWQxMjhmOTgwOTAyZDEzZmFiNmQ5ZGVhMTVjNjlhOTkxZjQwOWQ5YjBhZmQxYzg1 MiIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3JlZi50eHQiOiJiMzAwOWU2YTk0OTY3ZGYxZjEx MzVjNjZmMDA1NjEwYmViYWQ2NjY2ZDYzNGFlYzcyZDJhZDc3YzMyMTFiZGEzIiwic3JjL3Rlc3Rf ZGF0YS9ldWNfa3Jfb3V0LnR4dCI6IjIwMjA1YjBiNWJlNGY1NzkyNzExOTNiNWJmYmM1NDlhNjFh OWZkNTIxN2MzM2VlY2ZhNjE3ODRhM2ZmZTJlOWQiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRf cmVmLnR4dCI6ImI1ZjU2NjIzN2Y4ZDRlZjRkMDNhZDI2MTM1Y2E5N2RmZDczOTg2MDhhODIxNjVi ZDQ4NTNiNTEzNGFiMjJjYjUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0IjoiMGRkMWZi ZjAzNjA5MzBkYWFmZGNlN2U2NzYxODUyMDA1YThmOTJmNzkxMDE4MGRmMTlhMDcwYjZjM2M1OWRl ZSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYudHh0IjoiZjNlYWVhMTExNTg1NzA1NGNm MzBmOGJhMTgyMTllNzIzNzdmMmE0YWZkODQ4Y2NmMjIzNzcwZDc1YWE0MjUxZCIsInNyYy90ZXN0 X2RhdGEvZ2IxODAzMF9vdXQudHh0IjoiNzE4NGZlOTU5MjYwOTU5N2Q1NWMyNzMzNjA2YjRjNGIx YTE4Yjc5YjI0NTMzZTFhMTZhMTRmZjkyZTdkMmI1NSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9v dXRfcmVmLnR4dCI6IjIzYmI4NTBkZGM2OWFhZjFiZGZlYWJlMDVhMTJkOTNmNjE0ZTU1NjBkYWM4 NzlkNWYwMjkyOWVlNGE3YzA2YzUiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4dCI6 Ijk4ZmI4MjM1MzBhMzBhNzZlYjBiYTdhYjZhYzc5Njk1OWU4ODY5YzFlYzE0M2YwMThhMTk2NDU4 MWFlODEzYWEiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQiOiJkZjgyMTY2 ZDJlMDFiYjQ0NjIxMWQ3ZTQ2ZjMzYjQ3ZDkzYWMxYmFmZWFlMmVkODgwZWU5M2M0MDk2ZDExMjEw Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXQudHh0IjoiYmVmOGViNDgwNGVkMDg0M2I5 ZGZmZGQxZDE2ODczODYzNWNjNzdmOGQwOTI5YmViMjUzMmI2ODYzMThkZGFlNiIsInNyYy90ZXN0 X2RhdGEvaXNvXzIwMjJfanBfb3V0X3JlZi50eHQiOiJiMjIxYjM2YjJiY2U0OWQ0OWI2MjBkYzhi YTgwZDc3YmFjNzRlODY2MGE4NmExMTYyOGU3OWI2N2YxZDk4OTY0Iiwic3JjL3Rlc3RfZGF0YS9q aXMwMjA4X2luLnR4dCI6IjNjMWE3YWFhZGEwMGQ2ZmZmNDFlNjBiZDc1ODlkN2FlOTRhZmFmNTYy NzU5YjExNjk1OGIxZDg0NzExZDE3YjYiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4 dCI6ImRmODIxNjZkMmUwMWJiNDQ2MjExZDdlNDZmMzNiNDdkOTNhYzFiYWZlYWUyZWQ4ODBlZTkz YzQwOTZkMTEyMTAiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0LnR4dCI6ImE2MTg4YjY3ZWIw MGJhOTgwY2I4MzA1NjE4NmM4OWJjZGRkYzFiMDIxMGFmOWFmYTc4ZWQxYzliN2EwOTg5NTAiLCJz cmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0X3JlZi50eHQiOiJlNzVhOTg2ZmU1ZTc4ZTY0YmY4ZmFm ZDczOTJhZTk2ZWUwY2IwYTRiMmU3ZWYyZmU3MjJiM2NhYWNmM2UyZjcwIiwic3JjL3Rlc3RfZGF0 YS9qaXMwMjEyX2luLnR4dCI6IjllZGE3NjYwMDI2NDZhMjczMTA0NTdjNjYxODMyNDI5YmVmZjkw ODlkMjcwMzM1NTgxMmM0Y2FjMzBkODAwYjUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5fcmVm LnR4dCI6ImZjZjc0YzU4ZDJjYmU5YjNmM2RiNGZhOWVmZjI2ZTA5ZjVlOTY0NDA5N2M3ODYxNGMw MzE3N2U5Mzg5ODhkMDMiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50eHQiOiJlNjVkZjc0 NmJlOTAzNTllNzA0MjI4Njg1MjJhN2FhM2U4ZWQyMGUwZDRjMGNmOTk5NWQ5ZGUyNDhiZjkzMzg4 Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVmLnR4dCI6IjEzYjE1YWVkNjRlOWU3Y2Iz NWU2YTc0MGI2NzQxM2YwYzI4NWZkYTk0NGY0ODE0ZDQ1YTc2MTllYTMzOGZiNWUiLCJzcmMvdGVz dF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0IjoiMTkyZDBhNGE4Y2U1ZDBmOTA0YzVjYjI4M2RmYjk3 NDU3N2VlNjY3Y2YxZTcxOTU1YTZkZDZhZWNlMmIzNTRlZiIsInNyYy90ZXN0X2RhdGEvc2hpZnRf amlzX291dF9yZWYudHh0IjoiY2I2ZDUwYjBjMTFiYWQxZDFmMWZjYzAyZDc3OTY3MmE4YjlhMjUw OWNiYmFmZGM2MzkyYWNlYjQ5YzhiNDI2OCIsInNyYy90ZXN0X2xhYmVsc19uYW1lcy5ycyI6IjIz YTJlMTFiMDJiM2I4ZDE1ZmI1NjEzYTYyNWUzZWRiMmM2MWU3MGUzYzU4MWFiZmQ2Mzg3MTlhNDA4 ODIwMGQiLCJzcmMvdGVzdGluZy5ycyI6ImY1OWU2NzFlOTVhOThhNTZmNmI1NzNlOGM2YmU0ZDcx ZTY3MGJmNTJmN2UyMGViMTYwNWQ5OTBhYWZhMTg5NGUiLCJzcmMvdXRmXzE2LnJzIjoiYzA3MWEx NDdmYWQzOGQ3NTBjMmMyNDdlMTQxYjc2YjkyOWE0ODAwN2I5OWYyNmIyOTIyYjljYWVjZGFmMmYy NSIsInNyYy91dGZfOC5ycyI6IjdiN2Q4ODdiMzQ3ZjFhZWZhMDMyNDZiMDI4YTM2YTcyNzU4YTRj ZTc2YzI4ZjNiNDVjMTk0Njc4NTFhYTc4MzkiLCJzcmMvdmFyaWFudC5ycyI6IjFmYWI1MzYzNTg4 YTE1NTRhNzE2OWRlODczMWVhOWNkZWQ3YWM2M2VhMzVjYWFiZGQxYzI3YThkZGU2OGMyN2IiLCJz cmMveF91c2VyX2RlZmluZWQucnMiOiJkNzMzNjYwYzc3NzVhZmE4MDA3Y2ZjODBjMDkwNTdkODc1 ZDY2MTNhYWY5OGM3ZGM5NDJlNDdmYjkzMzA2ZmViIn0sInBhY2thZ2UiOm51bGx9CitcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL0NhcmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRv bWwKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorKysrIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCitAQCAtMTAsMjIgKzEwLDE2 IEBACisgIyBTZWUgQ2FyZ28udG9tbC5vcmlnIGZvciB0aGUgb3JpZ2luYWwgY29udGVudHMuCisg CisgW3BhY2thZ2VdCisgZWRpdGlvbiA9ICIyMDE4IgorIHJ1c3QtdmVyc2lvbiA9ICIxLjM2Igor IG5hbWUgPSAiZW5jb2RpbmdfcnMiCisgdmVyc2lvbiA9ICIwLjguMzUiCisgYXV0aG9ycyA9IFsi SGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4uZmk+Il0KKy1idWlsZCA9IGZhbHNlCist YXV0b2xpYiA9IGZhbHNlCistYXV0b2JpbnMgPSBmYWxzZQorLWF1dG9leGFtcGxlcyA9IGZhbHNl CistYXV0b3Rlc3RzID0gZmFsc2UKKy1hdXRvYmVuY2hlcyA9IGZhbHNlCisgZGVzY3JpcHRpb24g PSAiQSBHZWNrby1vcmllbnRlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRW5jb2RpbmcgU3RhbmRh cmQiCisgaG9tZXBhZ2UgPSAiaHR0cHM6Ly9kb2NzLnJzL2VuY29kaW5nX3JzLyIKKyBkb2N1bWVu dGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy9lbmNvZGluZ19ycy8iCisgcmVhZG1lID0gIlJFQURN RS5tZCIKKyBrZXl3b3JkcyA9IFsKKyAgICAgImVuY29kaW5nIiwKKyAgICAgIndlYiIsCisgICAg ICJ1bmljb2RlIiwKK0BAIC0zNSwxNiArMjksMzkgQEAgY2F0ZWdvcmllcyA9IFsKKyAgICAgInRl eHQtcHJvY2Vzc2luZyIsCisgICAgICJlbmNvZGluZyIsCisgICAgICJ3ZWItcHJvZ3JhbW1pbmci LAorICAgICAiaW50ZXJuYXRpb25hbGl6YXRpb24iLAorIF0KKyBsaWNlbnNlID0gIihBcGFjaGUt Mi4wIE9SIE1JVCkgQU5EIEJTRC0zLUNsYXVzZSIKKyByZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0 aHViLmNvbS9oc2l2b25lbi9lbmNvZGluZ19ycyIKKyAKKytbcHJvZmlsZS5yZWxlYXNlXQorK2x0 byA9IHRydWUKKysKKytbZGVwZW5kZW5jaWVzXQorK2NmZy1pZiA9ICIxLjAiCisrCisrW2RlcGVu ZGVuY2llcy5hbnlfYWxsX3dvcmthcm91bmRdCisrdmVyc2lvbiA9ICIwLjEuMCIKKytvcHRpb25h bCA9IHRydWUKKysKKytbZGVwZW5kZW5jaWVzLnJ1c3R2ZXJzaW9uXQorK3ZlcnNpb24gPSAiMS4w LjE5IgorK29wdGlvbmFsID0gdHJ1ZQorKworK1tkZXBlbmRlbmNpZXMuc2VyZGVdCisrdmVyc2lv biA9ICIxLjAiCisrb3B0aW9uYWwgPSB0cnVlCisrCisrW2Rldi1kZXBlbmRlbmNpZXNdCisrYmlu Y29kZSA9ICIxLjAiCisrc2VyZGVfZGVyaXZlID0gIjEuMCIKKytzZXJkZV9qc29uID0gIjEuMCIK KysKKyBbZmVhdHVyZXNdCisgYWxsb2MgPSBbXQorIGRlZmF1bHQgPSBbImFsbG9jIl0KKyBmYXN0 LWJpZzUtaGFuemktZW5jb2RlID0gW10KKyBmYXN0LWdiLWhhbnppLWVuY29kZSA9IFtdCisgZmFz dC1oYW5ndWwtZW5jb2RlID0gW10KKyBmYXN0LWhhbmphLWVuY29kZSA9IFtdCisgZmFzdC1rYW5q aS1lbmNvZGUgPSBbXQorQEAgLTU3LDM1ICs3NCw4IEBAIGZhc3QtbGVnYWN5LWVuY29kZSA9IFsK KyBdCisgbGVzcy1zbG93LWJpZzUtaGFuemktZW5jb2RlID0gW10KKyBsZXNzLXNsb3ctZ2ItaGFu emktZW5jb2RlID0gW10KKyBsZXNzLXNsb3cta2FuamktZW5jb2RlID0gW10KKyBzaW1kLWFjY2Vs ID0gWworICAgICAiYW55X2FsbF93b3JrYXJvdW5kIiwKKyAgICAgInJ1c3R2ZXJzaW9uIiwKKyBd CistCistW2xpYl0KKy1uYW1lID0gImVuY29kaW5nX3JzIgorLXBhdGggPSAic3JjL2xpYi5ycyIK Ky0KKy1bZGVwZW5kZW5jaWVzXQorLWNmZy1pZiA9ICIxLjAiCistCistW2RlcGVuZGVuY2llcy5h bnlfYWxsX3dvcmthcm91bmRdCistdmVyc2lvbiA9ICIwLjEuMCIKKy1vcHRpb25hbCA9IHRydWUK Ky0KKy1bZGVwZW5kZW5jaWVzLnJ1c3R2ZXJzaW9uXQorLXZlcnNpb24gPSAiMS4wLjE5IgorLW9w dGlvbmFsID0gdHJ1ZQorLQorLVtkZXBlbmRlbmNpZXMuc2VyZGVdCistdmVyc2lvbiA9ICIxLjAi Cistb3B0aW9uYWwgPSB0cnVlCistCistW2Rldi1kZXBlbmRlbmNpZXNdCistYmluY29kZSA9ICIx LjAiCistc2VyZGVfZGVyaXZlID0gIjEuMCIKKy1zZXJkZV9qc29uID0gIjEuMCIKKy0KKy1bcHJv ZmlsZS5yZWxlYXNlXQorLWx0byA9IHRydWUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uLy5jYXJnby1jaGVja3N1bS5qc29uIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0 dmVyc2lvbi8uY2FyZ28tY2hlY2tzdW0uanNvbgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAv ZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vLmNhcmdvLWNoZWNr c3VtLmpzb24KK0BAIC0wLDAgKzEsMSBAQAorK3siZmlsZXMiOnsiQ2FyZ28udG9tbCI6ImZjMjEx Y2NkNjRkM2FkNTlhMDcxNWMxYTZmOGNiZmJiZDgzMDQ1ZjY0NDE5NDM5NDU5NWQxNjY0NmVlZTk5 NDciLCJMSUNFTlNFLUFQQUNIRSI6IjYyYzdhMWUzNWY1NjQwNjg5NmQ3YWE3Y2E1MmQwY2MwZDI3 MmFjMDIyYjVkMjc5NmU3ZDY5MDVkYjhhMzYzNmEiLCJMSUNFTlNFLU1JVCI6IjIzZjE4ZTAzZGM0 OWRmOTE2MjJmZTJhNzYxNzY0OTc0MDRlNDZjZWQ4YTcxNWQ5ZDJiNjdhNzQ0NjU3MWNjYTMiLCJS RUFETUUubWQiOiI5MTNkMDRkMTU4ODQzNTY2OTkxODQ1Y2M5ZDc2ZTI0NjEwYmYzMWY1YTk5ZTU1 MTE1MDIzY2NjMGIxNmZmMWU3IiwiYnVpbGQvYnVpbGQucnMiOiI0NDM4YjEwOGQ1YjE5OGNhNDNl ZjBhNzg1MDlkYTg5ODYxMDIwNjc0YWJkMDUxNjZhZGRkMWMzMDU4YWZiZmE2IiwiYnVpbGQvcnVz dGMucnMiOiJmYWY2NzAzM2VjODMxZDk2ODQwNmY1YTY2YzQ3NWRmMzM3ZjcyMjFlOWQxYWIzNDc3 ZmVkM2E2MjllMWVjNWJjIiwic3JjL2F0dHIucnMiOiI5MzAxY2Q0YWZmNWE5NjQ4YzA1N2Q1ZDhk ZTllYjY2OTIxZjBjM2E3MTVjNTFhZGE0NDU5NTc2YmQ0OWM4YjE5Iiwic3JjL2JvdW5kLnJzIjoi MTNjMzUzMDJiZDVkOTZlYmU1NDUwOTQ3N2U3MzZhOGI3MjBlMThjYjI0NzRlNTgwNTQ4MGM0NTE3 YTIwZTViMCIsInNyYy9jb25zdGZuLnJzIjoiNjEzYjhmNTNiMjFjYzA2YjRmNjE5ZmNlOTAwMDk5 M2QzZTc4NzNiNjUwNzAxY2EwMWNlZjFlNTNiZWQ1YjQwYSIsInNyYy9kYXRlLnJzIjoiZjc5YzU1 ZGRjZDE4ZTEyNDYxMGNkNWM5ODY3YjFlYmFhZTFmZWViNmRmYzM3ZTJiN2Y5NGUzMTM3YWE4ODNi NiIsInNyYy9lcnJvci5ycyI6ImNiMzcxMDJmMDNlYmJhY2EzMTNkODBmOTcxNGZlMDhkZmVmOTJm ZTk1Njc4OWVlODdkOTNlYjYxMjE3MDVmNGYiLCJzcmMvZXhwYW5kLnJzIjoiOWM5MzUyNWE4YzRh MGU2MjAzNjllZDI1NmExZWU0MGEwYjQ4Zjk4NGUwZmFkOGRiOGMwZTI5OThiYzhlY2IyMyIsInNy Yy9leHByLnJzIjoiOGU4Y2E3NmY0ZjU4Mzg0MzZkOWQ3MjczZjQ5OWM2OThiYjQxZjZjMTViYzA3 ZDMyZWM1YzFjYjhiZDNkZDczMSIsInNyYy9pdGVyLnJzIjoiOGQ0YjgxN2I5YWJjNGU4MTcxMDVi NjczZTE1ZjI5ZWY5YmI4Mjg0YTAxMGNlMDFhYzJkODMzODdmZTEzNjk0NyIsInNyYy9saWIucnMi OiI3N2M3MzI0OTM1NTBiN2U3YTQ2YWUyZDI1ZTg5YzM2M2E4NTFiYTI1YTllOWE4OWYxYWFkNjdi YWQ0YWZiYjA0Iiwic3JjL3JlbGVhc2UucnMiOiJlMDc1NWVkMTg4OWI0YzZmMGZhYWE1YWRlZTVm NjBmMjdmOTkyNmJlY2ZmODc1ZGJiNDFiNmE2NWFlNzU2NTkxIiwic3JjL3RpbWUucnMiOiI2ZmNm M2ExZWQyMzhhOTdiZDdhMzliMTg3Yzg4YmRjZWYwMjQ2ODc4NDI0ZTA2YWE3ZWI3NzlmODQxNTI5 YjM0Iiwic3JjL3Rva2VuLnJzIjoiODI0Y2U3NjVmNjkyZGI3M2FmYTAyZDNlYmIwMjgxYzc1MDc0 ODAzNWVmYzk4ZmE1NDdiZTI5ZDMwNzI2NjVjZSIsInNyYy92ZXJzaW9uLnJzIjoiYWZkYjA0OGJi YTk1YmJiODg1OTQ1ZWJhNTUyN2I2YmYwZWNhMDEwNTY0MmJmYzMwNGMyZjgyYThiN2Q1NTZkZiIs InRlc3RzL2NvbXBpbGV0ZXN0LnJzIjoiNGUzODFhYThjYTNlYWJiN2FjMTRkMWUwYzM3MDBiMzIy M2U0NzY0MDU0N2E2OTg4Y2ZhMTNhZDY4MjU1ZjYwZiIsInRlc3RzL3Rlc3RfY29uc3QucnMiOiJj YjFlMDE0NzliZDU3OWIxYjc3MzEyYTkwNjNhYjQ1NmZlNDRhYmFkMjI0M2U4MTg3M2MyYmY3ZWY1 ZjIwNWViIiwidGVzdHMvdGVzdF9ldmFsLnJzIjoiNmYwZWUzZjQ5YzlhMGQwYzM3NGE0ZDBlOWE5 ZGNlNzUzY2Q5ZmMyY2E3NzI1ZTAwMGE0MzVkYmQ1ZjRhOWNlMyIsInRlc3RzL3Rlc3RfcGFyc2Uu cnMiOiJmNDUwZTBhN2YyMzkxNTYxNDg0YWJiMWI4NTExMjRiNTc0Nzc1NWI3NmY5NDVlMTIxMzcw YWRjNzEwZjIwOTlkIiwidGVzdHMvdWkvYmFkLWJvdW5kLnJzIjoiMjViZGUyNzhmY2FhYmY2Mjg2 ODQxNzE0OGE1ZTVmMjAwNmJmNTg5ZDdlYmQ3YmY2MDA0ZmI4ZDc4ZTQ3NTk0ZiIsInRlc3RzL3Vp L2JhZC1ib3VuZC5zdGRlcnIiOiIyM2I0Y2EwYWExYTdkZjc1YjVmYjM0ZTU1M2EzMWZhYTZhM2Nj YzAyOWVjZDdkNjhiMDU2ODk3YzJjOWNmZjlmIiwidGVzdHMvdWkvYmFkLWRhdGUucnMiOiI2ZTIz NzE0ZGFlOGI2MzQ2ZmVmZTUwZGFjZDRhYmJhMzI2NTI0OGJiYWRmZGQ2MGM3MzkxMzhhYThhMDAz N2JhIiwidGVzdHMvdWkvYmFkLWRhdGUuc3RkZXJyIjoiZjRhZWM3MmNhOTFiYTc0M2NhZGNkYWY1 YTg3NGM3MDE5NDlhZGQ1ZWZjZTQ5MGFhZjJiZjEyNDhlZjU3ODc2OCIsInRlc3RzL3VpL2JhZC1u b3QucnMiOiJmMDAzZGY4YmQyNDVlOWRkOGVkYzNhNmQ5NDA3OGVlNTE2MmZhYzdhOThkYjg4MTI3 MWYwZjViNmRiOThkNDVkIiwidGVzdHMvdWkvYmFkLW5vdC5zdGRlcnIiOiIxYWViYjMxMjFkMDY3 ZDQzMmEzMmRkOTVmZjM4MGNlYWMxNWEwNTMxYzM0ZjkwY2VlOTUwNTgyNTU4ODQxYzU2IiwidGVz dHMvdWkvYmFkLXZlcnNpb24ucnMiOiJmNGVhMmNkMDM4ZTZjNjNkZWI5YzJlM2NlZmZjZTkzZGJm MTc5ZDljZTE4YzE2ZDg4ZjNiNmNkNzEzOGE4YzhlIiwidGVzdHMvdWkvYmFkLXZlcnNpb24uc3Rk ZXJyIjoiZTk0MjE1ODZkNTljYjkxMzUxMjNiZDk3NzEwNjU1MDE0Zjk1Y2M1ZjU1YjBmOTYxMWUx ZDJlOGNlOWUyOWE1ZCIsInRlc3RzL3VpL2NvbnN0LW5vdC1mbi5ycyI6IjEwYmJlMzhmMGQ4OTM5 MWZmZjA2OTg3NTZlNGNmZDRlNzJhNDEwOTAzNjAzOTNhMGM5NTFiNjdkZjE0ZDFjMzUiLCJ0ZXN0 cy91aS9jb25zdC1ub3QtZm4uc3RkZXJyIjoiMTE4MDY2MmZkM2I4YzQ0MjZkNDY5MjM5MThhMmU1 OGRkOWI2MjU5ZjFhMzY0NDY5YWUxM2Q1ZmMzZDY5Y2U2YyJ9LCJwYWNrYWdlIjoiY2Y1NDcxNWE1 NzNiOTlhYzgwZGYwYmMyMDZkYTAyMmJjZDQ0MmM5NzQ5NTJjN2I5NzIwMDY5MzcwODUyZTIxZiJ9 CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3J1c3R2ZXJzaW9uL0NhcmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9u L0NhcmdvLnRvbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL0NhcmdvLnRvbWwKK0BAIC0wLDAgKzEsNjkgQEAK KysjIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBCWSBDQVJHTworKyMKKysj IFdoZW4gdXBsb2FkaW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2FyZ28gd2lsbCBhdXRvbWF0 aWNhbGx5CisrIyAibm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZvciBtYXhpbWFsIGNvbXBh dGliaWxpdHkKKysjIHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFuZCBhbHNvIHJld3JpdGUg YHBhdGhgIGRlcGVuZGVuY2llcworKyMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5pbykgZGVw ZW5kZW5jaWVzLgorKyMKKysjIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdhcmUg dGhhdCB0aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAorKyMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5IGRp ZmZlcmVudCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KKysjIFNlZSBDYXJnby50b21sLm9y aWcgZm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KKysKKytbcGFja2FnZV0KKytlZGl0aW9uID0g IjIwMTgiCisrcnVzdC12ZXJzaW9uID0gIjEuMzEiCisrbmFtZSA9ICJydXN0dmVyc2lvbiIKKyt2 ZXJzaW9uID0gIjEuMC4yMyIKKythdXRob3JzID0gWyJEYXZpZCBUb2xuYXkgPGR0b2xuYXlAZ21h aWwuY29tPiJdCisrYnVpbGQgPSAiYnVpbGQvYnVpbGQucnMiCisrYXV0b2xpYiA9IGZhbHNlCisr YXV0b2JpbnMgPSBmYWxzZQorK2F1dG9leGFtcGxlcyA9IGZhbHNlCisrYXV0b3Rlc3RzID0gZmFs c2UKKythdXRvYmVuY2hlcyA9IGZhbHNlCisrZGVzY3JpcHRpb24gPSAiQ29uZGl0aW9uYWwgY29t cGlsYXRpb24gYWNjb3JkaW5nIHRvIHJ1c3RjIGNvbXBpbGVyIHZlcnNpb24iCisrZG9jdW1lbnRh dGlvbiA9ICJodHRwczovL2RvY3MucnMvcnVzdHZlcnNpb24iCisrcmVhZG1lID0gIlJFQURNRS5t ZCIKKytjYXRlZ29yaWVzID0gWworKyAgICAiZGV2ZWxvcG1lbnQtdG9vbHM6OmJ1aWxkLXV0aWxz IiwKKysgICAgIm5vLXN0ZCIsCisrICAgICJuby1zdGQ6Om5vLWFsbG9jIiwKKytdCisrbGljZW5z ZSA9ICJNSVQgT1IgQXBhY2hlLTIuMCIKKytyZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0aHViLmNv bS9kdG9sbmF5L3J1c3R2ZXJzaW9uIgorKworK1twYWNrYWdlLm1ldGFkYXRhLmRvY3MucnNdCisr dGFyZ2V0cyA9IFsieDg2XzY0LXVua25vd24tbGludXgtZ251Il0KKytydXN0ZG9jLWFyZ3MgPSBb CisrICAgICItLWdlbmVyYXRlLWxpbmstdG8tZGVmaW5pdGlvbiIsCisrICAgICItLWdlbmVyYXRl LW1hY3JvLWV4cGFuc2lvbiIsCisrICAgICItLWV4dGVybi1odG1sLXJvb3QtdXJsPWNvcmU9aHR0 cHM6Ly9kb2MucnVzdC1sYW5nLm9yZyIsCisrICAgICItLWV4dGVybi1odG1sLXJvb3QtdXJsPWFs bG9jPWh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmciLAorKyAgICAiLS1leHRlcm4taHRtbC1yb290 LXVybD1zdGQ9aHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZyIsCisrICAgICItLWV4dGVybi1odG1s LXJvb3QtdXJsPXByb2NfbWFjcm89aHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZyIsCisrXQorKwor K1tsaWJdCisrbmFtZSA9ICJydXN0dmVyc2lvbiIKKytwYXRoID0gInNyYy9saWIucnMiCisrcHJv Yy1tYWNybyA9IHRydWUKKysKKytbW3Rlc3RdXQorK25hbWUgPSAiY29tcGlsZXRlc3QiCisrcGF0 aCA9ICJ0ZXN0cy9jb21waWxldGVzdC5ycyIKKysKKytbW3Rlc3RdXQorK25hbWUgPSAidGVzdF9j b25zdCIKKytwYXRoID0gInRlc3RzL3Rlc3RfY29uc3QucnMiCisrCisrW1t0ZXN0XV0KKytuYW1l ID0gInRlc3RfZXZhbCIKKytwYXRoID0gInRlc3RzL3Rlc3RfZXZhbC5ycyIKKysKKytbW3Rlc3Rd XQorK25hbWUgPSAidGVzdF9wYXJzZSIKKytwYXRoID0gInRlc3RzL3Rlc3RfcGFyc2UucnMiCisr CisrW2Rldi1kZXBlbmRlbmNpZXMudHJ5YnVpbGRdCisrdmVyc2lvbiA9ICIxLjAuNDkiCisrZmVh dHVyZXMgPSBbImRpZmYiXQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vTElDRU5TRS1BUEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL0xJQ0VOU0Ut QVBBQ0hFCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi9MSUNFTlNFLUFQQUNIRQorQEAgLTAsMCArMSwxNzYgQEAK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorKyAgICAgICAg ICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKysgICAgICAgICAgICAg ICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisrCisrVEVSTVMgQU5EIENP TkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisrCisrMS4g RGVmaW5pdGlvbnMuCisrCisrICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBj b25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKysgICBhbmQgZGlzdHJpYnV0aW9uIGFz IGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKysKKysg ICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0 aG9yaXplZCBieQorKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUg TGljZW5zZS4KKysKKysgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0 aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisrICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9s LCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorKyAgIGNvbnRyb2wgd2l0 aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisrICAg ImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1 c2UgdGhlCisrICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRo ZXIgYnkgY29udHJhY3Qgb3IKKysgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZp ZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKysgICBvdXRzdGFuZGluZyBzaGFyZXMs IG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorKworKyAgICJZ b3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkK KysgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorKwor KyAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2lu ZyBtb2RpZmljYXRpb25zLAorKyAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdh cmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKysgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0 aW9uIGZpbGVzLgorKworKyAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1 bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisrICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24g b2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorKyAgIG5vdCBsaW1pdGVkIHRvIGNvbXBp bGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKysgICBhbmQgY29udmVy c2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisrCisrICAgIldvcmsiIHNoYWxsIG1lYW4gdGhl IHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKysgICBPYmplY3QgZm9y bSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisr ICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRo ZSB3b3JrCisrICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93 KS4KKysKKysgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhl ciBpbiBTb3VyY2Ugb3IgT2JqZWN0CisrICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVy aXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorKyAgIGVkaXRvcmlhbCByZXZp c2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMK KysgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hp cC4gRm9yIHRoZSBwdXJwb3NlcworKyAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3Jr cyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorKyAgIHNlcGFyYWJsZSBmcm9t LCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwK KysgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorKworKyAgICJDb250 cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisr ICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25z IG9yIGFkZGl0aW9ucworKyAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJl b2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorKyAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3Ig aW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKysgICBvciBieSBh biBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhh bGYgb2YKKysgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMg ZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKysgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmlj LCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisrICAgdG8gdGhlIExpY2Vu c29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8K KysgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNv ZGUgY29udHJvbCBzeXN0ZW1zLAorKyAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQg YXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisrICAgTGljZW5zb3IgZm9yIHRo ZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisrICAg ZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBv dGhlcndpc2UKKysgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25l ciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKysKKysgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1l YW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorKyAgIG9uIGJl aGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29y IGFuZAorKyAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorKwor KzIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucyBvZgorKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkg Z3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKysgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUs IG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorKyAgIGNvcHlyaWdodCBsaWNl bnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorKyAgIHB1Ymxp Y2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRl IHRoZQorKyAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2Jq ZWN0IGZvcm0uCisrCisrMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhl IHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisrICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1 dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorKyAgIHdvcmxkd2lkZSwgbm9u LWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisrICAgKGV4 Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBo YXZlIG1hZGUsCisrICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhl cndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisrICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMg b25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKysgICBieSBzdWNoIENvbnRy aWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorKyAgIENvbnRy aWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24o cykKKysgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBz dWJtaXR0ZWQuIElmIFlvdQorKyAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0 IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisrICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWlt IGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworKyAgIG9yIGEgQ29udHJpYnV0 aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisrICAg b3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNl bnNlcworKyAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3Jr IHNoYWxsIHRlcm1pbmF0ZQorKyAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBm aWxlZC4KKysKKys0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3Ry aWJ1dGUgY29waWVzIG9mIHRoZQorKyAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9m IGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorKyAgIG1vZGlmaWNhdGlvbnMsIGFuZCBp biBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisrICAgbWVldCB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisrCisrICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVy IHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKysgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNv cHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKysKKysgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1v ZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisrICAgICAgIHN0YXRpbmcg dGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorKworKyAgIChjKSBZb3UgbXVzdCByZXRh aW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworKyAgICAgICB0 aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5k CisrICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhl IFdvcmssCisrICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRh aW4gdG8gYW55IHBhcnQgb2YKKysgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorKwor KyAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0 IG9mIGl0cworKyAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3Mg dGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisrICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5 IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorKyAgICAgICB3aXRoaW4gc3Vj aCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKysgICAg ICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVh c3Qgb25lCisrICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0Ug dGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisrICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUg V29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKysgICAgICAgZG9jdW1lbnRhdGlvbiwg aWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisrICAgICAg IHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBh bmQKKysgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFw cGVhci4gVGhlIGNvbnRlbnRzCisrICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGlu Zm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKysgICAgICAgZG8gbm90IG1vZGlmeSB0aGUg TGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKysgICAgICAgbm90aWNl cyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUK KysgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdv cmssIHByb3ZpZGVkCisrICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5v dGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorKyAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vu c2UuCisrCisrICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZ b3VyIG1vZGlmaWNhdGlvbnMgYW5kCisrICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZm ZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworKyAgIGZvciB1c2UsIHJlcHJvZHVj dGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKysgICBmb3Ig YW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwK KysgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNl IGNvbXBsaWVzIHdpdGgKKysgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNl LgorKworKzUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNp dGx5IHN0YXRlIG90aGVyd2lzZSwKKysgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkg c3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKysgICBieSBZb3UgdG8gdGhlIExp Y2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorKyAgIHRo aXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgor KyAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVy c2VkZSBvciBtb2RpZnkKKysgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdy ZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorKyAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5n IHN1Y2ggQ29udHJpYnV0aW9ucy4KKysKKys2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9l cyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisrICAgbmFtZXMsIHRyYWRl bWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAor KyAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBp biBkZXNjcmliaW5nIHRoZQorKyAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcg dGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorKworKzcuIERpc2NsYWltZXIgb2YgV2Fy cmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorKyAgIGFncmVlZCB0 byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKysgICBD b250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJ UywKKysgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0 aGVyIGV4cHJlc3Mgb3IKKysgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlv biwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworKyAgIG9mIFRJVExFLCBOT04tSU5GUklO R0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKysgICBQQVJUSUNVTEFS IFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUK KysgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsg YW5kIGFzc3VtZSBhbnkKKysgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBv ZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisrCisrOC4gTGltaXRhdGlvbiBvZiBM aWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisrICAgd2hl dGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndp c2UsCisrICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGli ZXJhdGUgYW5kIGdyb3NzbHkKKysgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdy aXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorKyAgIGxpYWJsZSB0byBZb3UgZm9yIGRh bWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKysgICBpbmNp ZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5n IGFzIGEKKysgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGlu YWJpbGl0eSB0byB1c2UgdGhlCisrICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0 byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorKyAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1 dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisrICAgb3RoZXIgY29t bWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorKyAg IGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKysK Kys5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJl ZGlzdHJpYnV0aW5nCisrICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZ b3UgbWF5IGNob29zZSB0byBvZmZlciwKKysgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0 YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorKyAgIG9yIG90aGVyIGxpYWJp bGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisrICAg TGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkg YWN0IG9ubHkKKysgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25z aWJpbGl0eSwgbm90IG9uIGJlaGFsZgorKyAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5k IG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKysgICBkZWZlbmQsIGFuZCBob2xkIGVh Y2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKysgICBpbmN1cnJlZCBi eSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29u CisrICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBs aWFiaWxpdHkuCisrCisrRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9MSUNFTlNFLU1JVCBiL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vTElDRU5TRS1NSVQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rl di9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL0xJQ0VOU0UtTUlUCitA QCAtMCwwICsxLDIzIEBACisrUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueQorK3BlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQKKytkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRv IGRlYWwgaW4gdGhlCisrU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQKKytsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl LAorK3B1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBv ZgorK3RoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3 YXJlCisraXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKKytj b25kaXRpb25zOgorKworK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlCisrc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucworK29mIHRoZSBTb2Z0d2FyZS4KKysKKytUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRgorK0FOWSBLSU5ELCBFWFBSRVNTIE9S IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKKytUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEKKytQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQKKytTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZ UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorK0NMQUlNLCBEQU1BR0VTIE9SIE9USEVS IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKytPRiBDT05UUkFDVCwgVE9SVCBPUiBP VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SCisrSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisrREVBTElOR1MgSU4gVEhFIFNPRlRXQVJF LgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vUkVBRE1FLm1kIGIv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9SRUFETUUubWQKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL1JF QURNRS5tZAorQEAgLTAsMCArMSwxNjcgQEAKKytDb21waWxlciB2ZXJzaW9uIGNmZworKz09PT09 PT09PT09PT09PT09PT09CisrCisrWzxpbWcgYWx0PSJnaXRodWIiIHNyYz0iaHR0cHM6Ly9pbWcu c2hpZWxkcy5pby9iYWRnZS9naXRodWItZHRvbG5heS9ydXN0dmVyc2lvbi04ZGEwY2I/c3R5bGU9 Zm9yLXRoZS1iYWRnZSZsYWJlbENvbG9yPTU1NTU1NSZsb2dvPWdpdGh1YiIgaGVpZ2h0PSIyMCI+ XShodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9ydXN0dmVyc2lvbikKKytbPGltZyBhbHQ9ImNy YXRlcy5pbyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2NyYXRlcy92L3J1c3R2ZXJzaW9u LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmNvbG9yPWZjOGQ2MiZsb2dvPXJ1c3QiIGhlaWdodD0i MjAiPl0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3R2ZXJzaW9uKQorK1s8aW1nIGFsdD0i ZG9jcy5ycyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY3MucnMtcnVzdHZl cnNpb24tNjZjMmE1P3N0eWxlPWZvci10aGUtYmFkZ2UmbGFiZWxDb2xvcj01NTU1NTUmbG9nbz1k b2NzLnJzIiBoZWlnaHQ9IjIwIj5dKGh0dHBzOi8vZG9jcy5ycy9ydXN0dmVyc2lvbikKKytbPGlt ZyBhbHQ9ImJ1aWxkIHN0YXR1cyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9h Y3Rpb25zL3dvcmtmbG93L3N0YXR1cy9kdG9sbmF5L3J1c3R2ZXJzaW9uL2NpLnltbD9icmFuY2g9 bWFzdGVyJnN0eWxlPWZvci10aGUtYmFkZ2UiIGhlaWdodD0iMjAiPl0oaHR0cHM6Ly9naXRodWIu Y29tL2R0b2xuYXkvcnVzdHZlcnNpb24vYWN0aW9ucz9xdWVyeT1icmFuY2glM0FtYXN0ZXIpCisr CisrVGhpcyBjcmF0ZSBwcm92aWRlcyBtYWNyb3MgZm9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9u IGFjY29yZGluZyB0byBydXN0YworK2NvbXBpbGVyIHZlcnNpb24sIGFuYWxvZ291cyB0byBbYCNb Y2ZnKC4uLildYF1bY2ZnXSBhbmQKKytbYCNbY2ZnX2F0dHIoLi4uKV1gXVtjZmdfYXR0cl0uCisr CisrW2NmZ106IGh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvcmVmZXJlbmNlL2NvbmRpdGlvbmFs LWNvbXBpbGF0aW9uLmh0bWwjdGhlLWNmZy1hdHRyaWJ1dGUKKytbY2ZnX2F0dHJdOiBodHRwczov L2RvYy5ydXN0LWxhbmcub3JnL3JlZmVyZW5jZS9jb25kaXRpb25hbC1jb21waWxhdGlvbi5odG1s I3RoZS1jZmdfYXR0ci1hdHRyaWJ1dGUKKysKKytgYGB0b21sCisrW2RlcGVuZGVuY2llc10KKyty dXN0dmVyc2lvbiA9ICIxLjAiCisrYGBgCisrCisrPGJyPgorKworKyMjIFNlbGVjdG9ycworKwor Ky0gPGI+YCNbcnVzdHZlcnNpb246OnN0YWJsZV1gPC9iPgorKyAg4oCUPGJyPgorKyAgVHJ1ZSBv biBhbnkgc3RhYmxlIGNvbXBpbGVyLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246OnN0YWJsZSgx LjM0KV1gPC9iPgorKyAg4oCUPGJyPgorKyAgVHJ1ZSBvbiBleGFjdGx5IHRoZSBzcGVjaWZpZWQg c3RhYmxlIGNvbXBpbGVyLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246OmJldGFdYDwvYj4KKysg IOKAlDxicj4KKysgIFRydWUgb24gYW55IGJldGEgY29tcGlsZXIuCisrCisrLSA8Yj5gI1tydXN0 dmVyc2lvbjo6bmlnaHRseV1gPC9iPgorKyAg4oCUPGJyPgorKyAgVHJ1ZSBvbiBhbnkgbmlnaHRs eSBjb21waWxlciBvciBkZXYgYnVpbGQuCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6bmlnaHRs eSgyMDI1LTAxLTAxKV1gPC9iPgorKyAg4oCUPGJyPgorKyAgVHJ1ZSBvbiBleGFjdGx5IG9uZSBu aWdodGx5LgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246OnNpbmNlKDEuMzQpXWA8L2I+CisrICDi gJQ8YnI+CisrICBUcnVlIG9uIHRoYXQgc3RhYmxlIHJlbGVhc2UgYW5kIGFueSBsYXRlciBjb21w aWxlciwgaW5jbHVkaW5nIGJldGEgYW5kCisrICBuaWdodGx5LgorKworKy0gPGI+YCNbcnVzdHZl cnNpb246OnNpbmNlKDIwMjUtMDEtMDEpXWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIG9uIHRo YXQgbmlnaHRseSBhbmQgYWxsIG5ld2VyIG9uZXMuCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6 YmVmb3JlKGA8L2I+PGk+dmVyc2lvbiBvciBkYXRlPC9pPjxiPmApXWA8L2I+CisrICDigJQ8YnI+ CisrICBOZWdhdGl2ZSBvZiAqI1tydXN0dmVyc2lvbjo6c2luY2UoLi4uKV0qLgorKworKy0gPGI+ YCNbcnVzdHZlcnNpb246Om5vdChgPC9iPjxpPnNlbGVjdG9yPC9pPjxiPmApXWA8L2I+CisrICDi gJQ8YnI+CisrICBOZWdhdGl2ZSBvZiBhbnkgc2VsZWN0b3I7IGZvciBleGFtcGxlICojW3J1c3R2 ZXJzaW9uOjpub3QobmlnaHRseSldKi4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjphbnkoYDwv Yj48aT5zZWxlY3RvcnMuLi48L2k+PGI+YCldYDwvYj4KKysgIOKAlDxicj4KKysgIFRydWUgaWYg YW55IG9mIHRoZSBjb21tYS1zZXBhcmF0ZWQgc2VsZWN0b3JzIGlzIHRydWU7IGZvciBleGFtcGxl CisrICAqI1tydXN0dmVyc2lvbjo6YW55KHN0YWJsZSwgYmV0YSldKi4KKysKKystIDxiPmAjW3J1 c3R2ZXJzaW9uOjphbGwoYDwvYj48aT5zZWxlY3RvcnMuLi48L2k+PGI+YCldYDwvYj4KKysgIOKA lDxicj4KKysgIFRydWUgaWYgYWxsIG9mIHRoZSBjb21tYS1zZXBhcmF0ZWQgc2VsZWN0b3JzIGFy ZSB0cnVlOyBmb3IgZXhhbXBsZQorKyAgKiNbcnVzdHZlcnNpb246OmFsbChzaW5jZSgxLjMxKSwg YmVmb3JlKDEuMzQpKV0qLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246OmF0dHIoYDwvYj48aT5z ZWxlY3RvcjwvaT48Yj5gLCBgPC9iPjxpPmF0dHJpYnV0ZTwvaT48Yj5gKV1gPC9iPgorKyAg4oCU PGJyPgorKyAgRm9yIGNvbmRpdGlvbmFsIGluY2x1c2lvbiBvZiBhdHRyaWJ1dGVzOyBhbmFsb2dv dXMgdG8gYGNmZ19hdHRyYC4KKysKKystIDxiPmBydXN0dmVyc2lvbjo6Y2ZnIShgPC9iPjxpPnNl bGVjdG9yPC9pPjxiPmApYDwvYj4KKysgIOKAlDxicj4KKysgIEFuIGV4cHJlc3Npb24gZm9ybSBv ZiBhbnkgb2YgdGhlIGFib3ZlIGF0dHJpYnV0ZXM7IGZvciBleGFtcGxlCisrICAqaWYgcnVzdHZl cnNpb246OmNmZyEoYW55KHN0YWJsZSwgYmV0YSkpIHsgLi4uIH0qLgorKworKzxicj4KKysKKysj IyBVc2UgY2FzZXMKKysKKytQcm92aWRpbmcgYWRkaXRpb25hbCB0cmFpdCBpbXBscyBhcyB0eXBl cyBhcmUgc3RhYmlsaXplZCBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeQorK3dpdGhvdXQgYnJlYWtp bmcgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIGNvbXBpbGVyczsgaW4gdGhpcyBjYXNlIFBpblw8 UFw+Cisrc3RhYmlsaXplZCBpbiBbUnVzdCAxLjMzXVtwaW5dOgorKworK1twaW5dOiBodHRwczov L2Jsb2cucnVzdC1sYW5nLm9yZy8yMDE5LzAyLzI4L1J1c3QtMS4zMy4wLmh0bWwjcGlubmluZwor KworK2BgYHJ1c3QKKysjW3J1c3R2ZXJzaW9uOjpzaW5jZSgxLjMzKV0KKyt1c2Ugc3RkOjpwaW46 OlBpbjsKKysKKysjW3J1c3R2ZXJzaW9uOjpzaW5jZSgxLjMzKV0KKytpbXBsPFA6IE15VHJhaXQ+ IE15VHJhaXQgZm9yIFBpbjxQPiB7CisrICAgIC8qIC4uLiAqLworK30KKytgYGAKKysKKytTaW1p bGFyIGJ1dCBmb3IgbGFuZ3VhZ2UgZmVhdHVyZXM7IHRoZSBhYmlsaXR5IHRvIGNvbnRyb2wgYWxp Z25tZW50IGdyZWF0ZXIgdGhhbgorKzEgb2YgcGFja2VkIHN0cnVjdHMgd2FzIHN0YWJpbGl6ZWQg aW4gW1J1c3QgMS4zM11bcGFja2VkXS4KKysKKytbcGFja2VkXTogaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy9ydXN0L2Jsb2IvbWFzdGVyL1JFTEVBU0VTLm1kI3ZlcnNpb24tMTMzMC0yMDE5 LTAyLTI4CisrCisrYGBgcnVzdAorKyNbcnVzdHZlcnNpb246OmF0dHIoYmVmb3JlKDEuMzMpLCBy ZXByKHBhY2tlZCkpXQorKyNbcnVzdHZlcnNpb246OmF0dHIoc2luY2UoMS4zMyksIHJlcHIocGFj a2VkKDIpKSldCisrc3RydWN0IFNpeChpMTYsIGkzMik7CisrCisrZm4gbWFpbigpIHsKKysgICAg cHJpbnRsbiEoInt9Iiwgc3RkOjptZW06OmFsaWduX29mOjo8U2l4PigpKTsKKyt9CisrYGBgCisr CisrQXVnbWVudGluZyBjb2RlIHdpdGggYGNvbnN0YCBhcyBjb25zdCBpbXBscyBhcmUgc3RhYmls aXplZCBpbiB0aGUgc3RhbmRhcmQKKytsaWJyYXJ5LiBUaGlzIHVzZSBvZiBgY29uc3RgIGFzIGFu IGF0dHJpYnV0ZSBpcyByZWNvZ25pemVkIGFzIGEgc3BlY2lhbCBjYXNlIGJ5CisrdGhlIHJ1c3R2 ZXJzaW9uOjphdHRyIG1hY3JvLgorKworK2BgYHJ1c3QKKyt1c2Ugc3RkOjp0aW1lOjpEdXJhdGlv bjsKKysKKysjW3J1c3R2ZXJzaW9uOjphdHRyKHNpbmNlKDEuMzIpLCBjb25zdCldCisrZm4gZHVy YXRpb25fYXNfZGF5cyhkdXI6IER1cmF0aW9uKSAtPiB1NjQgeworKyAgICBkdXIuYXNfc2Vjcygp IC8gNjAgLyA2MCAvIDI0CisrfQorK2BgYAorKworK0VtaXR0aW5nIENhcmdvIGNmZyBkaXJlY3Rp dmVzIGZyb20gYSBidWlsZCBzY3JpcHQuIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzCisrbGlzdGlu ZyBgcnVzdHZlcnNpb25gIHVuZGVyIGBbYnVpbGQtZGVwZW5kZW5jaWVzXWAgaW4gQ2FyZ28udG9t bCwgbm90CisrYFtkZXBlbmRlbmNpZXNdYC4KKysKKytgYGBydXN0CisrLy8gYnVpbGQucnMKKysK KytmbiBtYWluKCkgeworKyAgICBpZiBydXN0dmVyc2lvbjo6Y2ZnIShzaW5jZSgxLjM2KSkgewor KyAgICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1ub19zdGQiKTsKKysgICAgfQorK30K KytgYGAKKysKKytgYGBydXN0CisrLy8gc3JjL2xpYi5ycworKworKyMhW2NmZ19hdHRyKG5vX3N0 ZCwgbm9fc3RkKV0KKysKKysjW2NmZyhub19zdGQpXQorK2V4dGVybiBjcmF0ZSBhbGxvYzsKKytg YGAKKysKKys8YnI+CisrCisrIyMjIyBMaWNlbnNlCisrCisrPHN1cD4KKytMaWNlbnNlZCB1bmRl ciBlaXRoZXIgb2YgPGEgaHJlZj0iTElDRU5TRS1BUEFDSEUiPkFwYWNoZSBMaWNlbnNlLCBWZXJz aW9uCisrMi4wPC9hPiBvciA8YSBocmVmPSJMSUNFTlNFLU1JVCI+TUlUIGxpY2Vuc2U8L2E+IGF0 IHlvdXIgb3B0aW9uLgorKzwvc3VwPgorKworKzxicj4KKysKKys8c3ViPgorK1VubGVzcyB5b3Ug ZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsIGFueSBjb250cmlidXRpb24gaW50ZW50aW9uYWxs eSBzdWJtaXR0ZWQKKytmb3IgaW5jbHVzaW9uIGluIHRoaXMgY3JhdGUgYnkgeW91LCBhcyBkZWZp bmVkIGluIHRoZSBBcGFjaGUtMi4wIGxpY2Vuc2UsIHNoYWxsCisrYmUgZHVhbCBsaWNlbnNlZCBh cyBhYm92ZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorKzwv c3ViPgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vYnVpbGQvYnVp bGQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL2J1aWxkL2J1aWxkLnJzCituZXcg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi9idWlsZC9idWlsZC5ycworQEAgLTAsMCArMSwxMTkgQEAKKysjIVthbGxvdygK KysgICAgY2xpcHB5OjplbGlkYWJsZV9saWZldGltZV9uYW1lcywKKysgICAgY2xpcHB5OjplbnVt X2dsb2JfdXNlLAorKyAgICBjbGlwcHk6Om11c3RfdXNlX2NhbmRpZGF0ZSwKKysgICAgY2xpcHB5 OjpzaW5nbGVfbWF0Y2hfZWxzZQorKyldCisrCisrbW9kIHJ1c3RjOworKworK3VzZSBzdGQ6OmVu djsKKyt1c2Ugc3RkOjpmZmk6Ok9zU3RyaW5nOworK3VzZSBzdGQ6OmZtdDo6e3NlbGYsIERlYnVn LCBEaXNwbGF5fTsKKyt1c2Ugc3RkOjpmczsKKyt1c2Ugc3RkOjppdGVyOworK3VzZSBzdGQ6OnBh dGg6OlBhdGg7CisrdXNlIHN0ZDo6cHJvY2Vzczo6e3NlbGYsIENvbW1hbmR9OworKworK2ZuIG1h aW4oKSB7CisrICAgIHByaW50bG4hKCJjYXJnbzpyZXJ1bi1pZi1jaGFuZ2VkPWJ1aWxkL2J1aWxk LnJzIik7CisrCisrICAgIGxldCBydXN0YyA9IGVudjo6dmFyX29zKCJSVVNUQyIpLnVud3JhcF9v cl9lbHNlKHx8IE9zU3RyaW5nOjpmcm9tKCJydXN0YyIpKTsKKysgICAgbGV0IHJ1c3RjX3dyYXBw ZXIgPSBlbnY6OnZhcl9vcygiUlVTVENfV1JBUFBFUiIpLmZpbHRlcih8d3JhcHBlcnwgIXdyYXBw ZXIuaXNfZW1wdHkoKSk7CisrICAgIGxldCB3cmFwcGVkX3J1c3RjID0gcnVzdGNfd3JhcHBlci5p dGVyKCkuY2hhaW4oaXRlcjo6b25jZSgmcnVzdGMpKTsKKysKKysgICAgbGV0IG11dCBpc19jbGlw cHlfZHJpdmVyID0gZmFsc2U7CisrICAgIGxldCBtdXQgaXNfbWlyYWkgPSBmYWxzZTsKKysgICAg bGV0IHZlcnNpb24gPSBsb29wIHsKKysgICAgICAgIGxldCBtdXQgY29tbWFuZDsKKysgICAgICAg IGlmIGlzX21pcmFpIHsKKysgICAgICAgICAgICBjb21tYW5kID0gQ29tbWFuZDo6bmV3KCZydXN0 Yyk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIGxldCBtdXQgd3JhcHBlZF9ydXN0 YyA9IHdyYXBwZWRfcnVzdGMuY2xvbmUoKTsKKysgICAgICAgICAgICBjb21tYW5kID0gQ29tbWFu ZDo6bmV3KHdyYXBwZWRfcnVzdGMubmV4dCgpLnVud3JhcCgpKTsKKysgICAgICAgICAgICBjb21t YW5kLmFyZ3Mod3JhcHBlZF9ydXN0Yyk7CisrICAgICAgICB9CisrICAgICAgICBpZiBpc19jbGlw cHlfZHJpdmVyIHsKKysgICAgICAgICAgICBjb21tYW5kLmFyZygiLS1ydXN0YyIpOworKyAgICAg ICAgfQorKyAgICAgICAgY29tbWFuZC5hcmcoIi0tdmVyc2lvbiIpOworKworKyAgICAgICAgLy8g QWxsb3cgd3JhcHBlciBzY3JpcHRzIG9yIGFsdGVybmF0ZSBjb21waWxlcnMgdG8gdGVsbCB0aGF0 IHRoaXMgaXMKKysgICAgICAgIC8vIGBydXN0dmVyc2lvbmAgcnVubmluZyAtLXZlcnNpb24sIHNv IHRoYXQgdGhleSBjYW4gc3RpY2sgdG8gcnVzdGMncworKyAgICAgICAgLy8gdmVyc2lvbiBmb3Jt YXQuIGh0dHBzOi8vZ2l0aHViLmNvbS9kdG9sbmF5L3J1c3R2ZXJzaW9uL2lzc3Vlcy82NworKyAg ICAgICAgY29tbWFuZC5lbnYoIlJVU1RWRVJTSU9OIiwgIjEiKTsKKysKKysgICAgICAgIGxldCBv dXRwdXQgPSBtYXRjaCBjb21tYW5kLm91dHB1dCgpIHsKKysgICAgICAgICAgICBPayhvdXRwdXQp ID0+IG91dHB1dCwKKysgICAgICAgICAgICBFcnIoZSkgPT4geworKyAgICAgICAgICAgICAgICBs ZXQgcnVzdGMgPSBydXN0Yy50b19zdHJpbmdfbG9zc3koKTsKKysgICAgICAgICAgICAgICAgZXBy aW50bG4hKCJFcnJvcjogZmFpbGVkIHRvIHJ1biBge30gLS12ZXJzaW9uYDoge30iLCBydXN0Yywg ZSk7CisrICAgICAgICAgICAgICAgIHByb2Nlc3M6OmV4aXQoMSk7CisrICAgICAgICAgICAgfQor KyAgICAgICAgfTsKKysKKysgICAgICAgIGxldCBzdHJpbmcgPSBtYXRjaCBTdHJpbmc6OmZyb21f dXRmOChvdXRwdXQuc3Rkb3V0KSB7CisrICAgICAgICAgICAgT2soc3RyaW5nKSA9PiBzdHJpbmcs CisrICAgICAgICAgICAgRXJyKGUpID0+IHsKKysgICAgICAgICAgICAgICAgbGV0IHJ1c3RjID0g cnVzdGMudG9fc3RyaW5nX2xvc3N5KCk7CisrICAgICAgICAgICAgICAgIGVwcmludGxuISgKKysg ICAgICAgICAgICAgICAgICAgICJFcnJvcjogZmFpbGVkIHRvIHBhcnNlIG91dHB1dCBvZiBge30g LS12ZXJzaW9uYDoge30iLAorKyAgICAgICAgICAgICAgICAgICAgcnVzdGMsIGUsCisrICAgICAg ICAgICAgICAgICk7CisrICAgICAgICAgICAgICAgIHByb2Nlc3M6OmV4aXQoMSk7CisrICAgICAg ICAgICAgfQorKyAgICAgICAgfTsKKysKKysgICAgICAgIGJyZWFrIG1hdGNoIHJ1c3RjOjpwYXJz ZSgmc3RyaW5nKSB7CisrICAgICAgICAgICAgcnVzdGM6OlBhcnNlUmVzdWx0OjpTdWNjZXNzKHZl cnNpb24pID0+IHZlcnNpb24sCisrICAgICAgICAgICAgcnVzdGM6OlBhcnNlUmVzdWx0OjpPb3Bz Q2xpcHB5IGlmICFpc19jbGlwcHlfZHJpdmVyID0+IHsKKysgICAgICAgICAgICAgICAgaXNfY2xp cHB5X2RyaXZlciA9IHRydWU7CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAg ICAgIH0KKysgICAgICAgICAgICBydXN0Yzo6UGFyc2VSZXN1bHQ6Ok9vcHNNaXJhaSBpZiAhaXNf bWlyYWkgJiYgcnVzdGNfd3JhcHBlci5pc19zb21lKCkgPT4geworKyAgICAgICAgICAgICAgICBp c19taXJhaSA9IHRydWU7CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgICAg IH0KKysgICAgICAgICAgICBydXN0Yzo6UGFyc2VSZXN1bHQ6OlVucmVjb2duaXplZAorKyAgICAg ICAgICAgIHwgcnVzdGM6OlBhcnNlUmVzdWx0OjpPb3BzQ2xpcHB5CisrICAgICAgICAgICAgfCBy dXN0Yzo6UGFyc2VSZXN1bHQ6Ok9vcHNNaXJhaSA9PiB7CisrICAgICAgICAgICAgICAgIGVwcmlu dGxuISgKKysgICAgICAgICAgICAgICAgICAgICJFcnJvcjogdW5leHBlY3RlZCBvdXRwdXQgZnJv bSBgcnVzdGMgLS12ZXJzaW9uYDogezo/fVxuXG5cCisrICAgICAgICAgICAgICAgICAgICBQbGVh c2UgZmlsZSBhbiBpc3N1ZSBpbiBodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9ydXN0dmVyc2lv biIsCisrICAgICAgICAgICAgICAgICAgICBzdHJpbmcKKysgICAgICAgICAgICAgICAgKTsKKysg ICAgICAgICAgICAgICAgcHJvY2Vzczo6ZXhpdCgxKTsKKysgICAgICAgICAgICB9CisrICAgICAg ICB9OworKyAgICB9OworKworKyAgICBpZiB2ZXJzaW9uLm1pbm9yIDwgMzggeworKyAgICAgICAg Ly8gUHJpb3IgdG8gMS4zOCwgYSAjW3Byb2NfbWFjcm9dIGlzIG5vdCBhbGxvd2VkIHRvIGJlIG5h bWVkIGBjZmdgLgorKyAgICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1jZmdfbWFjcm9f bm90X2FsbG93ZWQiKTsKKysgICAgfQorKworKyAgICBpZiB2ZXJzaW9uLm1pbm9yID49IDgwIHsK KysgICAgICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jaGVjay1jZmc9Y2ZnKGNmZ19tYWNyb19u b3RfYWxsb3dlZCkiKTsKKysgICAgICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jaGVjay1jZmc9 Y2ZnKGhvc3Rfb3MsIHZhbHVlcyhcIndpbmRvd3NcIikpIik7CisrICAgIH0KKysKKysgICAgbGV0 IHZlcnNpb24gPSBmb3JtYXQhKCJ7OiN9XG4iLCBSZW5kZXIoJnZlcnNpb24pKTsKKysgICAgbGV0 IG91dF9kaXIgPSBlbnY6OnZhcl9vcygiT1VUX0RJUiIpLmV4cGVjdCgiT1VUX0RJUiBub3Qgc2V0 Iik7CisrICAgIGxldCBvdXRfZmlsZSA9IFBhdGg6Om5ldygmb3V0X2Rpcikuam9pbigidmVyc2lv bi5leHByIik7CisrICAgIGZzOjp3cml0ZShvdXRfZmlsZSwgdmVyc2lvbikuZXhwZWN0KCJmYWls ZWQgdG8gd3JpdGUgdmVyc2lvbi5leHByIik7CisrCisrICAgIGxldCBob3N0ID0gZW52Ojp2YXJf b3MoIkhPU1QiKS5leHBlY3QoIkhPU1Qgbm90IHNldCIpOworKyAgICBpZiBsZXQgU29tZSgid2lu ZG93cyIpID0gaG9zdC50b19zdHIoKS51bndyYXAoKS5zcGxpdCgnLScpLm50aCgyKSB7CisrICAg ICAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPWhvc3Rfb3M9XCJ3aW5kb3dzXCIiKTsKKysg ICAgfQorK30KKysKKysvLyBTaGltIFZlcnNpb24ncyB7Oj99IGZvcm1hdCBpbnRvIGEge30gZm9y bWF0LCBiZWNhdXNlIHs6P30gaXMgdW51c2FibGUgaW4KKysvLyBmb3JtYXQgc3RyaW5ncyB3aGVu IGJ1aWxkaW5nIHdpdGggYC1aZm10LWRlYnVnPW5vbmVgLgorK3N0cnVjdCBSZW5kZXI8J2E+KCYn YSBydXN0Yzo6VmVyc2lvbik7CisrCisraW1wbDwnYT4gRGlzcGxheSBmb3IgUmVuZGVyPCdhPiB7 CisrICAgIGZuIGZtdCgmc2VsZiwgZm9ybWF0dGVyOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBm bXQ6OlJlc3VsdCB7CisrICAgICAgICBEZWJ1Zzo6Zm10KHNlbGYuMCwgZm9ybWF0dGVyKQorKyAg ICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vYnVpbGQv cnVzdGMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL2J1aWxkL3J1c3RjLnJzCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVz dC9ydXN0dmVyc2lvbi9idWlsZC9ydXN0Yy5ycworQEAgLTAsMCArMSwxMjYgQEAKKyt1c2Ugc2Vs Zjo6Q2hhbm5lbDo6KjsKKyt1c2Ugc3RkOjpmbXQ6OntzZWxmLCBEZWJ1Z307CisrCisrcHViIGVu dW0gUGFyc2VSZXN1bHQgeworKyAgICBTdWNjZXNzKFZlcnNpb24pLAorKyAgICBPb3BzQ2xpcHB5 LAorKyAgICBPb3BzTWlyYWksCisrICAgIFVucmVjb2duaXplZCwKKyt9CisrCisrI1tjZmdfYXR0 cih0ZXN0LCBkZXJpdmUoUGFydGlhbEVxKSldCisrcHViIHN0cnVjdCBWZXJzaW9uIHsKKysgICAg cHViIG1pbm9yOiB1MTYsCisrICAgIHB1YiBwYXRjaDogdTE2LAorKyAgICBwdWIgY2hhbm5lbDog Q2hhbm5lbCwKKyt9CisrCisrI1tjZmdfYXR0cih0ZXN0LCBkZXJpdmUoUGFydGlhbEVxKSldCisr cHViIGVudW0gQ2hhbm5lbCB7CisrICAgIFN0YWJsZSwKKysgICAgQmV0YSwKKysgICAgTmlnaHRs eShEYXRlKSwKKysgICAgRGV2LAorK30KKysKKysjW2NmZ19hdHRyKHRlc3QsIGRlcml2ZShQYXJ0 aWFsRXEpKV0KKytwdWIgc3RydWN0IERhdGUgeworKyAgICBwdWIgeWVhcjogdTE2LAorKyAgICBw dWIgbW9udGg6IHU4LAorKyAgICBwdWIgZGF5OiB1OCwKKyt9CisrCisrcHViIGZuIHBhcnNlKHN0 cmluZzogJnN0cikgLT4gUGFyc2VSZXN1bHQgeworKyAgICBsZXQgbGFzdF9saW5lID0gc3RyaW5n LmxpbmVzKCkubGFzdCgpLnVud3JhcF9vcihzdHJpbmcpOworKyAgICBsZXQgbXV0IHdvcmRzID0g bGFzdF9saW5lLnRyaW0oKS5zcGxpdCgnICcpOworKworKyAgICBtYXRjaCB3b3Jkcy5uZXh0KCkg eworKyAgICAgICAgU29tZSgicnVzdGMiKSA9PiB7fQorKyAgICAgICAgU29tZSh3b3JkKSBpZiB3 b3JkLnN0YXJ0c193aXRoKCJjbGlwcHkiKSA9PiByZXR1cm4gUGFyc2VSZXN1bHQ6Ok9vcHNDbGlw cHksCisrICAgICAgICBTb21lKCJtaXJhaSIpID0+IHJldHVybiBQYXJzZVJlc3VsdDo6T29wc01p cmFpLAorKyAgICAgICAgU29tZShfKSB8IE5vbmUgPT4gcmV0dXJuIFBhcnNlUmVzdWx0OjpVbnJl Y29nbml6ZWQsCisrICAgIH0KKysKKysgICAgcGFyc2Vfd29yZHMoJm11dCB3b3JkcykubWFwX29y KFBhcnNlUmVzdWx0OjpVbnJlY29nbml6ZWQsIFBhcnNlUmVzdWx0OjpTdWNjZXNzKQorK30KKysK KytmbiBwYXJzZV93b3Jkcyh3b3JkczogJm11dCBkeW4gSXRlcmF0b3I8SXRlbSA9ICZzdHI+KSAt PiBPcHRpb248VmVyc2lvbj4geworKyAgICBsZXQgbXV0IHZlcnNpb25fY2hhbm5lbCA9IHdvcmRz Lm5leHQoKT8uc3BsaXQoJy0nKTsKKysgICAgbGV0IHZlcnNpb24gPSB2ZXJzaW9uX2NoYW5uZWwu bmV4dCgpPzsKKysgICAgbGV0IGNoYW5uZWwgPSB2ZXJzaW9uX2NoYW5uZWwubmV4dCgpOworKwor KyAgICBsZXQgbXV0IGRpZ2l0cyA9IHZlcnNpb24uc3BsaXQoJy4nKTsKKysgICAgbGV0IG1ham9y ID0gZGlnaXRzLm5leHQoKT87CisrICAgIGlmIG1ham9yICE9ICIxIiB7CisrICAgICAgICByZXR1 cm4gTm9uZTsKKysgICAgfQorKyAgICBsZXQgbWlub3IgPSBkaWdpdHMubmV4dCgpPy5wYXJzZSgp Lm9rKCk/OworKyAgICBsZXQgcGF0Y2ggPSBkaWdpdHMubmV4dCgpLnVud3JhcF9vcigiMCIpLnBh cnNlKCkub2soKT87CisrCisrICAgIGxldCBjaGFubmVsID0gbWF0Y2ggY2hhbm5lbCB7CisrICAg ICAgICBOb25lID0+IFN0YWJsZSwKKysgICAgICAgIFNvbWUoImRldiIpID0+IERldiwKKysgICAg ICAgIFNvbWUoY2hhbm5lbCkgaWYgY2hhbm5lbC5zdGFydHNfd2l0aCgiYmV0YSIpID0+IEJldGEs CisrICAgICAgICBTb21lKCJuaWdodGx5IikgPT4gbWF0Y2ggd29yZHMubmV4dCgpIHsKKysgICAg ICAgICAgICBTb21lKGhhc2gpIGlmIGhhc2guc3RhcnRzX3dpdGgoJygnKSA9PiBtYXRjaCB3b3Jk cy5uZXh0KCkgeworKyAgICAgICAgICAgICAgICBOb25lIGlmIGhhc2guZW5kc193aXRoKCcpJykg PT4gRGV2LAorKyAgICAgICAgICAgICAgICBTb21lKGRhdGUpIGlmIGRhdGUuZW5kc193aXRoKCcp JykgPT4geworKyAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBkYXRlID0gZGF0ZVsuLmRhdGUu bGVuKCkgLSAxXS5zcGxpdCgnLScpOworKyAgICAgICAgICAgICAgICAgICAgbGV0IHllYXIgPSBk YXRlLm5leHQoKT8ucGFyc2UoKS5vaygpPzsKKysgICAgICAgICAgICAgICAgICAgIGxldCBtb250 aCA9IGRhdGUubmV4dCgpPy5wYXJzZSgpLm9rKCk/OworKyAgICAgICAgICAgICAgICAgICAgbGV0 IGRheSA9IGRhdGUubmV4dCgpPy5wYXJzZSgpLm9rKCk/OworKyAgICAgICAgICAgICAgICAgICAg bWF0Y2ggZGF0ZS5uZXh0KCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUgPT4gTmln aHRseShEYXRlIHsgeWVhciwgbW9udGgsIGRheSB9KSwKKysgICAgICAgICAgICAgICAgICAgICAg ICBTb21lKF8pID0+IHJldHVybiBOb25lLAorKyAgICAgICAgICAgICAgICAgICAgfQorKyAgICAg ICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIE5vbmUgfCBTb21lKF8pID0+IHJldHVybiBO b25lLAorKyAgICAgICAgICAgIH0sCisrICAgICAgICAgICAgU29tZShfKSA9PiByZXR1cm4gTm9u ZSwKKysgICAgICAgICAgICBOb25lID0+IERldiwKKysgICAgICAgIH0sCisrICAgICAgICBTb21l KF8pID0+IHJldHVybiBOb25lLAorKyAgICB9OworKworKyAgICBTb21lKFZlcnNpb24geworKyAg ICAgICAgbWlub3IsCisrICAgICAgICBwYXRjaCwKKysgICAgICAgIGNoYW5uZWwsCisrICAgIH0p CisrfQorKworK2ltcGwgRGVidWcgZm9yIFZlcnNpb24geworKyAgICBmbiBmbXQoJnNlbGYsIGZv cm1hdHRlcjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgeworKyAgICAgICAg Zm9ybWF0dGVyCisrICAgICAgICAgICAgLmRlYnVnX3N0cnVjdCgiY3JhdGU6OnZlcnNpb246OlZl cnNpb24iKQorKyAgICAgICAgICAgIC5maWVsZCgibWlub3IiLCAmc2VsZi5taW5vcikKKysgICAg ICAgICAgICAuZmllbGQoInBhdGNoIiwgJnNlbGYucGF0Y2gpCisrICAgICAgICAgICAgLmZpZWxk KCJjaGFubmVsIiwgJnNlbGYuY2hhbm5lbCkKKysgICAgICAgICAgICAuZmluaXNoKCkKKysgICAg fQorK30KKysKKytpbXBsIERlYnVnIGZvciBDaGFubmVsIHsKKysgICAgZm4gZm10KCZzZWxmLCBm b3JtYXR0ZXI6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsKKysgICAgICAg IG1hdGNoIHNlbGYgeworKyAgICAgICAgICAgIENoYW5uZWw6OlN0YWJsZSA9PiBmb3JtYXR0ZXIu d3JpdGVfc3RyKCJjcmF0ZTo6dmVyc2lvbjo6Q2hhbm5lbDo6U3RhYmxlIiksCisrICAgICAgICAg ICAgQ2hhbm5lbDo6QmV0YSA9PiBmb3JtYXR0ZXIud3JpdGVfc3RyKCJjcmF0ZTo6dmVyc2lvbjo6 Q2hhbm5lbDo6QmV0YSIpLAorKyAgICAgICAgICAgIENoYW5uZWw6Ok5pZ2h0bHkoZGF0ZSkgPT4g Zm9ybWF0dGVyCisrICAgICAgICAgICAgICAgIC5kZWJ1Z190dXBsZSgiY3JhdGU6OnZlcnNpb246 OkNoYW5uZWw6Ok5pZ2h0bHkiKQorKyAgICAgICAgICAgICAgICAuZmllbGQoZGF0ZSkKKysgICAg ICAgICAgICAgICAgLmZpbmlzaCgpLAorKyAgICAgICAgICAgIENoYW5uZWw6OkRldiA9PiBmb3Jt YXR0ZXIud3JpdGVfc3RyKCJjcmF0ZTo6dmVyc2lvbjo6Q2hhbm5lbDo6RGV2IiksCisrICAgICAg ICB9CisrICAgIH0KKyt9CisrCisraW1wbCBEZWJ1ZyBmb3IgRGF0ZSB7CisrICAgIGZuIGZtdCgm c2VsZiwgZm9ybWF0dGVyOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7Cisr ICAgICAgICBmb3JtYXR0ZXIKKysgICAgICAgICAgICAuZGVidWdfc3RydWN0KCJjcmF0ZTo6ZGF0 ZTo6RGF0ZSIpCisrICAgICAgICAgICAgLmZpZWxkKCJ5ZWFyIiwgJnNlbGYueWVhcikKKysgICAg ICAgICAgICAuZmllbGQoIm1vbnRoIiwgJnNlbGYubW9udGgpCisrICAgICAgICAgICAgLmZpZWxk KCJkYXkiLCAmc2VsZi5kYXkpCisrICAgICAgICAgICAgLmZpbmlzaCgpCisrICAgIH0KKyt9Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvYXR0ci5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2F0dHIucnMKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Ny Yy9hdHRyLnJzCitAQCAtMCwwICsxLDM1IEBACisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBS ZXN1bHR9OworK3VzZSBjcmF0ZTo6ZXhwcjo6e3NlbGYsIEV4cHJ9OworK3VzZSBjcmF0ZTo6e2l0 ZXIsIHRva2VufTsKKyt1c2UgcHJvY19tYWNybzo6e1NwYW4sIFRva2VuU3RyZWFtfTsKKysKKytw dWIgc3RydWN0IEFyZ3MgeworKyAgICBwdWIgY29uZGl0aW9uOiBFeHByLAorKyAgICBwdWIgdGhl bjogVGhlbiwKKyt9CisrCisrcHViIGVudW0gVGhlbiB7CisrICAgIENvbnN0KFNwYW4pLAorKyAg ICBBdHRyaWJ1dGUoVG9rZW5TdHJlYW0pLAorK30KKysKKytwdWIgZm4gcGFyc2UoaW5wdXQ6IFRv a2VuU3RyZWFtKSAtPiBSZXN1bHQ8QXJncz4geworKyAgICBsZXQgcmVmIG11dCBpbnB1dCA9IGl0 ZXI6Om5ldyhpbnB1dCk7CisrICAgIGxldCBjb25kaXRpb24gPSBleHByOjpwYXJzZShpbnB1dCk/ OworKworKyAgICB0b2tlbjo6cGFyc2VfcHVuY3QoaW5wdXQsICcsJyk/OworKyAgICBpZiBpbnB1 dC5wZWVrKCkuaXNfbm9uZSgpIHsKKysgICAgICAgIHJldHVybiBFcnIoRXJyb3I6Om5ldyhTcGFu OjpjYWxsX3NpdGUoKSwgImV4cGVjdGVkIG9uZSBvciBtb3JlIGF0dHJzIikpOworKyAgICB9Cisr CisrICAgIGxldCBjb25zdF9zcGFuID0gdG9rZW46OnBhcnNlX29wdGlvbmFsX2tleXdvcmQoaW5w dXQsICJjb25zdCIpOworKyAgICBsZXQgdGhlbiA9IGlmIGxldCBTb21lKGNvbnN0X3NwYW4pID0g Y29uc3Rfc3BhbiB7CisrICAgICAgICB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxfcHVuY3QoaW5wdXQs ICcsJyk7CisrICAgICAgICB0b2tlbjo6cGFyc2VfZW5kKGlucHV0KT87CisrICAgICAgICBUaGVu OjpDb25zdChjb25zdF9zcGFuKQorKyAgICB9IGVsc2UgeworKyAgICAgICAgVGhlbjo6QXR0cmli dXRlKGlucHV0LmNvbGxlY3QoKSkKKysgICAgfTsKKysKKysgICAgT2soQXJncyB7IGNvbmRpdGlv biwgdGhlbiB9KQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9u L3NyYy9ib3VuZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2JvdW5kLnJz CituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkv cnVzdC9ydXN0dmVyc2lvbi9zcmMvYm91bmQucnMKK0BAIC0wLDAgKzEsNjMgQEAKKyt1c2UgY3Jh dGU6OmRhdGU6OntzZWxmLCBEYXRlfTsKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3Vs dH07CisrdXNlIGNyYXRlOjppdGVyOjpJdGVyOworK3VzZSBjcmF0ZTo6cmVsZWFzZTo6e3NlbGYs IFJlbGVhc2V9OworK3VzZSBjcmF0ZTo6dGltZTsKKyt1c2UgY3JhdGU6OnZlcnNpb246OntDaGFu bmVsOjoqLCBWZXJzaW9ufTsKKyt1c2UgcHJvY19tYWNybzo6e0dyb3VwLCBUb2tlblRyZWV9Owor K3VzZSBzdGQ6OmNtcDo6T3JkZXJpbmc7CisrCisrcHViIGVudW0gQm91bmQgeworKyAgICBOaWdo dGx5KERhdGUpLAorKyAgICBTdGFibGUoUmVsZWFzZSksCisrfQorKworK3B1YiBmbiBwYXJzZShw YXJlbjogR3JvdXAsIGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxCb3VuZD4geworKyAgICBpZiBsZXQg U29tZShUb2tlblRyZWU6OkxpdGVyYWwobGl0ZXJhbCkpID0gaXRlci5wZWVrKCkgeworKyAgICAg ICAgbGV0IHJlcHIgPSBsaXRlcmFsLnRvX3N0cmluZygpOworKyAgICAgICAgaWYgcmVwci5zdGFy dHNfd2l0aCh8Y2g6IGNoYXJ8IGNoLmlzX2FzY2lpX2RpZ2l0KCkpIHsKKysgICAgICAgICAgICBp ZiByZXByLmNvbnRhaW5zKCcuJykgeworKyAgICAgICAgICAgICAgICByZXR1cm4gcmVsZWFzZTo6 cGFyc2UocGFyZW4sIGl0ZXIpLm1hcChCb3VuZDo6U3RhYmxlKTsKKysgICAgICAgICAgICB9IGVs c2UgeworKyAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZTo6cGFyc2UocGFyZW4sIGl0ZXIpLm1h cChCb3VuZDo6TmlnaHRseSk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9Cisr ICAgIGxldCBtc2cgPSBmb3JtYXQhKAorKyAgICAgICAgImV4cGVjdGVkIHJ1c3RjIHJlbGVhc2Ug bnVtYmVyIGxpa2UgMS44NSwgb3IgbmlnaHRseSBkYXRlIGxpa2Uge30iLAorKyAgICAgICAgdGlt ZTo6dG9kYXkoKSwKKysgICAgKTsKKysgICAgRXJyKEVycm9yOjpncm91cChwYXJlbiwgbXNnKSkK Kyt9CisrCisraW1wbCBQYXJ0aWFsRXE8Qm91bmQ+IGZvciBWZXJzaW9uIHsKKysgICAgZm4gZXEo JnNlbGYsIHJoczogJkJvdW5kKSAtPiBib29sIHsKKysgICAgICAgIG1hdGNoIHJocyB7CisrICAg ICAgICAgICAgQm91bmQ6Ok5pZ2h0bHkoZGF0ZSkgPT4gbWF0Y2ggc2VsZi5jaGFubmVsIHsKKysg ICAgICAgICAgICAgICAgU3RhYmxlIHwgQmV0YSB8IERldiA9PiBmYWxzZSwKKysgICAgICAgICAg ICAgICAgTmlnaHRseShuaWdodGx5KSA9PiBuaWdodGx5ID09ICpkYXRlLAorKyAgICAgICAgICAg IH0sCisrICAgICAgICAgICAgQm91bmQ6OlN0YWJsZShyZWxlYXNlKSA9PiB7CisrICAgICAgICAg ICAgICAgIHNlbGYubWlub3IgPT0gcmVsZWFzZS5taW5vcgorKyAgICAgICAgICAgICAgICAgICAg JiYgcmVsZWFzZS5wYXRjaC5tYXBfb3IodHJ1ZSwgfHBhdGNofCBzZWxmLnBhdGNoID09IHBhdGNo KQorKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgfQorK30KKysKKytpbXBsIFBhcnRp YWxPcmQ8Qm91bmQ+IGZvciBWZXJzaW9uIHsKKysgICAgZm4gcGFydGlhbF9jbXAoJnNlbGYsIHJo czogJkJvdW5kKSAtPiBPcHRpb248T3JkZXJpbmc+IHsKKysgICAgICAgIG1hdGNoIHJocyB7Cisr ICAgICAgICAgICAgQm91bmQ6Ok5pZ2h0bHkoZGF0ZSkgPT4gbWF0Y2ggc2VsZi5jaGFubmVsIHsK KysgICAgICAgICAgICAgICAgU3RhYmxlIHwgQmV0YSA9PiBTb21lKE9yZGVyaW5nOjpMZXNzKSwK KysgICAgICAgICAgICAgICAgTmlnaHRseShuaWdodGx5KSA9PiBTb21lKG5pZ2h0bHkuY21wKGRh dGUpKSwKKysgICAgICAgICAgICAgICAgRGV2ID0+IFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpLAor KyAgICAgICAgICAgIH0sCisrICAgICAgICAgICAgQm91bmQ6OlN0YWJsZShyZWxlYXNlKSA9PiB7 CisrICAgICAgICAgICAgICAgIGxldCB2ZXJzaW9uID0gKHNlbGYubWlub3IsIHNlbGYucGF0Y2gp OworKyAgICAgICAgICAgICAgICBsZXQgYm91bmQgPSAocmVsZWFzZS5taW5vciwgcmVsZWFzZS5w YXRjaC51bndyYXBfb3IoMCkpOworKyAgICAgICAgICAgICAgICBTb21lKHZlcnNpb24uY21wKCZi b3VuZCkpCisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2NvbnN0Zm4ucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9jb25zdGZuLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMv Y29uc3Rmbi5ycworQEAgLTAsMCArMSw1OCBAQAorK3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwg UmVzdWx0fTsKKyt1c2UgcHJvY19tYWNybzo6e0lkZW50LCBTcGFuLCBUb2tlblN0cmVhbSwgVG9r ZW5UcmVlfTsKKyt1c2Ugc3RkOjppdGVyOworKworKyNbZGVyaXZlKFBhcnRpYWxPcmQsIFBhcnRp YWxFcSldCisrZW51bSBRdWFsaWZpZXJzIHsKKysgICAgTm9uZSwKKysgICAgQXN5bmMsCisrICAg IFVuc2FmZSwKKysgICAgRXh0ZXJuLAorKyAgICBBYmksCisrfQorKworK2ltcGwgUXVhbGlmaWVy cyB7CisrICAgIGZuIGZyb21faWRlbnQoaWRlbnQ6ICZJZGVudCkgLT4gU2VsZiB7CisrICAgICAg ICBtYXRjaCBpZGVudC50b19zdHJpbmcoKS5hc19zdHIoKSB7CisrICAgICAgICAgICAgImFzeW5j IiA9PiBRdWFsaWZpZXJzOjpBc3luYywKKysgICAgICAgICAgICAidW5zYWZlIiA9PiBRdWFsaWZp ZXJzOjpVbnNhZmUsCisrICAgICAgICAgICAgImV4dGVybiIgPT4gUXVhbGlmaWVyczo6RXh0ZXJu LAorKyAgICAgICAgICAgIF8gPT4gUXVhbGlmaWVyczo6Tm9uZSwKKysgICAgICAgIH0KKysgICAg fQorK30KKysKKytwdWIoY3JhdGUpIGZuIGluc2VydF9jb25zdChpbnB1dDogVG9rZW5TdHJlYW0s IGNvbnN0X3NwYW46IFNwYW4pIC0+IFJlc3VsdDxUb2tlblN0cmVhbT4geworKyAgICBsZXQgcmVm IG11dCBpbnB1dCA9IGNyYXRlOjppdGVyOjpuZXcoaW5wdXQpOworKyAgICBsZXQgbXV0IG91dCA9 IFRva2VuU3RyZWFtOjpuZXcoKTsKKysgICAgbGV0IG11dCBxdWFsaWZpZXJzID0gUXVhbGlmaWVy czo6Tm9uZTsKKysgICAgbGV0IG11dCBwZW5kaW5nID0gVmVjOjpuZXcoKTsKKysKKysgICAgd2hp bGUgbGV0IFNvbWUodG9rZW4pID0gaW5wdXQubmV4dCgpIHsKKysgICAgICAgIG1hdGNoIHRva2Vu IHsKKysgICAgICAgICAgICBUb2tlblRyZWU6OklkZW50KHJlZiBpZGVudCkgaWYgaWRlbnQudG9f c3RyaW5nKCkgPT0gImZuIiA9PiB7CisrICAgICAgICAgICAgICAgIGxldCBjb25zdF9pZGVudCA9 IElkZW50OjpuZXcoImNvbnN0IiwgY29uc3Rfc3Bhbik7CisrICAgICAgICAgICAgICAgIG91dC5l eHRlbmQoaXRlcjo6b25jZShUb2tlblRyZWU6OklkZW50KGNvbnN0X2lkZW50KSkpOworKyAgICAg ICAgICAgICAgICBvdXQuZXh0ZW5kKHBlbmRpbmcpOworKyAgICAgICAgICAgICAgICBvdXQuZXh0 ZW5kKGl0ZXI6Om9uY2UodG9rZW4pKTsKKysgICAgICAgICAgICAgICAgb3V0LmV4dGVuZChpbnB1 dCk7CisrICAgICAgICAgICAgICAgIHJldHVybiBPayhvdXQpOworKyAgICAgICAgICAgIH0KKysg ICAgICAgICAgICBUb2tlblRyZWU6OklkZW50KHJlZiBpZGVudCkgaWYgUXVhbGlmaWVyczo6ZnJv bV9pZGVudChpZGVudCkgPiBxdWFsaWZpZXJzID0+IHsKKysgICAgICAgICAgICAgICAgcXVhbGlm aWVycyA9IFF1YWxpZmllcnM6OmZyb21faWRlbnQoaWRlbnQpOworKyAgICAgICAgICAgICAgICBw ZW5kaW5nLnB1c2godG9rZW4pOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBUb2tlblRy ZWU6OkxpdGVyYWwoXykgaWYgcXVhbGlmaWVycyA9PSBRdWFsaWZpZXJzOjpFeHRlcm4gPT4gewor KyAgICAgICAgICAgICAgICBxdWFsaWZpZXJzID0gUXVhbGlmaWVyczo6QWJpOworKyAgICAgICAg ICAgICAgICBwZW5kaW5nLnB1c2godG9rZW4pOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAg ICBfID0+IHsKKysgICAgICAgICAgICAgICAgcXVhbGlmaWVycyA9IFF1YWxpZmllcnM6Ok5vbmU7 CisrICAgICAgICAgICAgICAgIG91dC5leHRlbmQocGVuZGluZy5kcmFpbiguLikpOworKyAgICAg ICAgICAgICAgICBvdXQuZXh0ZW5kKGl0ZXI6Om9uY2UodG9rZW4pKTsKKysgICAgICAgICAgICB9 CisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgRXJyKEVycm9yOjpuZXcoY29uc3Rfc3Bhbiwg Im9ubHkgYWxsb3dlZCBvbiBhIGZuIGl0ZW0iKSkKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvZGF0ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vc3JjL2RhdGUucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisr KysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9kYXRlLnJzCitAQCAtMCwwICsx LDUwIEBACisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1bHR9OworK3VzZSBjcmF0ZTo6 aXRlcjo6SXRlcjsKKyt1c2UgY3JhdGU6Ont0aW1lLCB0b2tlbn07CisrdXNlIHByb2NfbWFjcm86 Okdyb3VwOworK3VzZSBzdGQ6OmZtdDo6e3NlbGYsIERpc3BsYXl9OworKworKyNbZGVyaXZlKENv cHksIENsb25lLCBEZWJ1ZywgUGFydGlhbEVxLCBFcSwgUGFydGlhbE9yZCwgT3JkKV0KKytwdWIg c3RydWN0IERhdGUgeworKyAgICBwdWIgeWVhcjogdTE2LAorKyAgICBwdWIgbW9udGg6IHU4LAor KyAgICBwdWIgZGF5OiB1OCwKKyt9CisrCisraW1wbCBEaXNwbGF5IGZvciBEYXRlIHsKKysgICAg Zm4gZm10KCZzZWxmLCBmb3JtYXR0ZXI6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVz dWx0IHsKKysgICAgICAgIHdyaXRlISgKKysgICAgICAgICAgICBmb3JtYXR0ZXIsCisrICAgICAg ICAgICAgIns6MDR9LXs6MDJ9LXs6MDJ9IiwKKysgICAgICAgICAgICBzZWxmLnllYXIsIHNlbGYu bW9udGgsIHNlbGYuZGF5LAorKyAgICAgICAgKQorKyAgICB9CisrfQorKworK3B1YiBmbiBwYXJz ZShwYXJlbjogR3JvdXAsIGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxEYXRlPiB7CisrICAgIHRyeV9w YXJzZShpdGVyKS5tYXBfZXJyKHwoKXwgeworKyAgICAgICAgbGV0IG1zZyA9IGZvcm1hdCEoImV4 cGVjdGVkIG5pZ2h0bHkgZGF0ZSwgbGlrZSB7fSIsIHRpbWU6OnRvZGF5KCkpOworKyAgICAgICAg RXJyb3I6Omdyb3VwKHBhcmVuLCBtc2cpCisrICAgIH0pCisrfQorKworK2ZuIHRyeV9wYXJzZShp dGVyOiBJdGVyKSAtPiBSZXN1bHQ8RGF0ZSwgKCk+IHsKKysgICAgbGV0IHllYXIgPSB0b2tlbjo6 cGFyc2VfbGl0ZXJhbChpdGVyKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgdG9rZW46OnBhcnNlX3B1 bmN0KGl0ZXIsICctJykubWFwX2Vycihkcm9wKT87CisrICAgIGxldCBtb250aCA9IHRva2VuOjpw YXJzZV9saXRlcmFsKGl0ZXIpLm1hcF9lcnIoZHJvcCk/OworKyAgICB0b2tlbjo6cGFyc2VfcHVu Y3QoaXRlciwgJy0nKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgbGV0IGRheSA9IHRva2VuOjpwYXJz ZV9saXRlcmFsKGl0ZXIpLm1hcF9lcnIoZHJvcCk/OworKworKyAgICBsZXQgeWVhciA9IHllYXIu dG9fc3RyaW5nKCkucGFyc2U6Ojx1NjQ+KCkubWFwX2Vycihkcm9wKT87CisrICAgIGxldCBtb250 aCA9IG1vbnRoLnRvX3N0cmluZygpLnBhcnNlOjo8dTY0PigpLm1hcF9lcnIoZHJvcCk/OworKyAg ICBsZXQgZGF5ID0gZGF5LnRvX3N0cmluZygpLnBhcnNlOjo8dTY0PigpLm1hcF9lcnIoZHJvcCk/ OworKyAgICBpZiB5ZWFyID49IDMwMDAgfHwgbW9udGggPiAxMiB8fCBkYXkgPiAzMSB7CisrICAg ICAgICByZXR1cm4gRXJyKCgpKTsKKysgICAgfQorKworKyAgICBPayhEYXRlIHsKKysgICAgICAg IHllYXI6IHllYXIgYXMgdTE2LAorKyAgICAgICAgbW9udGg6IG1vbnRoIGFzIHU4LAorKyAgICAg ICAgZGF5OiBkYXkgYXMgdTgsCisrICAgIH0pCisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcnVzdHZlcnNpb24vc3JjL2Vycm9yLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVy c2lvbi9zcmMvZXJyb3IucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisr KysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9lcnJvci5ycworQEAgLTAsMCAr MSw1NiBAQAorK3VzZSBwcm9jX21hY3JvOjp7RGVsaW1pdGVyLCBHcm91cCwgSWRlbnQsIExpdGVy YWwsIFB1bmN0LCBTcGFjaW5nLCBTcGFuLCBUb2tlblN0cmVhbSwgVG9rZW5UcmVlfTsKKyt1c2Ug c3RkOjpmbXQ6OkRpc3BsYXk7CisrdXNlIHN0ZDo6aXRlcjo6RnJvbUl0ZXJhdG9yOworKworK3B1 YiB0eXBlIFJlc3VsdDxULCBFID0gRXJyb3I+ID0gc3RkOjpyZXN1bHQ6OlJlc3VsdDxULCBFPjsK KysKKytwdWIgc3RydWN0IEVycm9yIHsKKysgICAgYmVnaW46IFNwYW4sCisrICAgIGVuZDogU3Bh biwKKysgICAgbXNnOiBTdHJpbmcsCisrfQorKworK2ltcGwgRXJyb3IgeworKyAgICBwdWIgZm4g bmV3KHNwYW46IFNwYW4sIG1zZzogaW1wbCBEaXNwbGF5KSAtPiBTZWxmIHsKKysgICAgICAgIFNl bGY6Om5ldzIoc3Bhbiwgc3BhbiwgbXNnKQorKyAgICB9CisrCisrICAgIHB1YiBmbiBuZXcyKGJl Z2luOiBTcGFuLCBlbmQ6IFNwYW4sIG1zZzogaW1wbCBEaXNwbGF5KSAtPiBTZWxmIHsKKysgICAg ICAgIEVycm9yIHsKKysgICAgICAgICAgICBiZWdpbiwKKysgICAgICAgICAgICBlbmQsCisrICAg ICAgICAgICAgbXNnOiBtc2cudG9fc3RyaW5nKCksCisrICAgICAgICB9CisrICAgIH0KKysKKysg ICAgcHViIGZuIGdyb3VwKGdyb3VwOiBHcm91cCwgbXNnOiBpbXBsIERpc3BsYXkpIC0+IFNlbGYg eworKyAgICAgICAgbGV0IG11dCBpdGVyID0gZ3JvdXAuc3RyZWFtKCkuaW50b19pdGVyKCk7Cisr ICAgICAgICBsZXQgZGVsaW1pdGVyID0gZ3JvdXAuc3BhbigpOworKyAgICAgICAgbGV0IGJlZ2lu ID0gaXRlci5uZXh0KCkubWFwX29yKGRlbGltaXRlciwgfHR8IHQuc3BhbigpKTsKKysgICAgICAg IGxldCBlbmQgPSBpdGVyLmxhc3QoKS5tYXBfb3IoYmVnaW4sIHx0fCB0LnNwYW4oKSk7CisrICAg ICAgICBTZWxmOjpuZXcyKGJlZ2luLCBlbmQsIG1zZykKKysgICAgfQorKworKyAgICBwdWIgZm4g aW50b19jb21waWxlX2Vycm9yKHNlbGYpIC0+IFRva2VuU3RyZWFtIHsKKysgICAgICAgIC8vIGNv bXBpbGVfZXJyb3IhIHsgJG1zZyB9CisrICAgICAgICBUb2tlblN0cmVhbTo6ZnJvbV9pdGVyKHZl YyFbCisrICAgICAgICAgICAgVG9rZW5UcmVlOjpJZGVudChJZGVudDo6bmV3KCJjb21waWxlX2Vy cm9yIiwgc2VsZi5iZWdpbikpLAorKyAgICAgICAgICAgIFRva2VuVHJlZTo6UHVuY3QoeworKyAg ICAgICAgICAgICAgICBsZXQgbXV0IHB1bmN0ID0gUHVuY3Q6Om5ldygnIScsIFNwYWNpbmc6OkFs b25lKTsKKysgICAgICAgICAgICAgICAgcHVuY3Quc2V0X3NwYW4oc2VsZi5iZWdpbik7CisrICAg ICAgICAgICAgICAgIHB1bmN0CisrICAgICAgICAgICAgfSksCisrICAgICAgICAgICAgVG9rZW5U cmVlOjpHcm91cCh7CisrICAgICAgICAgICAgICAgIGxldCBtdXQgZ3JvdXAgPSBHcm91cDo6bmV3 KERlbGltaXRlcjo6QnJhY2UsIHsKKysgICAgICAgICAgICAgICAgICAgIFRva2VuU3RyZWFtOjpm cm9tX2l0ZXIodmVjIVtUb2tlblRyZWU6OkxpdGVyYWwoeworKyAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgc3RyaW5nID0gTGl0ZXJhbDo6c3RyaW5nKCZzZWxmLm1zZyk7CisrICAgICAg ICAgICAgICAgICAgICAgICAgc3RyaW5nLnNldF9zcGFuKHNlbGYuZW5kKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICBzdHJpbmcKKysgICAgICAgICAgICAgICAgICAgIH0pXSkKKysgICAgICAg ICAgICAgICAgfSk7CisrICAgICAgICAgICAgICAgIGdyb3VwLnNldF9zcGFuKHNlbGYuZW5kKTsK KysgICAgICAgICAgICAgICAgZ3JvdXAKKysgICAgICAgICAgICB9KSwKKysgICAgICAgIF0pCisr ICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMv ZXhwYW5kLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvZXhwYW5kLnJzCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVz dC9ydXN0dmVyc2lvbi9zcmMvZXhwYW5kLnJzCitAQCAtMCwwICsxLDEwMCBAQAorK3VzZSBjcmF0 ZTo6YXR0cjo6e3NlbGYsIFRoZW59OworK3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0 fTsKKyt1c2UgY3JhdGU6Ontjb25zdGZuLCBleHByLCBpdGVyLCB0b2tlbn07CisrdXNlIHByb2Nf bWFjcm86OntEZWxpbWl0ZXIsIEdyb3VwLCBJZGVudCwgUHVuY3QsIFNwYWNpbmcsIFNwYW4sIFRv a2VuU3RyZWFtLCBUb2tlblRyZWV9OworK3VzZSBzdGQ6Oml0ZXI6OkZyb21JdGVyYXRvcjsKKysK KytwdWIgZm4gY2ZnKGludHJvZHVjZXI6ICZzdHIsIGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1dDog VG9rZW5TdHJlYW0pIC0+IFRva2VuU3RyZWFtIHsKKysgICAgdHJ5X2NmZyhpbnRyb2R1Y2VyLCBh cmdzLCBpbnB1dCkudW53cmFwX29yX2Vsc2UoRXJyb3I6OmludG9fY29tcGlsZV9lcnJvcikKKyt9 CisrCisrZm4gdHJ5X2NmZyhpbnRyb2R1Y2VyOiAmc3RyLCBhcmdzOiBUb2tlblN0cmVhbSwgaW5w dXQ6IFRva2VuU3RyZWFtKSAtPiBSZXN1bHQ8VG9rZW5TdHJlYW0+IHsKKysgICAgbGV0IGludHJv ZHVjZXIgPSBJZGVudDo6bmV3KGludHJvZHVjZXIsIFNwYW46OmNhbGxfc2l0ZSgpKTsKKysKKysg ICAgbGV0IG11dCBmdWxsX2FyZ3MgPSBUb2tlblN0cmVhbTo6ZnJvbShUb2tlblRyZWU6OklkZW50 KGludHJvZHVjZXIpKTsKKysgICAgaWYgIWFyZ3MuaXNfZW1wdHkoKSB7CisrICAgICAgICBmdWxs X2FyZ3MuZXh0ZW5kKHN0ZDo6aXRlcjo6b25jZShUb2tlblRyZWU6Okdyb3VwKEdyb3VwOjpuZXco CisrICAgICAgICAgICAgRGVsaW1pdGVyOjpQYXJlbnRoZXNpcywKKysgICAgICAgICAgICBhcmdz LAorKyAgICAgICAgKSkpKTsKKysgICAgfQorKworKyAgICBsZXQgcmVmIG11dCBmdWxsX2FyZ3Mg PSBpdGVyOjpuZXcoZnVsbF9hcmdzKTsKKysgICAgbGV0IGV4cHIgPSBleHByOjpwYXJzZShmdWxs X2FyZ3MpPzsKKysgICAgdG9rZW46OnBhcnNlX2VuZChmdWxsX2FyZ3MpPzsKKysKKysgICAgaWYg ZXhwci5ldmFsKGNyYXRlOjpSVVNUVkVSU0lPTikgeworKyAgICAgICAgT2soYWxsb3dfaW5jb21w YXRpYmxlX21zcnYoaW5wdXQpKQorKyAgICB9IGVsc2UgeworKyAgICAgICAgT2soVG9rZW5TdHJl YW06Om5ldygpKQorKyAgICB9CisrfQorKworK3B1YiBmbiB0cnlfYXR0cihhcmdzOiBhdHRyOjpB cmdzLCBpbnB1dDogVG9rZW5TdHJlYW0pIC0+IFJlc3VsdDxUb2tlblN0cmVhbT4geworKyAgICBp ZiAhYXJncy5jb25kaXRpb24uZXZhbChjcmF0ZTo6UlVTVFZFUlNJT04pIHsKKysgICAgICAgIHJl dHVybiBPayhpbnB1dCk7CisrICAgIH0KKysKKysgICAgbGV0IG91dHB1dCA9IG1hdGNoIGFyZ3Mu dGhlbiB7CisrICAgICAgICBUaGVuOjpDb25zdChjb25zdF90b2tlbikgPT4gY29uc3Rmbjo6aW5z ZXJ0X2NvbnN0KGlucHV0LCBjb25zdF90b2tlbik/LAorKyAgICAgICAgVGhlbjo6QXR0cmlidXRl KHRoZW4pID0+IHsKKysgICAgICAgICAgICBUb2tlblN0cmVhbTo6ZnJvbV9pdGVyKAorKyAgICAg ICAgICAgICAgICAvLyAjW2NmZ19hdHRyKGFsbCgpLCAjdGhlbildCisrICAgICAgICAgICAgICAg IHZlYyFbCisrICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6OlB1bmN0KFB1bmN0OjpuZXco JyMnLCBTcGFjaW5nOjpBbG9uZSkpLAorKyAgICAgICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpH cm91cChHcm91cDo6bmV3KAorKyAgICAgICAgICAgICAgICAgICAgICAgIERlbGltaXRlcjo6QnJh Y2tldCwKKysgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblN0cmVhbTo6ZnJvbV9pdGVyKHZl YyFbCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6SWRlbnQoSWRlbnQ6 Om5ldygiY2ZnX2F0dHIiLCBTcGFuOjpjYWxsX3NpdGUoKSkpLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUb2tlblRyZWU6Okdyb3VwKEdyb3VwOjpuZXcoCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEZWxpbWl0ZXI6OlBhcmVudGhlc2lzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcigKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ZWMhWworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUb2tlblRyZWU6OklkZW50KElkZW50OjpuZXcoImFsbCIsIFNwYW46OmNh bGxfc2l0ZSgpKSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv a2VuVHJlZTo6R3JvdXAoR3JvdXA6Om5ldygKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERlbGltaXRlcjo6UGFyZW50aGVzaXMsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblN0cmVhbTo6bmV3KCksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6OlB1bmN0KFB1bmN0OjpuZXcoJywnLCBT cGFjaW5nOjpBbG9uZSkpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0K KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2hhaW4odGhlbiksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAp KSwKKysgICAgICAgICAgICAgICAgICAgICAgICBdKSwKKysgICAgICAgICAgICAgICAgICAgICkp LAorKyAgICAgICAgICAgICAgICBdCisrICAgICAgICAgICAgICAgIC5pbnRvX2l0ZXIoKQorKyAg ICAgICAgICAgICAgICAuY2hhaW4oaW5wdXQpLAorKyAgICAgICAgICAgICkKKysgICAgICAgIH0K KysgICAgfTsKKysKKysgICAgT2soYWxsb3dfaW5jb21wYXRpYmxlX21zcnYob3V0cHV0KSkKKyt9 CisrCisrZm4gYWxsb3dfaW5jb21wYXRpYmxlX21zcnYoaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBU b2tlblN0cmVhbSB7CisrICAgIFRva2VuU3RyZWFtOjpmcm9tX2l0ZXIoCisrICAgICAgICAvLyAj W2FsbG93KGNsaXBweTo6aW5jb21wYXRpYmxlX21zcnYpXQorKyAgICAgICAgdmVjIVsKKysgICAg ICAgICAgICBUb2tlblRyZWU6OlB1bmN0KFB1bmN0OjpuZXcoJyMnLCBTcGFjaW5nOjpBbG9uZSkp LAorKyAgICAgICAgICAgIFRva2VuVHJlZTo6R3JvdXAoR3JvdXA6Om5ldygKKysgICAgICAgICAg ICAgICAgRGVsaW1pdGVyOjpCcmFja2V0LAorKyAgICAgICAgICAgICAgICBUb2tlblN0cmVhbTo6 ZnJvbV9pdGVyKHZlYyFbCisrICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6OklkZW50KElk ZW50OjpuZXcoImFsbG93IiwgU3Bhbjo6Y2FsbF9zaXRlKCkpKSwKKysgICAgICAgICAgICAgICAg ICAgIFRva2VuVHJlZTo6R3JvdXAoR3JvdXA6Om5ldygKKysgICAgICAgICAgICAgICAgICAgICAg ICBEZWxpbWl0ZXI6OlBhcmVudGhlc2lzLAorKyAgICAgICAgICAgICAgICAgICAgICAgIFRva2Vu U3RyZWFtOjpmcm9tX2l0ZXIodmVjIVsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9r ZW5UcmVlOjpJZGVudChJZGVudDo6bmV3KCJjbGlwcHkiLCBTcGFuOjpjYWxsX3NpdGUoKSkpLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6OlB1bmN0KFB1bmN0OjpuZXco JzonLCBTcGFjaW5nOjpKb2ludCkpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tl blRyZWU6OlB1bmN0KFB1bmN0OjpuZXcoJzonLCBTcGFjaW5nOjpBbG9uZSkpLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6OklkZW50KElkZW50OjpuZXcoImluY29tcGF0 aWJsZV9tc3J2IiwgU3Bhbjo6Y2FsbF9zaXRlKCkpKSwKKysgICAgICAgICAgICAgICAgICAgICAg ICBdKSwKKysgICAgICAgICAgICAgICAgICAgICkpLAorKyAgICAgICAgICAgICAgICBdKSwKKysg ICAgICAgICAgICApKSwKKysgICAgICAgIF0KKysgICAgICAgIC5pbnRvX2l0ZXIoKQorKyAgICAg ICAgLmNoYWluKGlucHV0KSwKKysgICAgKQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3J1c3R2ZXJzaW9uL3NyYy9leHByLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lv bi9zcmMvZXhwci5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2V4cHIucnMKK0BAIC0wLDAgKzEsMTYz IEBACisrdXNlIGNyYXRlOjpib3VuZDo6e3NlbGYsIEJvdW5kfTsKKyt1c2UgY3JhdGU6OmRhdGU6 OntzZWxmLCBEYXRlfTsKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3VsdH07CisrdXNl IGNyYXRlOjppdGVyOjp7c2VsZiwgSXRlcn07CisrdXNlIGNyYXRlOjpyZWxlYXNlOjp7c2VsZiwg UmVsZWFzZX07CisrdXNlIGNyYXRlOjp0b2tlbjsKKyt1c2UgY3JhdGU6OnZlcnNpb246OntDaGFu bmVsLCBWZXJzaW9ufTsKKyt1c2UgcHJvY19tYWNybzo6e0lkZW50LCBTcGFuLCBUb2tlblRyZWV9 OworKworK3B1YiBlbnVtIEV4cHIgeworKyAgICBTdGFibGUsCisrICAgIEJldGEsCisrICAgIE5p Z2h0bHksCisrICAgIERhdGUoRGF0ZSksCisrICAgIFNpbmNlKEJvdW5kKSwKKysgICAgQmVmb3Jl KEJvdW5kKSwKKysgICAgUmVsZWFzZShSZWxlYXNlKSwKKysgICAgTm90KEJveDxFeHByPiksCisr ICAgIEFueShWZWM8RXhwcj4pLAorKyAgICBBbGwoVmVjPEV4cHI+KSwKKyt9CisrCisraW1wbCBF eHByIHsKKysgICAgcHViIGZuIGV2YWwoJnNlbGYsIHJ1c3RjOiBWZXJzaW9uKSAtPiBib29sIHsK KysgICAgICAgIHVzZSBzZWxmOjpFeHByOjoqOworKworKyAgICAgICAgbWF0Y2ggc2VsZiB7Cisr ICAgICAgICAgICAgU3RhYmxlID0+IHJ1c3RjLmNoYW5uZWwgPT0gQ2hhbm5lbDo6U3RhYmxlLAor KyAgICAgICAgICAgIEJldGEgPT4gcnVzdGMuY2hhbm5lbCA9PSBDaGFubmVsOjpCZXRhLAorKyAg ICAgICAgICAgIE5pZ2h0bHkgPT4gbWF0Y2ggcnVzdGMuY2hhbm5lbCB7CisrICAgICAgICAgICAg ICAgIENoYW5uZWw6Ok5pZ2h0bHkoXykgfCBDaGFubmVsOjpEZXYgPT4gdHJ1ZSwKKysgICAgICAg ICAgICAgICAgQ2hhbm5lbDo6U3RhYmxlIHwgQ2hhbm5lbDo6QmV0YSA9PiBmYWxzZSwKKysgICAg ICAgICAgICB9LAorKyAgICAgICAgICAgIERhdGUoZGF0ZSkgPT4gbWF0Y2ggcnVzdGMuY2hhbm5l bCB7CisrICAgICAgICAgICAgICAgIENoYW5uZWw6Ok5pZ2h0bHkocnVzdGMpID0+IHJ1c3RjID09 ICpkYXRlLAorKyAgICAgICAgICAgICAgICBDaGFubmVsOjpTdGFibGUgfCBDaGFubmVsOjpCZXRh IHwgQ2hhbm5lbDo6RGV2ID0+IGZhbHNlLAorKyAgICAgICAgICAgIH0sCisrICAgICAgICAgICAg U2luY2UoYm91bmQpID0+IHJ1c3RjID49ICpib3VuZCwKKysgICAgICAgICAgICBCZWZvcmUoYm91 bmQpID0+IHJ1c3RjIDwgKmJvdW5kLAorKyAgICAgICAgICAgIFJlbGVhc2UocmVsZWFzZSkgPT4g eworKyAgICAgICAgICAgICAgICBydXN0Yy5jaGFubmVsID09IENoYW5uZWw6OlN0YWJsZQorKyAg ICAgICAgICAgICAgICAgICAgJiYgcnVzdGMubWlub3IgPT0gcmVsZWFzZS5taW5vcgorKyAgICAg ICAgICAgICAgICAgICAgJiYgcmVsZWFzZS5wYXRjaC5tYXBfb3IodHJ1ZSwgfHBhdGNofCBydXN0 Yy5wYXRjaCA9PSBwYXRjaCkKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgTm90KGV4cHIp ID0+ICFleHByLmV2YWwocnVzdGMpLAorKyAgICAgICAgICAgIEFueShleHBycykgPT4gZXhwcnMu aXRlcigpLmFueSh8ZXwgZS5ldmFsKHJ1c3RjKSksCisrICAgICAgICAgICAgQWxsKGV4cHJzKSA9 PiBleHBycy5pdGVyKCkuYWxsKHxlfCBlLmV2YWwocnVzdGMpKSwKKysgICAgICAgIH0KKysgICAg fQorK30KKysKKytwdWIgZm4gcGFyc2UoaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysg ICAgbWF0Y2ggJml0ZXIubmV4dCgpIHsKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVudChp KSkgaWYgaS50b19zdHJpbmcoKSA9PSAic3RhYmxlIiA9PiBwYXJzZV9zdGFibGUoaXRlciksCisr ICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRlbnQoaSkpIGlmIGkudG9fc3RyaW5nKCkgPT0gImJl dGEiID0+IE9rKEV4cHI6OkJldGEpLAorKyAgICAgICAgU29tZShUb2tlblRyZWU6OklkZW50KGkp KSBpZiBpLnRvX3N0cmluZygpID09ICJuaWdodGx5IiA9PiBwYXJzZV9uaWdodGx5KGl0ZXIpLAor KyAgICAgICAgU29tZShUb2tlblRyZWU6OklkZW50KGkpKSBpZiBpLnRvX3N0cmluZygpID09ICJz aW5jZSIgPT4gcGFyc2Vfc2luY2UoaSwgaXRlciksCisrICAgICAgICBTb21lKFRva2VuVHJlZTo6 SWRlbnQoaSkpIGlmIGkudG9fc3RyaW5nKCkgPT0gImJlZm9yZSIgPT4gcGFyc2VfYmVmb3JlKGks IGl0ZXIpLAorKyAgICAgICAgU29tZShUb2tlblRyZWU6OklkZW50KGkpKSBpZiBpLnRvX3N0cmlu ZygpID09ICJub3QiID0+IHBhcnNlX25vdChpLCBpdGVyKSwKKysgICAgICAgIFNvbWUoVG9rZW5U cmVlOjpJZGVudChpKSkgaWYgaS50b19zdHJpbmcoKSA9PSAiYW55IiA9PiBwYXJzZV9hbnkoaSwg aXRlciksCisrICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRlbnQoaSkpIGlmIGkudG9fc3RyaW5n KCkgPT0gImFsbCIgPT4gcGFyc2VfYWxsKGksIGl0ZXIpLAorKyAgICAgICAgdW5leHBlY3RlZCA9 PiB7CisrICAgICAgICAgICAgbGV0IHNwYW4gPSB1bmV4cGVjdGVkCisrICAgICAgICAgICAgICAg IC5hc19yZWYoKQorKyAgICAgICAgICAgICAgICAubWFwX29yX2Vsc2UoU3Bhbjo6Y2FsbF9zaXRl LCBUb2tlblRyZWU6OnNwYW4pOworKyAgICAgICAgICAgIEVycihFcnJvcjo6bmV3KHNwYW4sICJl eHBlY3RlZCBvbmUgb2YgYHN0YWJsZWAsIGBiZXRhYCwgYG5pZ2h0bHlgLCBgc2luY2VgLCBgYmVm b3JlYCwgYG5vdGAsIGBhbnlgLCBgYWxsYCIpKQorKyAgICAgICAgfQorKyAgICB9CisrfQorKwor K2ZuIHBhcnNlX25pZ2h0bHkoaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAgbGV0 IHBhcmVuID0gbWF0Y2ggdG9rZW46OnBhcnNlX29wdGlvbmFsX3BhcmVuKGl0ZXIpIHsKKysgICAg ICAgIFNvbWUoZ3JvdXApID0+IGdyb3VwLAorKyAgICAgICAgTm9uZSA9PiByZXR1cm4gT2soRXhw cjo6TmlnaHRseSksCisrICAgIH07CisrCisrICAgIGxldCByZWYgbXV0IGlubmVyID0gaXRlcjo6 bmV3KHBhcmVuLnN0cmVhbSgpKTsKKysgICAgbGV0IGRhdGUgPSBkYXRlOjpwYXJzZShwYXJlbiwg aW5uZXIpPzsKKysgICAgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0KGlubmVyLCAnLCcpOwor KyAgICB0b2tlbjo6cGFyc2VfZW5kKGlubmVyKT87CisrCisrICAgIE9rKEV4cHI6OkRhdGUoZGF0 ZSkpCisrfQorKworK2ZuIHBhcnNlX3N0YWJsZShpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4g eworKyAgICBsZXQgcGFyZW4gPSBtYXRjaCB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxfcGFyZW4oaXRl cikgeworKyAgICAgICAgU29tZShncm91cCkgPT4gZ3JvdXAsCisrICAgICAgICBOb25lID0+IHJl dHVybiBPayhFeHByOjpTdGFibGUpLAorKyAgICB9OworKworKyAgICBsZXQgcmVmIG11dCBpbm5l ciA9IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCByZWxlYXNlID0gcmVsZWFz ZTo6cGFyc2UocGFyZW4sIGlubmVyKT87CisrICAgIHRva2VuOjpwYXJzZV9vcHRpb25hbF9wdW5j dChpbm5lciwgJywnKTsKKysgICAgdG9rZW46OnBhcnNlX2VuZChpbm5lcik/OworKworKyAgICBP ayhFeHByOjpSZWxlYXNlKHJlbGVhc2UpKQorK30KKysKKytmbiBwYXJzZV9zaW5jZShpbnRyb2R1 Y2VyOiAmSWRlbnQsIGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIGxldCBwYXJl biA9IHRva2VuOjpwYXJzZV9wYXJlbihpbnRyb2R1Y2VyLCBpdGVyKT87CisrCisrICAgIGxldCBy ZWYgbXV0IGlubmVyID0gaXRlcjo6bmV3KHBhcmVuLnN0cmVhbSgpKTsKKysgICAgbGV0IGJvdW5k ID0gYm91bmQ6OnBhcnNlKHBhcmVuLCBpbm5lcik/OworKyAgICB0b2tlbjo6cGFyc2Vfb3B0aW9u YWxfcHVuY3QoaW5uZXIsICcsJyk7CisrICAgIHRva2VuOjpwYXJzZV9lbmQoaW5uZXIpPzsKKysK KysgICAgT2soRXhwcjo6U2luY2UoYm91bmQpKQorK30KKysKKytmbiBwYXJzZV9iZWZvcmUoaW50 cm9kdWNlcjogJklkZW50LCBpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQg cGFyZW4gPSB0b2tlbjo6cGFyc2VfcGFyZW4oaW50cm9kdWNlciwgaXRlcik/OworKworKyAgICBs ZXQgcmVmIG11dCBpbm5lciA9IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCBi b3VuZCA9IGJvdW5kOjpwYXJzZShwYXJlbiwgaW5uZXIpPzsKKysgICAgdG9rZW46OnBhcnNlX29w dGlvbmFsX3B1bmN0KGlubmVyLCAnLCcpOworKyAgICB0b2tlbjo6cGFyc2VfZW5kKGlubmVyKT87 CisrCisrICAgIE9rKEV4cHI6OkJlZm9yZShib3VuZCkpCisrfQorKworK2ZuIHBhcnNlX25vdChp bnRyb2R1Y2VyOiAmSWRlbnQsIGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIGxl dCBwYXJlbiA9IHRva2VuOjpwYXJzZV9wYXJlbihpbnRyb2R1Y2VyLCBpdGVyKT87CisrCisrICAg IGxldCByZWYgbXV0IGlubmVyID0gaXRlcjo6bmV3KHBhcmVuLnN0cmVhbSgpKTsKKysgICAgbGV0 IGV4cHIgPSBzZWxmOjpwYXJzZShpbm5lcik/OworKyAgICB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxf cHVuY3QoaW5uZXIsICcsJyk7CisrICAgIHRva2VuOjpwYXJzZV9lbmQoaW5uZXIpPzsKKysKKysg ICAgT2soRXhwcjo6Tm90KEJveDo6bmV3KGV4cHIpKSkKKyt9CisrCisrZm4gcGFyc2VfYW55KGlu dHJvZHVjZXI6ICZJZGVudCwgaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAgbGV0 IHBhcmVuID0gdG9rZW46OnBhcnNlX3BhcmVuKGludHJvZHVjZXIsIGl0ZXIpPzsKKysKKysgICAg bGV0IHJlZiBtdXQgaW5uZXIgPSBpdGVyOjpuZXcocGFyZW4uc3RyZWFtKCkpOworKyAgICBsZXQg ZXhwcnMgPSBwYXJzZV9jb21tYV9zZXBhcmF0ZWQoaW5uZXIpPzsKKysKKysgICAgT2soRXhwcjo6 QW55KGV4cHJzLmludG9faXRlcigpLmNvbGxlY3QoKSkpCisrfQorKworK2ZuIHBhcnNlX2FsbChp bnRyb2R1Y2VyOiAmSWRlbnQsIGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIGxl dCBwYXJlbiA9IHRva2VuOjpwYXJzZV9wYXJlbihpbnRyb2R1Y2VyLCBpdGVyKT87CisrCisrICAg IGxldCByZWYgbXV0IGlubmVyID0gaXRlcjo6bmV3KHBhcmVuLnN0cmVhbSgpKTsKKysgICAgbGV0 IGV4cHJzID0gcGFyc2VfY29tbWFfc2VwYXJhdGVkKGlubmVyKT87CisrCisrICAgIE9rKEV4cHI6 OkFsbChleHBycy5pbnRvX2l0ZXIoKS5jb2xsZWN0KCkpKQorK30KKysKKytmbiBwYXJzZV9jb21t YV9zZXBhcmF0ZWQoaXRlcjogSXRlcikgLT4gUmVzdWx0PFZlYzxFeHByPj4geworKyAgICBsZXQg bXV0IGV4cHJzID0gVmVjOjpuZXcoKTsKKysKKysgICAgd2hpbGUgaXRlci5wZWVrKCkuaXNfc29t ZSgpIHsKKysgICAgICAgIGxldCBleHByID0gc2VsZjo6cGFyc2UoaXRlcik/OworKyAgICAgICAg ZXhwcnMucHVzaChleHByKTsKKysgICAgICAgIGlmIGl0ZXIucGVlaygpLmlzX25vbmUoKSB7Cisr ICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICB9CisrICAgICAgICB0b2tlbjo6cGFyc2VfcHVu Y3QoaXRlciwgJywnKT87CisrICAgIH0KKysKKysgICAgT2soZXhwcnMpCisrfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2l0ZXIucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9pdGVyLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0t IC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvaXRlci5y cworQEAgLTAsMCArMSw0MiBAQAorK3VzZSBwcm9jX21hY3JvOjp7dG9rZW5fc3RyZWFtLCBEZWxp bWl0ZXIsIFRva2VuU3RyZWFtLCBUb2tlblRyZWV9OworKworK3B1YiB0eXBlIEl0ZXI8J2E+ID0g JidhIG11dCBJdGVySW1wbDsKKysKKytwdWIgc3RydWN0IEl0ZXJJbXBsIHsKKysgICAgc3RhY2s6 IFZlYzx0b2tlbl9zdHJlYW06OkludG9JdGVyPiwKKysgICAgcGVla2VkOiBPcHRpb248VG9rZW5U cmVlPiwKKyt9CisrCisrcHViIGZuIG5ldyh0b2tlbnM6IFRva2VuU3RyZWFtKSAtPiBJdGVySW1w bCB7CisrICAgIEl0ZXJJbXBsIHsKKysgICAgICAgIHN0YWNrOiB2ZWMhW3Rva2Vucy5pbnRvX2l0 ZXIoKV0sCisrICAgICAgICBwZWVrZWQ6IE5vbmUsCisrICAgIH0KKyt9CisrCisraW1wbCBJdGVy SW1wbCB7CisrICAgIHB1YiBmbiBwZWVrKCZtdXQgc2VsZikgLT4gT3B0aW9uPCZUb2tlblRyZWU+ IHsKKysgICAgICAgIHNlbGYucGVla2VkID0gc2VsZi5uZXh0KCk7CisrICAgICAgICBzZWxmLnBl ZWtlZC5hc19yZWYoKQorKyAgICB9CisrfQorKworK2ltcGwgSXRlcmF0b3IgZm9yIEl0ZXJJbXBs IHsKKysgICAgdHlwZSBJdGVtID0gVG9rZW5UcmVlOworKworKyAgICBmbiBuZXh0KCZtdXQgc2Vs ZikgLT4gT3B0aW9uPFNlbGY6Okl0ZW0+IHsKKysgICAgICAgIGlmIGxldCBTb21lKHR0KSA9IHNl bGYucGVla2VkLnRha2UoKSB7CisrICAgICAgICAgICAgcmV0dXJuIFNvbWUodHQpOworKyAgICAg ICAgfQorKyAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgbGV0IHRvcCA9IHNlbGYuc3RhY2su bGFzdF9tdXQoKT87CisrICAgICAgICAgICAgbWF0Y2ggdG9wLm5leHQoKSB7CisrICAgICAgICAg ICAgICAgIE5vbmUgPT4gZHJvcChzZWxmLnN0YWNrLnBvcCgpKSwKKysgICAgICAgICAgICAgICAg U29tZShUb2tlblRyZWU6Okdyb3VwKHJlZiBncm91cCkpIGlmIGdyb3VwLmRlbGltaXRlcigpID09 IERlbGltaXRlcjo6Tm9uZSA9PiB7CisrICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YWNrLnB1 c2goZ3JvdXAuc3RyZWFtKCkuaW50b19pdGVyKCkpOworKyAgICAgICAgICAgICAgICB9CisrICAg ICAgICAgICAgICAgIFNvbWUodHQpID0+IHJldHVybiBTb21lKHR0KSwKKysgICAgICAgICAgICB9 CisrICAgICAgICB9CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMv bGliLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvbGliLnJzCitAQCAtMCwwICsxLDI4MSBAQAorKy8v ISBbIVtnaXRodWJdXShodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9ydXN0dmVyc2lvbikmZW5z cDtbIVtjcmF0ZXMtaW9dXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcnVzdHZlcnNpb24pJmVu c3A7WyFbZG9jcy1yc11dKGh0dHBzOi8vZG9jcy5ycy9ydXN0dmVyc2lvbikKKysvLyEKKysvLyEg W2dpdGh1Yl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZ2l0aHViLThkYTBjYj9zdHls ZT1mb3ItdGhlLWJhZGdlJmxhYmVsQ29sb3I9NTU1NTU1JmxvZ289Z2l0aHViCisrLy8hIFtjcmF0 ZXMtaW9dOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NyYXRlcy5pby1mYzhkNjI/c3R5 bGU9Zm9yLXRoZS1iYWRnZSZsYWJlbENvbG9yPTU1NTU1NSZsb2dvPXJ1c3QKKysvLyEgW2RvY3Mt cnNdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY3MucnMtNjZjMmE1P3N0eWxlPWZv ci10aGUtYmFkZ2UmbGFiZWxDb2xvcj01NTU1NTUmbG9nbz1kb2NzLnJzCisrLy8hCisrLy8hIDxi cj4KKysvLyEKKysvLyEgVGhpcyBjcmF0ZSBwcm92aWRlcyBtYWNyb3MgZm9yIGNvbmRpdGlvbmFs IGNvbXBpbGF0aW9uIGFjY29yZGluZyB0byBydXN0YworKy8vISBjb21waWxlciB2ZXJzaW9uLCBh bmFsb2dvdXMgdG8gW2AjW2NmZyguLi4pXWBdW2NmZ10gYW5kCisrLy8hIFtgI1tjZmdfYXR0cigu Li4pXWBdW2NmZ19hdHRyXS4KKysvLyEKKysvLyEgW2NmZ106IGh0dHBzOi8vZG9jLnJ1c3QtbGFu Zy5vcmcvcmVmZXJlbmNlL2NvbmRpdGlvbmFsLWNvbXBpbGF0aW9uLmh0bWwjdGhlLWNmZy1hdHRy aWJ1dGUKKysvLyEgW2NmZ19hdHRyXTogaHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZy9yZWZlcmVu Y2UvY29uZGl0aW9uYWwtY29tcGlsYXRpb24uaHRtbCN0aGUtY2ZnX2F0dHItYXR0cmlidXRlCisr Ly8hCisrLy8hIDxicj4KKysvLyEKKysvLyEgIyBTZWxlY3RvcnMKKysvLyEKKysvLyEgLSA8cCBz dHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNv ZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJzaW9uOjpzdGFibGVdPC9jb2RlPjwv Yj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAgVHJ1ZSBvbiBhbnkgc3RhYmxlIGNvbXBpbGVyLgor Ky8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0 LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4j W3J1c3R2ZXJzaW9uOjpzdGFibGUoMS4zNCldPC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+Cisr Ly8hICAgVHJ1ZSBvbiBleGFjdGx5IHRoZSBzcGVjaWZpZWQgc3RhYmxlIGNvbXBpbGVyLgorKy8v ISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWlu ZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1 c3R2ZXJzaW9uOjpiZXRhXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIFRydWUg b24gYW55IGJldGEgY29tcGlsZXIuCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxl PSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBz dHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVzdHZlcnNpb246Om5pZ2h0bHldPC9jb2RlPjwvYj4K KysvLyEgICDigJQ8YnI+CisrLy8hICAgVHJ1ZSBvbiBhbnkgbmlnaHRseSBjb21waWxlciBvciBk ZXYgYnVpbGQuCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJnaW4tbGVm dDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0iZGlzcGxh eTppbmxpbmUiPiNbcnVzdHZlcnNpb246Om5pZ2h0bHkoMjAyNS0wMS0wMSldPC9jb2RlPjwvYj4K KysvLyEgICDigJQ8YnI+CisrLy8hICAgVHJ1ZSBvbiBleGFjdGx5IG9uZSBuaWdodGx5LgorKy8v ISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWlu ZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1 c3R2ZXJzaW9uOjpzaW5jZSgxLjM0KV08L2NvZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEg ICBUcnVlIG9uIHRoYXQgc3RhYmxlIHJlbGVhc2UgYW5kIGFueSBsYXRlciBjb21waWxlciwgaW5j bHVkaW5nIGJldGEgYW5kCisrLy8hICAgbmlnaHRseS4KKysvLyEgICA8L3A+CisrLy8hCisrLy8h IC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAg IDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6c2luY2UoMjAy NS0wMS0wMSldPC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAgVHJ1ZSBvbiB0aGF0 IG5pZ2h0bHkgYW5kIGFsbCBuZXdlciBvbmVzLgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8 cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+ PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJzaW9uOjpiZWZvcmUoPC9jb2Rl PjwvYj48aT52ZXJzaW9uIG9yIGRhdGU8L2k+PGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5l Ij4pXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIE5lZ2F0aXZlIG9mIDxpPiNb cnVzdHZlcnNpb246OnNpbmNlKC4uLildPC9pPi4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0g PHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxi Pjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6bm90KDwvY29kZT48 L2I+PGk+c2VsZWN0b3I8L2k+PGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4pXTwvY29k ZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIE5lZ2F0aXZlIG9mIGFueSBzZWxlY3Rvcjsg Zm9yIGV4YW1wbGUgPGk+I1tydXN0dmVyc2lvbjo6bm90KG5pZ2h0bHkpXTwvaT4uCisrLy8hICAg PC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5kZW50 Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVzdHZl cnNpb246OmFueSg8L2NvZGU+PC9iPjxpPnNlbGVjdG9ycy4uLjwvaT48Yj48Y29kZSBzdHlsZT0i ZGlzcGxheTppbmxpbmUiPildPC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAgVHJ1 ZSBpZiBhbnkgb2YgdGhlIGNvbW1hLXNlcGFyYXRlZCBzZWxlY3RvcnMgaXMgdHJ1ZTsgZm9yIGV4 YW1wbGUKKysvLyEgICA8aT4jW3J1c3R2ZXJzaW9uOjphbnkoc3RhYmxlLCBiZXRhKV08L2k+Lgor Ky8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0 LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4j W3J1c3R2ZXJzaW9uOjphbGwoPC9jb2RlPjwvYj48aT5zZWxlY3RvcnMuLi48L2k+PGI+PGNvZGUg c3R5bGU9ImRpc3BsYXk6aW5saW5lIj4pXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8v ISAgIFRydWUgaWYgYWxsIG9mIHRoZSBjb21tYS1zZXBhcmF0ZWQgc2VsZWN0b3JzIGFyZSB0cnVl OyBmb3IgZXhhbXBsZQorKy8vISAgIDxpPiNbcnVzdHZlcnNpb246OmFsbChzaW5jZSgxLjMxKSwg YmVmb3JlKDEuMzQpKV08L2k+LgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0i bWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5 bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJzaW9uOjphdHRyKDwvY29kZT48L2I+PGk+c2Vs ZWN0b3I8L2k+PGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4sIDwvY29kZT48L2I+PGk+ YXR0cmlidXRlPC9pPjxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+KV08L2NvZGU+PC9i PgorKy8vISAgIOKAlDxicj4KKysvLyEgICBGb3IgY29uZGl0aW9uYWwgaW5jbHVzaW9uIG9mIGF0 dHJpYnV0ZXM7IGFuYWxvZ291cyB0bworKy8vISAgIDxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGlu ZSI+Y2ZnX2F0dHI8L2NvZGU+LgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0i bWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5 bGU9ImRpc3BsYXk6aW5saW5lIj5ydXN0dmVyc2lvbjo6Y2ZnISg8L2NvZGU+PC9iPjxpPnNlbGVj dG9yPC9pPjxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+KTwvY29kZT48L2I+CisrLy8h ICAg4oCUPGJyPgorKy8vISAgIEFuIGV4cHJlc3Npb24gZm9ybSBvZiBhbnkgb2YgdGhlIGFib3Zl IGF0dHJpYnV0ZXM7IGZvciBleGFtcGxlCisrLy8hICAgPGk+aWYgcnVzdHZlcnNpb246OmNmZyEo YW55KHN0YWJsZSwgYmV0YSkpIHsgLi4uIH08L2k+LgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEg PGJyPgorKy8vIQorKy8vISAjIFVzZSBjYXNlcworKy8vIQorKy8vISBQcm92aWRpbmcgYWRkaXRp b25hbCB0cmFpdCBpbXBscyBhcyB0eXBlcyBhcmUgc3RhYmlsaXplZCBpbiB0aGUgc3RhbmRhcmQg bGlicmFyeQorKy8vISB3aXRob3V0IGJyZWFraW5nIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBj b21waWxlcnM7IGluIHRoaXMgY2FzZSBQaW5cPFBcPgorKy8vISBzdGFiaWxpemVkIGluIFtSdXN0 IDEuMzNdW3Bpbl06CisrLy8hCisrLy8hIFtwaW5dOiBodHRwczovL2Jsb2cucnVzdC1sYW5nLm9y Zy8yMDE5LzAyLzI4L1J1c3QtMS4zMy4wLmh0bWwjcGlubmluZworKy8vIQorKy8vISBgYGAKKysv LyEgIyB0cmFpdCBNeVRyYWl0IHt9CisrLy8hICMKKysvLyEgI1tydXN0dmVyc2lvbjo6c2luY2Uo MS4zMyldCisrLy8hIHVzZSBzdGQ6OnBpbjo6UGluOworKy8vIQorKy8vISAjW3J1c3R2ZXJzaW9u OjpzaW5jZSgxLjMzKV0KKysvLyEgaW1wbDxQOiBNeVRyYWl0PiBNeVRyYWl0IGZvciBQaW48UD4g eworKy8vISAgICAgLyogLi4uICovCisrLy8hIH0KKysvLyEgYGBgCisrLy8hCisrLy8hIFNpbWls YXIgYnV0IGZvciBsYW5ndWFnZSBmZWF0dXJlczsgdGhlIGFiaWxpdHkgdG8gY29udHJvbCBhbGln bm1lbnQgZ3JlYXRlciB0aGFuCisrLy8hIDEgb2YgcGFja2VkIHN0cnVjdHMgd2FzIHN0YWJpbGl6 ZWQgaW4gW1J1c3QgMS4zM11bcGFja2VkXS4KKysvLyEKKysvLyEgW3BhY2tlZF06IGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC9ibG9iL21hc3Rlci9SRUxFQVNFUy5tZCN2ZXJzaW9u LTEzMzAtMjAxOS0wMi0yOAorKy8vIQorKy8vISBgYGAKKysvLyEgI1tydXN0dmVyc2lvbjo6YXR0 cihiZWZvcmUoMS4zMyksIHJlcHIocGFja2VkKSldCisrLy8hICNbcnVzdHZlcnNpb246OmF0dHIo c2luY2UoMS4zMyksIHJlcHIocGFja2VkKDIpKSldCisrLy8hIHN0cnVjdCBTaXgoaTE2LCBpMzIp OworKy8vIQorKy8vISBmbiBtYWluKCkgeworKy8vISAgICAgcHJpbnRsbiEoInt9Iiwgc3RkOjpt ZW06OmFsaWduX29mOjo8U2l4PigpKTsKKysvLyEgfQorKy8vISBgYGAKKysvLyEKKysvLyEgQXVn bWVudGluZyBjb2RlIHdpdGggYGNvbnN0YCBhcyBjb25zdCBpbXBscyBhcmUgc3RhYmlsaXplZCBp biB0aGUgc3RhbmRhcmQKKysvLyEgbGlicmFyeS4gVGhpcyB1c2Ugb2YgYGNvbnN0YCBhcyBhbiBh dHRyaWJ1dGUgaXMgcmVjb2duaXplZCBhcyBhIHNwZWNpYWwgY2FzZQorKy8vISBieSB0aGUgcnVz dHZlcnNpb246OmF0dHIgbWFjcm8uCisrLy8hCisrLy8hIGBgYAorKy8vISB1c2Ugc3RkOjp0aW1l OjpEdXJhdGlvbjsKKysvLyEKKysvLyEgI1tydXN0dmVyc2lvbjo6YXR0cihzaW5jZSgxLjMyKSwg Y29uc3QpXQorKy8vISBmbiBkdXJhdGlvbl9hc19kYXlzKGR1cjogRHVyYXRpb24pIC0+IHU2NCB7 CisrLy8hICAgICBkdXIuYXNfc2VjcygpIC8gNjAgLyA2MCAvIDI0CisrLy8hIH0KKysvLyEgYGBg CisrLy8hCisrLy8hIEVtaXR0aW5nIENhcmdvIGNmZyBkaXJlY3RpdmVzIGZyb20gYSBidWlsZCBz Y3JpcHQuIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzCisrLy8hIGxpc3RpbmcgYHJ1c3R2ZXJzaW9u YCB1bmRlciBgW2J1aWxkLWRlcGVuZGVuY2llc11gIGluIENhcmdvLnRvbWwsIG5vdAorKy8vISBg W2RlcGVuZGVuY2llc11gLgorKy8vIQorKy8vISBgYGAKKysvLyEgLy8gYnVpbGQucnMKKysvLyEK KysvLyEgZm4gbWFpbigpIHsKKysvLyEgICAgIGlmIHJ1c3R2ZXJzaW9uOjpjZmchKHNpbmNlKDEu MzYpKSB7CisrLy8hICAgICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1ub19zdGQiKTsK KysvLyEgICAgIH0KKysvLyEgfQorKy8vISBgYGAKKysvLyEKKysvLyEgYGBgCisrLy8hIC8vIHNy Yy9saWIucnMKKysvLyEKKysvLyEgIyFbY2ZnX2F0dHIobm9fc3RkLCBub19zdGQpXQorKy8vIQor Ky8vISAjW2NmZyhub19zdGQpXQorKy8vISBleHRlcm4gY3JhdGUgYWxsb2M7CisrLy8hIGBgYAor Ky8vIQorKy8vISA8YnI+CisrCisrIyFbZG9jKGh0bWxfcm9vdF91cmwgPSAiaHR0cHM6Ly9kb2Nz LnJzL3J1c3R2ZXJzaW9uLzEuMC4yMyIpXQorKyMhW2FsbG93KAorKyAgICBjbGlwcHk6OmNhc3Rf bG9zc2xlc3MsCisrICAgIGNsaXBweTo6Y2FzdF9wb3NzaWJsZV90cnVuY2F0aW9uLAorKyAgICBj bGlwcHk6OmRlcml2ZV9wYXJ0aWFsX2VxX3dpdGhvdXRfZXEsCisrICAgIGNsaXBweTo6ZG9jX21h cmtkb3duLAorKyAgICBjbGlwcHk6OmVudW1fZ2xvYl91c2UsCisrICAgIC8vIGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmcvcnVzdC1jbGlwcHkvaXNzdWVzLzg1MzkKKysgICAgY2xpcHB5Ojpp dGVyX3dpdGhfZHJhaW4sCisrICAgIGNsaXBweTo6bW9kdWxlX25hbWVfcmVwZXRpdGlvbnMsCisr ICAgIGNsaXBweTo6bXVzdF91c2VfY2FuZGlkYXRlLAorKyAgICBjbGlwcHk6Om5lZWRsZXNzX2Rv Y3Rlc3RfbWFpbiwKKysgICAgY2xpcHB5OjpuZWVkbGVzc19wYXNzX2J5X3ZhbHVlLAorKyAgICBj bGlwcHk6OnJlZHVuZGFudF9lbHNlLAorKyAgICBjbGlwcHk6OnRvcGxldmVsX3JlZl9hcmcsCisr ICAgIGNsaXBweTo6dW5yZWFkYWJsZV9saXRlcmFsCisrKV0KKysKKytleHRlcm4gY3JhdGUgcHJv Y19tYWNybzsKKysKKyttb2QgYXR0cjsKKyttb2QgYm91bmQ7CisrbW9kIGNvbnN0Zm47CisrbW9k IGRhdGU7CisrbW9kIGVycm9yOworK21vZCBleHBhbmQ7CisrbW9kIGV4cHI7CisrbW9kIGl0ZXI7 CisrbW9kIHJlbGVhc2U7CisrbW9kIHRpbWU7CisrbW9kIHRva2VuOworK21vZCB2ZXJzaW9uOwor KworK3VzZSBjcmF0ZTo6ZXJyb3I6OkVycm9yOworK3VzZSBjcmF0ZTo6dmVyc2lvbjo6VmVyc2lv bjsKKyt1c2UgcHJvY19tYWNybzo6VG9rZW5TdHJlYW07CisrCisrI1tjZmcobm90KGhvc3Rfb3Mg PSAid2luZG93cyIpKV0KKytjb25zdCBSVVNUVkVSU0lPTjogVmVyc2lvbiA9IGluY2x1ZGUhKGNv bmNhdCEoZW52ISgiT1VUX0RJUiIpLCAiL3ZlcnNpb24uZXhwciIpKTsKKysKKysjW2NmZyhob3N0 X29zID0gIndpbmRvd3MiKV0KKytjb25zdCBSVVNUVkVSU0lPTjogVmVyc2lvbiA9IGluY2x1ZGUh KGNvbmNhdCEoZW52ISgiT1VUX0RJUiIpLCAiXFx2ZXJzaW9uLmV4cHIiKSk7CisrCisrI1twcm9j X21hY3JvX2F0dHJpYnV0ZV0KKytwdWIgZm4gc3RhYmxlKGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1 dDogVG9rZW5TdHJlYW0pIC0+IFRva2VuU3RyZWFtIHsKKysgICAgZXhwYW5kOjpjZmcoInN0YWJs ZSIsIGFyZ3MsIGlucHV0KQorK30KKysKKysjW3Byb2NfbWFjcm9fYXR0cmlidXRlXQorK3B1YiBm biBiZXRhKGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1dDogVG9rZW5TdHJlYW0pIC0+IFRva2VuU3Ry ZWFtIHsKKysgICAgZXhwYW5kOjpjZmcoImJldGEiLCBhcmdzLCBpbnB1dCkKKyt9CisrCisrI1tw cm9jX21hY3JvX2F0dHJpYnV0ZV0KKytwdWIgZm4gbmlnaHRseShhcmdzOiBUb2tlblN0cmVhbSwg aW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIGV4cGFuZDo6Y2ZnKCJu aWdodGx5IiwgYXJncywgaW5wdXQpCisrfQorKworKyNbcHJvY19tYWNyb19hdHRyaWJ1dGVdCisr cHViIGZuIHNpbmNlKGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1dDogVG9rZW5TdHJlYW0pIC0+IFRv a2VuU3RyZWFtIHsKKysgICAgZXhwYW5kOjpjZmcoInNpbmNlIiwgYXJncywgaW5wdXQpCisrfQor KworKyNbcHJvY19tYWNyb19hdHRyaWJ1dGVdCisrcHViIGZuIGJlZm9yZShhcmdzOiBUb2tlblN0 cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIGV4cGFuZDo6 Y2ZnKCJiZWZvcmUiLCBhcmdzLCBpbnB1dCkKKyt9CisrCisrI1twcm9jX21hY3JvX2F0dHJpYnV0 ZV0KKytwdWIgZm4gbm90KGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1dDogVG9rZW5TdHJlYW0pIC0+ IFRva2VuU3RyZWFtIHsKKysgICAgZXhwYW5kOjpjZmcoIm5vdCIsIGFyZ3MsIGlucHV0KQorK30K KysKKysjW3Byb2NfbWFjcm9fYXR0cmlidXRlXQorK3B1YiBmbiBhbnkoYXJnczogVG9rZW5TdHJl YW0sIGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICBleHBhbmQ6OmNm ZygiYW55IiwgYXJncywgaW5wdXQpCisrfQorKworKyNbcHJvY19tYWNyb19hdHRyaWJ1dGVdCisr cHViIGZuIGFsbChhcmdzOiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tl blN0cmVhbSB7CisrICAgIGV4cGFuZDo6Y2ZnKCJhbGwiLCBhcmdzLCBpbnB1dCkKKyt9CisrCisr I1twcm9jX21hY3JvX2F0dHJpYnV0ZV0KKytwdWIgZm4gYXR0cihhcmdzOiBUb2tlblN0cmVhbSwg aW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIGF0dHI6OnBhcnNlKGFy Z3MpCisrICAgICAgICAuYW5kX3RoZW4ofGFyZ3N8IGV4cGFuZDo6dHJ5X2F0dHIoYXJncywgaW5w dXQpKQorKyAgICAgICAgLnVud3JhcF9vcl9lbHNlKEVycm9yOjppbnRvX2NvbXBpbGVfZXJyb3Ip CisrfQorKworKyNbY2ZnKG5vdChjZmdfbWFjcm9fbm90X2FsbG93ZWQpKV0KKysjW3Byb2NfbWFj cm9dCisrcHViIGZuIGNmZyhpbnB1dDogVG9rZW5TdHJlYW0pIC0+IFRva2VuU3RyZWFtIHsKKysg ICAgdXNlIHByb2NfbWFjcm86OntJZGVudCwgU3BhbiwgVG9rZW5UcmVlfTsKKysgICAgKHx8IHsK KysgICAgICAgIGxldCByZWYgbXV0IGFyZ3MgPSBpdGVyOjpuZXcoaW5wdXQpOworKyAgICAgICAg bGV0IGV4cHIgPSBleHByOjpwYXJzZShhcmdzKT87CisrICAgICAgICB0b2tlbjo6cGFyc2VfZW5k KGFyZ3MpPzsKKysgICAgICAgIGxldCBib29sZWFuID0gZXhwci5ldmFsKFJVU1RWRVJTSU9OKTsK KysgICAgICAgIGxldCBpZGVudCA9IElkZW50OjpuZXcoJmJvb2xlYW4udG9fc3RyaW5nKCksIFNw YW46OmNhbGxfc2l0ZSgpKTsKKysgICAgICAgIE9rKFRva2VuU3RyZWFtOjpmcm9tKFRva2VuVHJl ZTo6SWRlbnQoaWRlbnQpKSkKKysgICAgfSkoKQorKyAgICAudW53cmFwX29yX2Vsc2UoRXJyb3I6 OmludG9fY29tcGlsZV9lcnJvcikKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi9zcmMvcmVsZWFzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24v c3JjL3JlbGVhc2UucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9yZWxlYXNlLnJzCitAQCAtMCwwICsx LDM0IEBACisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1bHR9OworK3VzZSBjcmF0ZTo6 aXRlcjo6SXRlcjsKKyt1c2UgY3JhdGU6OnRva2VuOworK3VzZSBwcm9jX21hY3JvOjpHcm91cDsK KysKKysjW2Rlcml2ZShDb3B5LCBDbG9uZSwgRGVidWcsIFBhcnRpYWxFcSwgRXEsIFBhcnRpYWxP cmQsIE9yZCldCisrcHViIHN0cnVjdCBSZWxlYXNlIHsKKysgICAgcHViIG1pbm9yOiB1MTYsCisr ICAgIHB1YiBwYXRjaDogT3B0aW9uPHUxNj4sCisrfQorKworK3B1YiBmbiBwYXJzZShwYXJlbjog R3JvdXAsIGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxSZWxlYXNlPiB7CisrICAgIHRyeV9wYXJzZShp dGVyKS5tYXBfZXJyKHwoKXwgRXJyb3I6Omdyb3VwKHBhcmVuLCAiZXhwZWN0ZWQgcnVzdGMgcmVs ZWFzZSBudW1iZXIsIGxpa2UgMS4zMSIpKQorK30KKysKKytmbiB0cnlfcGFyc2UoaXRlcjogSXRl cikgLT4gUmVzdWx0PFJlbGVhc2UsICgpPiB7CisrICAgIGxldCBtYWpvcl9taW5vciA9IHRva2Vu OjpwYXJzZV9saXRlcmFsKGl0ZXIpLm1hcF9lcnIoZHJvcCk/OworKyAgICBsZXQgc3RyaW5nID0g bWFqb3JfbWlub3IudG9fc3RyaW5nKCk7CisrCisrICAgIGlmICFzdHJpbmcuc3RhcnRzX3dpdGgo IjEuIikgeworKyAgICAgICAgcmV0dXJuIEVycigoKSk7CisrICAgIH0KKysKKysgICAgbGV0IG1p bm9yOiB1MTYgPSBzdHJpbmdbMi4uXS5wYXJzZSgpLm1hcF9lcnIoZHJvcCk/OworKworKyAgICBs ZXQgcGF0Y2ggPSBpZiB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxfcHVuY3QoaXRlciwgJy4nKS5pc19z b21lKCkgeworKyAgICAgICAgbGV0IGludCA9IHRva2VuOjpwYXJzZV9saXRlcmFsKGl0ZXIpLm1h cF9lcnIoZHJvcCk/OworKyAgICAgICAgU29tZShpbnQudG9fc3RyaW5nKCkucGFyc2UoKS5tYXBf ZXJyKGRyb3ApPykKKysgICAgfSBlbHNlIHsKKysgICAgICAgIE5vbmUKKysgICAgfTsKKysKKysg ICAgT2soUmVsZWFzZSB7IG1pbm9yLCBwYXRjaCB9KQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy90aW1lLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0 dmVyc2lvbi9zcmMvdGltZS5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwK KysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL3RpbWUucnMKK0BAIC0wLDAg KzEsNTEgQEAKKyt1c2UgY3JhdGU6OmRhdGU6OkRhdGU7CisrdXNlIHN0ZDo6ZW52OworK3VzZSBz dGQ6OnRpbWU6OntTeXN0ZW1UaW1lLCBVTklYX0VQT0NIfTsKKysKKysvLyBUaW1lc3RhbXAgb2Yg MjAxNi0wMy0wMSAwMDowMDowMCBpbiBVVEMuCisrY29uc3QgQkFTRTogdTY0ID0gMTQ1Njc5MDQw MDsKKytjb25zdCBCQVNFX1lFQVI6IHUxNiA9IDIwMTY7CisrY29uc3QgQkFTRV9NT05USDogdTgg PSAzOworKworKy8vIERheXMgYmV0d2VlbiBsZWFwIGRheXMuCisrY29uc3QgQ1lDTEU6IHU2NCA9 IDM2NSAqIDQgKyAxOworKworK2NvbnN0IERBWVNfQllfTU9OVEg6IFt1ODsgMTJdID0gWzMxLCAy OCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdOworKworK3B1YiBmbiB0 b2RheSgpIC0+IERhdGUgeworKyAgICBsZXQgZGVmYXVsdCA9IERhdGUgeworKyAgICAgICAgeWVh cjogMjAyNSwKKysgICAgICAgIG1vbnRoOiAyLAorKyAgICAgICAgZGF5OiAyNSwKKysgICAgfTsK KysgICAgdHJ5X3RvZGF5KCkudW53cmFwX29yKGRlZmF1bHQpCisrfQorKworK2ZuIHRyeV90b2Rh eSgpIC0+IE9wdGlvbjxEYXRlPiB7CisrICAgIGlmIGxldCBTb21lKHBrZ19uYW1lKSA9IGVudjo6 dmFyX29zKCJDQVJHT19QS0dfTkFNRSIpIHsKKysgICAgICAgIGlmIHBrZ19uYW1lLnRvX3N0cigp ID09IFNvbWUoInJ1c3R2ZXJzaW9uLXRlc3RzIikgeworKyAgICAgICAgICAgIHJldHVybiBOb25l OyAvLyBTdGFibGUgZGF0ZSBmb3IgdWkgdGVzdGluZy4KKysgICAgICAgIH0KKysgICAgfQorKwor KyAgICBsZXQgbm93ID0gU3lzdGVtVGltZTo6bm93KCk7CisrICAgIGxldCBzaW5jZV9lcG9jaCA9 IG5vdy5kdXJhdGlvbl9zaW5jZShVTklYX0VQT0NIKS5vaygpPzsKKysgICAgbGV0IHNlY3MgPSBz aW5jZV9lcG9jaC5hc19zZWNzKCk7CisrCisrICAgIGxldCBhcHByb3hfZGF5cyA9IHNlY3MuY2hl Y2tlZF9zdWIoQkFTRSk/IC8gNjAgLyA2MCAvIDI0OworKyAgICBsZXQgY3ljbGUgPSBhcHByb3hf ZGF5cyAvIENZQ0xFOworKyAgICBsZXQgbXV0IHJlbSA9IGFwcHJveF9kYXlzICUgQ1lDTEU7Cisr CisrICAgIGxldCBtdXQgeWVhciA9IEJBU0VfWUVBUiArIGN5Y2xlIGFzIHUxNiAqIDQ7CisrICAg IGxldCBtdXQgbW9udGggPSBCQVNFX01PTlRIOworKyAgICBsb29wIHsKKysgICAgICAgIGxldCBk YXlzX2luX21vbnRoID0gREFZU19CWV9NT05USFttb250aCBhcyB1c2l6ZSAtIDFdOworKyAgICAg ICAgaWYgcmVtIDwgZGF5c19pbl9tb250aCBhcyB1NjQgeworKyAgICAgICAgICAgIGxldCBkYXkg PSByZW0gYXMgdTggKyAxOworKyAgICAgICAgICAgIHJldHVybiBTb21lKERhdGUgeyB5ZWFyLCBt b250aCwgZGF5IH0pOworKyAgICAgICAgfQorKyAgICAgICAgcmVtIC09IGRheXNfaW5fbW9udGgg YXMgdTY0OworKyAgICAgICAgeWVhciArPSAobW9udGggPT0gMTIpIGFzIHUxNjsKKysgICAgICAg IG1vbnRoID0gbW9udGggJSAxMiArIDE7CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvdG9rZW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1 c3R2ZXJzaW9uL3NyYy90b2tlbi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251 bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL3Rva2VuLnJzCitAQCAt MCwwICsxLDc4IEBACisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1bHR9OworK3VzZSBj cmF0ZTo6aXRlcjo6SXRlcjsKKyt1c2UgcHJvY19tYWNybzo6e0RlbGltaXRlciwgR3JvdXAsIElk ZW50LCBMaXRlcmFsLCBTcGFuLCBUb2tlblRyZWV9OworKworK3B1YiBmbiBwYXJzZV9wdW5jdChp dGVyOiBJdGVyLCBjaDogY2hhcikgLT4gUmVzdWx0PCgpPiB7CisrICAgIG1hdGNoIGl0ZXIubmV4 dCgpIHsKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpQdW5jdChyZWYgcHVuY3QpKSBpZiBwdW5j dC5hc19jaGFyKCkgPT0gY2ggPT4gT2soKCkpLAorKyAgICAgICAgdW5leHBlY3RlZCA9PiB7Cisr ICAgICAgICAgICAgbGV0IHNwYW4gPSB1bmV4cGVjdGVkCisrICAgICAgICAgICAgICAgIC5hc19y ZWYoKQorKyAgICAgICAgICAgICAgICAubWFwX29yX2Vsc2UoU3Bhbjo6Y2FsbF9zaXRlLCBUb2tl blRyZWU6OnNwYW4pOworKyAgICAgICAgICAgIEVycihFcnJvcjo6bmV3KHNwYW4sIGZvcm1hdCEo ImV4cGVjdGVkIGB7fWAiLCBjaCkpKQorKyAgICAgICAgfQorKyAgICB9CisrfQorKworK3B1YiBm biBwYXJzZV9vcHRpb25hbF9wdW5jdChpdGVyOiBJdGVyLCBjaDogY2hhcikgLT4gT3B0aW9uPCgp PiB7CisrICAgIG1hdGNoIGl0ZXIucGVlaygpIHsKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpQ dW5jdChwdW5jdCkpIGlmIHB1bmN0LmFzX2NoYXIoKSA9PSBjaCA9PiBpdGVyLm5leHQoKS5tYXAo ZHJvcCksCisrICAgICAgICBfID0+IE5vbmUsCisrICAgIH0KKyt9CisrCisrcHViIGZuIHBhcnNl X29wdGlvbmFsX2tleXdvcmQoaXRlcjogSXRlciwga2V5d29yZDogJnN0cikgLT4gT3B0aW9uPFNw YW4+IHsKKysgICAgbWF0Y2ggaXRlci5wZWVrKCkgeworKyAgICAgICAgU29tZShUb2tlblRyZWU6 OklkZW50KGlkZW50KSkgaWYgaWRlbnQudG9fc3RyaW5nKCkgPT0ga2V5d29yZCA9PiB7CisrICAg ICAgICAgICAgU29tZShpdGVyLm5leHQoKS51bndyYXAoKS5zcGFuKCkpCisrICAgICAgICB9Cisr ICAgICAgICBfID0+IE5vbmUsCisrICAgIH0KKyt9CisrCisrcHViIGZuIHBhcnNlX2xpdGVyYWwo aXRlcjogSXRlcikgLT4gUmVzdWx0PExpdGVyYWw+IHsKKysgICAgbWF0Y2ggaXRlci5uZXh0KCkg eworKyAgICAgICAgU29tZShUb2tlblRyZWU6OkxpdGVyYWwobGl0ZXJhbCkpID0+IE9rKGxpdGVy YWwpLAorKyAgICAgICAgdW5leHBlY3RlZCA9PiB7CisrICAgICAgICAgICAgbGV0IHNwYW4gPSB1 bmV4cGVjdGVkCisrICAgICAgICAgICAgICAgIC5hc19yZWYoKQorKyAgICAgICAgICAgICAgICAu bWFwX29yX2Vsc2UoU3Bhbjo6Y2FsbF9zaXRlLCBUb2tlblRyZWU6OnNwYW4pOworKyAgICAgICAg ICAgIEVycihFcnJvcjo6bmV3KHNwYW4sICJleHBlY3RlZCBsaXRlcmFsIikpCisrICAgICAgICB9 CisrICAgIH0KKyt9CisrCisrcHViIGZuIHBhcnNlX3BhcmVuKGludHJvZHVjZXI6ICZJZGVudCwg aXRlcjogSXRlcikgLT4gUmVzdWx0PEdyb3VwPiB7CisrICAgIG1hdGNoIGl0ZXIucGVlaygpIHsK KysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpHcm91cChncm91cCkpIGlmIGdyb3VwLmRlbGltaXRl cigpID09IERlbGltaXRlcjo6UGFyZW50aGVzaXMgPT4geworKyAgICAgICAgICAgIG1hdGNoIGl0 ZXIubmV4dCgpIHsKKysgICAgICAgICAgICAgICAgU29tZShUb2tlblRyZWU6Okdyb3VwKGdyb3Vw KSkgPT4gT2soZ3JvdXApLAorKyAgICAgICAgICAgICAgICBfID0+IHVucmVhY2hhYmxlISgpLAor KyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAgIFNvbWUodW5leHBlY3RlZCkgPT4g RXJyKEVycm9yOjpuZXcodW5leHBlY3RlZC5zcGFuKCksICJleHBlY3RlZCBgKGAiKSksCisrICAg ICAgICBOb25lID0+IEVycihFcnJvcjo6bmV3KAorKyAgICAgICAgICAgIGludHJvZHVjZXIuc3Bh bigpLAorKyAgICAgICAgICAgIGZvcm1hdCEoImV4cGVjdGVkIGAoYCBhZnRlciBge31gIiwgaW50 cm9kdWNlciksCisrICAgICAgICApKSwKKysgICAgfQorK30KKysKKytwdWIgZm4gcGFyc2Vfb3B0 aW9uYWxfcGFyZW4oaXRlcjogSXRlcikgLT4gT3B0aW9uPEdyb3VwPiB7CisrICAgIG1hdGNoIGl0 ZXIucGVlaygpIHsKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpHcm91cChncm91cCkpIGlmIGdy b3VwLmRlbGltaXRlcigpID09IERlbGltaXRlcjo6UGFyZW50aGVzaXMgPT4geworKyAgICAgICAg ICAgIG1hdGNoIGl0ZXIubmV4dCgpIHsKKysgICAgICAgICAgICAgICAgU29tZShUb2tlblRyZWU6 Okdyb3VwKGdyb3VwKSkgPT4gU29tZShncm91cCksCisrICAgICAgICAgICAgICAgIF8gPT4gdW5y ZWFjaGFibGUhKCksCisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAgXyA9PiBO b25lLAorKyAgICB9CisrfQorKworK3B1YiBmbiBwYXJzZV9lbmQoaXRlcjogSXRlcikgLT4gUmVz dWx0PCgpPiB7CisrICAgIG1hdGNoIGl0ZXIubmV4dCgpIHsKKysgICAgICAgIE5vbmUgPT4gT2so KCkpLAorKyAgICAgICAgU29tZSh1bmV4cGVjdGVkKSA9PiBFcnIoRXJyb3I6Om5ldyh1bmV4cGVj dGVkLnNwYW4oKSwgInVuZXhwZWN0ZWQgdG9rZW4iKSksCisrICAgIH0KKyt9CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvdmVyc2lvbi5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL3ZlcnNpb24ucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy92 ZXJzaW9uLnJzCitAQCAtMCwwICsxLDE4IEBACisrIyFbYWxsb3coZGVhZF9jb2RlKV0KKysKKyt1 c2UgY3JhdGU6OmRhdGU6OkRhdGU7CisrCisrI1tkZXJpdmUoQ29weSwgQ2xvbmUsIERlYnVnLCBQ YXJ0aWFsRXEpXQorK3B1YiBzdHJ1Y3QgVmVyc2lvbiB7CisrICAgIHB1YiBtaW5vcjogdTE2LAor KyAgICBwdWIgcGF0Y2g6IHUxNiwKKysgICAgcHViIGNoYW5uZWw6IENoYW5uZWwsCisrfQorKwor KyNbZGVyaXZlKENvcHksIENsb25lLCBEZWJ1ZywgUGFydGlhbEVxKV0KKytwdWIgZW51bSBDaGFu bmVsIHsKKysgICAgU3RhYmxlLAorKyAgICBCZXRhLAorKyAgICBOaWdodGx5KERhdGUpLAorKyAg ICBEZXYsCisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVz dHMvY29tcGlsZXRlc3QucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL2Nv bXBpbGV0ZXN0LnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy9jb21waWxldGVzdC5ycworQEAgLTAs MCArMSw3IEBACisrI1tydXN0dmVyc2lvbjo6YXR0cihub3QobmlnaHRseSksIGlnbm9yZSA9ICJy ZXF1aXJlcyBuaWdodGx5IildCisrI1tjZmdfYXR0cihtaXJpLCBpZ25vcmUgPSAiaW5jb21wYXRp YmxlIHdpdGggbWlyaSIpXQorKyNbdGVzdF0KKytmbiB1aSgpIHsKKysgICAgbGV0IHQgPSB0cnli dWlsZDo6VGVzdENhc2VzOjpuZXcoKTsKKysgICAgdC5jb21waWxlX2ZhaWwoInRlc3RzL3VpLyou cnMiKTsKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0 cy90ZXN0X2NvbnN0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy90ZXN0 X2NvbnN0LnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy90ZXN0X2NvbnN0LnJzCitAQCAtMCwwICsx LDQyIEBACisrIyFbYWxsb3coCisrICAgIGNsaXBweTo6c2VtaWNvbG9uX2lmX25vdGhpbmdfcmV0 dXJuZWQsIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC1jbGlwcHkvaXNzdWVz LzczMjQKKysgICAgY2xpcHB5Ojp1c2VkX3VuZGVyc2NvcmVfaXRlbXMsCisrKV0KKysKKysjW3J1 c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCldCisrZm4gX2Jhc2ljKCkge30KKytjb25zdCBf QkFTSUM6ICgpID0gX2Jhc2ljKCk7CisrCisrI1tydXN0dmVyc2lvbjo6YXR0cihhbGwoKSwgY29u c3QpXQorK3Vuc2FmZSBmbiBfdW5zYWZlKCkge30KKytjb25zdCBfVU5TQUZFOiAoKSA9IHVuc2Fm ZSB7IF91bnNhZmUoKSB9OworKworK21hY3JvX3J1bGVzISBpdGVtIHsKKysgICAgKCRpOml0ZW0p ID0+IHsKKysgICAgICAgICNbcnVzdHZlcnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKysgICAg ICAgICRpCisrICAgIH07CisrfQorKworK2l0ZW0hIHtmbiBfaXRlbSgpIHt9fQorK2NvbnN0IF9J VEVNOiAoKSA9IF9pdGVtKCk7CisrCisrbWFjcm9fcnVsZXMhIGlkZW50IHsKKysgICAgKCRmbjpp ZGVudCkgPT4geworKyAgICAgICAgI1tydXN0dmVyc2lvbjo6YXR0cihhbGwoKSwgY29uc3QpXQor KyAgICAgICAgJGZuIF9pZGVudCgpIHt9CisrICAgIH07CisrfQorKworK2lkZW50ISB7Zm59Cisr Y29uc3QgX0lERU5UOiAoKSA9IF9pZGVudCgpOworKworKyNbcnVzdHZlcnNpb246OmF0dHIoYWxs KCksIGNvbnN0KV0KKysvLy8gZG9jCisrZm4gX2RvY19iZWxvdygpIHt9CisrY29uc3QgX0RPQ19C RUxPVzogKCkgPSBfZG9jX2JlbG93KCk7CisrCisrLy8vIGRvYworKyNbcnVzdHZlcnNpb246OmF0 dHIoYWxsKCksIGNvbnN0KV0KKytmbiBfZG9jX2Fib3ZlKCkge30KKytjb25zdCBfRE9DX0FCT1ZF OiAoKSA9IF9kb2NfYWJvdmUoKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL3Rlc3RzL3Rlc3RfZXZhbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24v dGVzdHMvdGVzdF9ldmFsLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAor KysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy90ZXN0X2V2YWwucnMKK0BA IC0wLDAgKzEsMjAgQEAKKysjW3J1c3R2ZXJzaW9uOjphbnkoCisrICAgIHN0YWJsZSwKKysgICAg c3RhYmxlKDEuMzQpLAorKyAgICBzdGFibGUoMS4zNC4wKSwKKysgICAgYmV0YSwKKysgICAgbmln aHRseSwKKysgICAgbmlnaHRseSgyMDIwLTAyLTI1KSwKKysgICAgc2luY2UoMS4zNCksCisrICAg IHNpbmNlKDIwMjAtMDItMjUpLAorKyAgICBiZWZvcmUoMS4zNCksCisrICAgIGJlZm9yZSgyMDIw LTAyLTI1KSwKKysgICAgbm90KG5pZ2h0bHkpLAorKyAgICBhbGwoc3RhYmxlLCBiZXRhLCBuaWdo dGx5KSwKKyspXQorK2ZuIHN1Y2Nlc3MoKSB7fQorKworKyNbdGVzdF0KKytmbiB0ZXN0KCkgewor KyAgICBzdWNjZXNzKCk7CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vdGVzdHMvdGVzdF9wYXJzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24v dGVzdHMvdGVzdF9wYXJzZS5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwK KysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdGVzdF9wYXJzZS5ycwor QEAgLTAsMCArMSwxMDMgQEAKKysjIVthbGxvdygKKysgICAgY2xpcHB5OjpkZXJpdmVfcGFydGlh bF9lcV93aXRob3V0X2VxLAorKyAgICBjbGlwcHk6OmVudW1fZ2xvYl91c2UsCisrICAgIGNsaXBw eTo6bXVzdF91c2VfY2FuZGlkYXRlCisrKV0KKysKKytpbmNsdWRlISgiLi4vYnVpbGQvcnVzdGMu cnMiKTsKKysKKysjW3Rlc3RdCisrZm4gdGVzdF9wYXJzZSgpIHsKKysgICAgbGV0IGNhc2VzID0g JlsKKysgICAgICAgICgKKysgICAgICAgICAgICAicnVzdGMgMS4wLjAgKGE1OWRlMzdlOSAyMDE1 LTA1LTEzKSAoYnVpbHQgMjAxNS0wNS0xNCkiLAorKyAgICAgICAgICAgIFZlcnNpb24geworKyAg ICAgICAgICAgICAgICBtaW5vcjogMCwKKysgICAgICAgICAgICAgICAgcGF0Y2g6IDAsCisrICAg ICAgICAgICAgICAgIGNoYW5uZWw6IFN0YWJsZSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAg KSwKKysgICAgICAgICgKKysgICAgICAgICAgICAicnVzdGMgMS4xOC4wIiwKKysgICAgICAgICAg ICBWZXJzaW9uIHsKKysgICAgICAgICAgICAgICAgbWlub3I6IDE4LAorKyAgICAgICAgICAgICAg ICBwYXRjaDogMCwKKysgICAgICAgICAgICAgICAgY2hhbm5lbDogU3RhYmxlLAorKyAgICAgICAg ICAgIH0sCisrICAgICAgICApLAorKyAgICAgICAgKAorKyAgICAgICAgICAgICJydXN0YyAxLjI0 LjEgKGQzYWU5YTllMCAyMDE4LTAyLTI3KSIsCisrICAgICAgICAgICAgVmVyc2lvbiB7CisrICAg ICAgICAgICAgICAgIG1pbm9yOiAyNCwKKysgICAgICAgICAgICAgICAgcGF0Y2g6IDEsCisrICAg ICAgICAgICAgICAgIGNoYW5uZWw6IFN0YWJsZSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAg KSwKKysgICAgICAgICgKKysgICAgICAgICAgICAicnVzdGMgMS4zNS4wLWJldGEuMyAoYzEzMTE0 ZGM4IDIwMTktMDQtMjcpIiwKKysgICAgICAgICAgICBWZXJzaW9uIHsKKysgICAgICAgICAgICAg ICAgbWlub3I6IDM1LAorKyAgICAgICAgICAgICAgICBwYXRjaDogMCwKKysgICAgICAgICAgICAg ICAgY2hhbm5lbDogQmV0YSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgKSwKKysgICAgICAg ICgKKysgICAgICAgICAgICAicnVzdGMgMS4zNi4wLW5pZ2h0bHkgKDkzOGQ0ZmZlMSAyMDE5LTA0 LTI3KSIsCisrICAgICAgICAgICAgVmVyc2lvbiB7CisrICAgICAgICAgICAgICAgIG1pbm9yOiAz NiwKKysgICAgICAgICAgICAgICAgcGF0Y2g6IDAsCisrICAgICAgICAgICAgICAgIGNoYW5uZWw6 IE5pZ2h0bHkoRGF0ZSB7CisrICAgICAgICAgICAgICAgICAgICB5ZWFyOiAyMDE5LAorKyAgICAg ICAgICAgICAgICAgICAgbW9udGg6IDQsCisrICAgICAgICAgICAgICAgICAgICBkYXk6IDI3LAor KyAgICAgICAgICAgICAgICB9KSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgKSwKKysgICAg ICAgICgKKysgICAgICAgICAgICAicnVzdGMgMS4zNi4wLWRldiIsCisrICAgICAgICAgICAgVmVy c2lvbiB7CisrICAgICAgICAgICAgICAgIG1pbm9yOiAzNiwKKysgICAgICAgICAgICAgICAgcGF0 Y2g6IDAsCisrICAgICAgICAgICAgICAgIGNoYW5uZWw6IERldiwKKysgICAgICAgICAgICB9LAor KyAgICAgICAgKSwKKysgICAgICAgICgKKysgICAgICAgICAgICAicnVzdGMgMS4zNi4wLW5pZ2h0 bHkiLAorKyAgICAgICAgICAgIFZlcnNpb24geworKyAgICAgICAgICAgICAgICBtaW5vcjogMzYs CisrICAgICAgICAgICAgICAgIHBhdGNoOiAwLAorKyAgICAgICAgICAgICAgICBjaGFubmVsOiBE ZXYsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAgICAgICAg ICAgIndhcm5pbmc6IGludmFsaWQgbG9nZ2luZyBzcGVjICd3YXJuaW5nJywgaWdub3JpbmcgaXQK KysgICAgICAgICAgICAgcnVzdGMgMS4zMC4wLW5pZ2h0bHkgKDNiYzJjYTdlNCAyMDE4LTA5LTIw KSIsCisrICAgICAgICAgICAgVmVyc2lvbiB7CisrICAgICAgICAgICAgICAgIG1pbm9yOiAzMCwK KysgICAgICAgICAgICAgICAgcGF0Y2g6IDAsCisrICAgICAgICAgICAgICAgIGNoYW5uZWw6IE5p Z2h0bHkoRGF0ZSB7CisrICAgICAgICAgICAgICAgICAgICB5ZWFyOiAyMDE4LAorKyAgICAgICAg ICAgICAgICAgICAgbW9udGg6IDksCisrICAgICAgICAgICAgICAgICAgICBkYXk6IDIwLAorKyAg ICAgICAgICAgICAgICB9KSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgKSwKKysgICAgICAg ICgKKysgICAgICAgICAgICAicnVzdGMgMS41Mi4xLW5pZ2h0bHkgKGdlbnRvbykiLAorKyAgICAg ICAgICAgIFZlcnNpb24geworKyAgICAgICAgICAgICAgICBtaW5vcjogNTIsCisrICAgICAgICAg ICAgICAgIHBhdGNoOiAxLAorKyAgICAgICAgICAgICAgICBjaGFubmVsOiBEZXYsCisrICAgICAg ICAgICAgfSwKKysgICAgICAgICksCisrICAgIF07CisrCisrICAgIGZvciAoc3RyaW5nLCBleHBl Y3RlZCkgaW4gY2FzZXMgeworKyAgICAgICAgbWF0Y2ggcGFyc2Uoc3RyaW5nKSB7CisrICAgICAg ICAgICAgUGFyc2VSZXN1bHQ6OlN1Y2Nlc3ModmVyc2lvbikgPT4gYXNzZXJ0X2VxISh2ZXJzaW9u LCAqZXhwZWN0ZWQpLAorKyAgICAgICAgICAgIFBhcnNlUmVzdWx0OjpPb3BzQ2xpcHB5IHwgUGFy c2VSZXN1bHQ6Ok9vcHNNaXJhaSB8IFBhcnNlUmVzdWx0OjpVbnJlY29nbml6ZWQgPT4geworKyAg ICAgICAgICAgICAgICBwYW5pYyEoInVucmVjb2duaXplZDogezo/fSIsIHN0cmluZyk7CisrICAg ICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWJvdW5kLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtYm91bmQucnMKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rl c3RzL3VpL2JhZC1ib3VuZC5ycworQEAgLTAsMCArMSw3IEBACisrI1tydXN0dmVyc2lvbjo6c2lu Y2Uoc3RhYmxlKV0KKytzdHJ1Y3QgUzsKKysKKysjW3J1c3R2ZXJzaW9uOjphbnkoc2luY2Uoc3Rh YmxlKSldCisrc3RydWN0IFM7CisrCisrZm4gbWFpbigpIHt9CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtYm91bmQuc3RkZXJyIGIvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtYm91bmQuc3RkZXJyCituZXcgZmls ZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0 dmVyc2lvbi90ZXN0cy91aS9iYWQtYm91bmQuc3RkZXJyCitAQCAtMCwwICsxLDExIEBACisrZXJy b3I6IGV4cGVjdGVkIHJ1c3RjIHJlbGVhc2UgbnVtYmVyIGxpa2UgMS44NSwgb3IgbmlnaHRseSBk YXRlIGxpa2UgMjAyNS0wMi0yNQorKyAtLT4gdGVzdHMvdWkvYmFkLWJvdW5kLnJzOjE6MjIKKysg IHwKKysxIHwgI1tydXN0dmVyc2lvbjo6c2luY2Uoc3RhYmxlKV0KKysgIHwgICAgICAgICAgICAg ICAgICAgICAgXl5eXl5eCisrCisrZXJyb3I6IGV4cGVjdGVkIHJ1c3RjIHJlbGVhc2UgbnVtYmVy IGxpa2UgMS44NSwgb3IgbmlnaHRseSBkYXRlIGxpa2UgMjAyNS0wMi0yNQorKyAtLT4gdGVzdHMv dWkvYmFkLWJvdW5kLnJzOjQ6MjYKKysgIHwKKys0IHwgI1tydXN0dmVyc2lvbjo6YW55KHNpbmNl KHN0YWJsZSkpXQorKyAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtZGF0ZS5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWRhdGUucnMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1 c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1kYXRlLnJzCitAQCAtMCwwICsxLDcgQEAKKysjW3J1c3R2 ZXJzaW9uOjpuaWdodGx5KHN0YWJsZSldCisrc3RydWN0IFM7CisrCisrI1tydXN0dmVyc2lvbjo6 YW55KG5pZ2h0bHkoc3RhYmxlKSldCisrc3RydWN0IFM7CisrCisrZm4gbWFpbigpIHt9CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtZGF0ZS5z dGRlcnIgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1kYXRlLnN0 ZGVycgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWRhdGUuc3RkZXJyCitAQCAtMCwwICsx LDExIEBACisrZXJyb3I6IGV4cGVjdGVkIG5pZ2h0bHkgZGF0ZSwgbGlrZSAyMDI1LTAyLTI1Cisr IC0tPiB0ZXN0cy91aS9iYWQtZGF0ZS5yczoxOjI0CisrICB8CisrMSB8ICNbcnVzdHZlcnNpb246 Om5pZ2h0bHkoc3RhYmxlKV0KKysgIHwgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl4KKysK KytlcnJvcjogZXhwZWN0ZWQgbmlnaHRseSBkYXRlLCBsaWtlIDIwMjUtMDItMjUKKysgLS0+IHRl c3RzL3VpL2JhZC1kYXRlLnJzOjQ6MjgKKysgIHwKKys0IHwgI1tydXN0dmVyc2lvbjo6YW55KG5p Z2h0bHkoc3RhYmxlKSldCisrICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXgor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLW5v dC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLW5vdC5ycwor bmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLW5vdC5ycworQEAgLTAsMCArMSw3IEBACisrI1ty dXN0dmVyc2lvbjo6YW55KG5vdCldCisrc3RydWN0IFM7CisrCisrI1tydXN0dmVyc2lvbjo6YW55 KG5vdCwgbm90KV0KKytzdHJ1Y3QgUzsKKysKKytmbiBtYWluKCkge30KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ub3Quc3RkZXJyIGIvdGhp cmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtbm90LnN0ZGVycgorbmV3IGZp bGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVz dHZlcnNpb24vdGVzdHMvdWkvYmFkLW5vdC5zdGRlcnIKK0BAIC0wLDAgKzEsMTEgQEAKKytlcnJv cjogZXhwZWN0ZWQgYChgIGFmdGVyIGBub3RgCisrIC0tPiB0ZXN0cy91aS9iYWQtbm90LnJzOjE6 MjAKKysgIHwKKysxIHwgI1tydXN0dmVyc2lvbjo6YW55KG5vdCldCisrICB8ICAgICAgICAgICAg ICAgICAgICBeXl4KKysKKytlcnJvcjogZXhwZWN0ZWQgYChgCisrIC0tPiB0ZXN0cy91aS9iYWQt bm90LnJzOjQ6MjMKKysgIHwKKys0IHwgI1tydXN0dmVyc2lvbjo6YW55KG5vdCwgbm90KV0KKysg IHwgICAgICAgICAgICAgICAgICAgICAgIF4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC12ZXJzaW9uLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtdmVyc2lvbi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMv dWkvYmFkLXZlcnNpb24ucnMKK0BAIC0wLDAgKzEsNyBAQAorKyNbcnVzdHZlcnNpb246OnN0YWJs ZShuaWdodGx5KV0KKytzdHJ1Y3QgUzsKKysKKysjW3J1c3R2ZXJzaW9uOjphbnkoc3RhYmxlKG5p Z2h0bHkpKV0KKytzdHJ1Y3QgUzsKKysKKytmbiBtYWluKCkge30KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC12ZXJzaW9uLnN0ZGVyciBiL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLXZlcnNpb24uc3RkZXJyCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVz dC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtdmVyc2lvbi5zdGRlcnIKK0BAIC0wLDAgKzEsMTEg QEAKKytlcnJvcjogZXhwZWN0ZWQgcnVzdGMgcmVsZWFzZSBudW1iZXIsIGxpa2UgMS4zMQorKyAt LT4gdGVzdHMvdWkvYmFkLXZlcnNpb24ucnM6MToyMworKyAgfAorKzEgfCAjW3J1c3R2ZXJzaW9u OjpzdGFibGUobmlnaHRseSldCisrICB8ICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eCisr CisrZXJyb3I6IGV4cGVjdGVkIHJ1c3RjIHJlbGVhc2UgbnVtYmVyLCBsaWtlIDEuMzEKKysgLS0+ IHRlc3RzL3VpL2JhZC12ZXJzaW9uLnJzOjQ6MjcKKysgIHwKKys0IHwgI1tydXN0dmVyc2lvbjo6 YW55KHN0YWJsZShuaWdodGx5KSldCisrICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5e Xl5eXgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkv Y29uc3Qtbm90LWZuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9j b25zdC1ub3QtZm4ucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2NvbnN0LW5vdC1mbi5ycwor QEAgLTAsMCArMSw0IEBACisrI1tydXN0dmVyc2lvbjo6YXR0cihhbGwoKSwgY29uc3QpXQorK3B1 YiBzdHJ1Y3QgUzsKKysKKytmbiBtYWluKCkge30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2NvbnN0LW5vdC1mbi5zdGRlcnIgYi90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2NvbnN0LW5vdC1mbi5zdGRlcnIKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL3Rlc3RzL3VpL2NvbnN0LW5vdC1mbi5zdGRlcnIKK0BAIC0wLDAgKzEsNSBAQAorK2Vy cm9yOiBvbmx5IGFsbG93ZWQgb24gYSBmbiBpdGVtCisrIC0tPiB0ZXN0cy91aS9jb25zdC1ub3Qt Zm4ucnM6MToyOAorKyAgfAorKzEgfCAjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCld CisrICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eCgpkaWZmIC0tZ2l0IGEvc2Vh bW9ua2V5LnNwZWMgYi9zZWFtb25rZXkuc3BlYwppbmRleCA4MWJjZmMyLi43ZWU0NjlmIDEwMDY0 NAotLS0gYS9zZWFtb25rZXkuc3BlYworKysgYi9zZWFtb25rZXkuc3BlYwpAQCAtMTgsNyArMTgs NyBAQAogCiAlZ2xvYmFsIG5zcHJfdmVyc2lvbgk0LjM1LjAKICVnbG9iYWwgbnNzX3ZlcnNpb24J My4xMTIuMAotJWdsb2JhbCBsaWJ2cHhfdmVyc2lvbgkxLjUuMAorJWdsb2JhbCBsaWJ2cHhfdmVy c2lvbgkxLjEwLjAKICVnbG9iYWwgd2VicF92ZXJzaW9uCTEuMC4yCiAlZ2xvYmFsIGljdV92ZXJz aW9uCTYzLjEKICVnbG9iYWwgZmZpX3ZlcnNpb24JMy4wLjkKQEAgLTM0LDggKzM0LDggQEAKIAog TmFtZTogICAgICAgICAgIHNlYW1vbmtleQogU3VtbWFyeTogICAgICAgIFdlYiBicm93c2VyLCBl LW1haWwsIG5ld3MsIElSQyBjbGllbnQsIEhUTUwgZWRpdG9yCi1WZXJzaW9uOiAgICAgICAgMi41 My4yMwotUmVsZWFzZTogICAgICAgIDUlez9kaXN0fQorVmVyc2lvbjogICAgICAgIDIuNTMuMjQK K1JlbGVhc2U6ICAgICAgICAxJXs/ZGlzdH0KIFVSTDogICAgICAgICAgICBodHRwOi8vd3d3LnNl YW1vbmtleS1wcm9qZWN0Lm9yZwogTGljZW5zZTogICAgICAgIE1QTC0yLjAKIApAQCAtNTUsNyAr NTUsNiBAQCBQYXRjaDM6CQlzZWFtb25rZXktMi41My4xNy1tb3ppbGxhLTE1MTY4MDMucGF0Y2gK IFBhdGNoNDoJCXNlYW1vbmtleS0yLjUzLjE4LW1vemlsbGEtMTg2MjYwMS5wYXRjaAogUGF0Y2g1 OgkJZmlyZWZveC0zNS1yaGJ6LTExNzMxNTYucGF0Y2gKIFBhdGNoNzoJCWZpcmVmb3gtNTEtbW96 aWxsYS0xMDA1NjQwLnBhdGNoCi1QYXRjaDg6CQlzZWFtb25rZXktMi41My4yMi1tb3ppbGxhLTE4 ODIyMDkucGF0Y2gKIFBhdGNoOToJCXNlYW1vbmtleS0yLjUzLjEtbW96aWxsYS1yZXZlcnQtMTMz MjEzOS5wYXRjaAogUGF0Y2gxMToJc2VhbW9ua2V5LTIuNTMuMTYtbW96aWxsYS0xNDM0NDc4LnBh dGNoCiBQYXRjaDEzOglzZWFtb25rZXktMi41My4xMC1tb3ppbGxhLTE0NjAyOTUucGF0Y2gKQEAg LTg0LDYgKzgzLDEyIEBAIFBhdGNoMzk6CXNlYW1vbmtleS0yLjUzLjguMS1kYXRlZm9ybWF0LnBh dGNoCiBQYXRjaDQwOglzZWFtb25rZXktMi41My4xMC1zbG93c2NyaXB0LnBhdGNoCiBQYXRjaDQy OglzZWFtb25rZXktMi41My4xMC1wb3N0bWVzc2FnZS1ldmVudC5wYXRjaAogCitQYXRjaDUwOglz ZWFtb25rZXktMi41My4yNC1tb3ppbGxhLTE4ODIyMDkucGF0Y2gKK1BhdGNoNTE6CXNlYW1vbmtl eS0yLjUzLjI0LW1vemlsbGEtMTg2NjE5MS5wYXRjaAorUGF0Y2g1MjoJc2VhbW9ua2V5LTIuNTMu MjQtbW96aWxsYS0yMDMzMjc5LnBhdGNoCitQYXRjaDUzOglzZWFtb25rZXktMi41My4yNC1ydXN0 X3ZlcnNpb24ucGF0Y2gKK1BhdGNoNTQ6CXNlYW1vbmtleS0yLjUzLjI0LXJ1c3RfdTJmaGlkLnBh dGNoCisKIFBhdGNoNjA6CXNlYW1vbmtleS0yLjUzLjExLXVhLXVwZGF0ZS5wYXRjaAogUGF0Y2g2 MToJc2VhbW9ua2V5LTIuNTMuMTMtdWEtdXBkYXRlLXByZWxvYWQucGF0Y2gKIFBhdGNoNjI6CXNl YW1vbmtleS0yLjUzLjIyLWNvbXBhdC12ZXJzaW9uLnBhdGNoCkBAIC0xODIsNyArMTg3LDYgQEAg Y3AgJXtTT1VSQ0UzfSBHTlVtYWtlZmlsZQogJXs/d2l0aF9zeXN0ZW1faWN1OiVwYXRjaCA0IC1w MSAtYiAuMTg2MjYwMX0KICVwYXRjaCA1IC1wMiAtYiAuMTE3MzE1NgogJXBhdGNoIDcgLXAxIC1i IC4xMDA1NjQwCi0lcGF0Y2ggOCAtcDEgLWIgLjE4ODIyMDkKICV7P3dpdGhfc3lzdGVtX2xpYnZw eDolcGF0Y2ggOSAtcDEgLWIgLjEzMzIxMzl9CiAlcGF0Y2ggMTEgLXAxIC1iIC4xNDM0NDc4CiAl cGF0Y2ggMTMgLXAxIC1iIC4xNDYwMjk1CkBAIC0yMTIsNiArMjE2LDEyIEBAIGNwICV7U09VUkNF M30gR05VbWFrZWZpbGUKICVwYXRjaCA0MCAtcDAgLWIgLnNsb3dzY3JpcHQKICVwYXRjaCA0MiAt cDEgLWIgLnBvc3RtZXNzYWdlLWV2ZW50CiAKKyVwYXRjaCA1MCAtcDEKKyVwYXRjaCA1MSAtcDEK KyVwYXRjaCA1MiAtcDEKKyVwYXRjaCA1MyAtcDEKKyVwYXRjaCA1NCAtcDEKKwogJXBhdGNoIDYw IC1wMSAtYiAudWEtdXBkYXRlCiAlcGF0Y2ggNjEgLXAxIC1iIC51YS11cGRhdGUtcHJlbG9hZAog JXBhdGNoIDYyIC1wMSAtYiAuY29tcGF0LXZlcnNpb24KQEAgLTMzNyw3ICszNDcsNyBAQCBwcmVm KCJjYWxlbmRhci51c2VyYWdlbnQuZXh0cmEiLCAiIiwgbG9ja2VkKTsKIAogLyogQ29tcGxldGVs eSBtaW1pYyB0byBGaXJlZm94IGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhpcyBXb3JsZCBub3dh ZGF5cy4uLiAgKi8KIHByZWYoImdlbmVyYWwudXNlcmFnZW50LmNvbXBhdE1vZGUuc3RyaWN0LWZp cmVmb3giLCB0cnVlKTsKLXByZWYoImdlbmVyYWwudXNlcmFnZW50LmNvbXBhdE1vZGUudmVyc2lv biIsICIxMjguMCIpOworcHJlZigiZ2VuZXJhbC51c2VyYWdlbnQuY29tcGF0TW9kZS52ZXJzaW9u IiwgIjE0MC4wIik7CiAKIHByZWYoIm5ldHdvcmsuaHR0cC5zZW5kT3JpZ2luSGVhZGVyIiwgMSk7 CiAKQEAgLTQ5OSw4ICs1MDksOCBAQCBta2RpciAtcCAkUlBNX0JVSUxEX1JPT1Qle19saWJkaXJ9 L21vemlsbGEvZXh0ZW5zaW9ucy8le3NlYW1vbmtleV9hcHBfaWR9CiAKIAogJWNoYW5nZWxvZwot KiBGcmkgSnVsIDE3IDIwMjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRv cmFwcm9qZWN0Lm9yZz4gLSAyLjUzLjIzLTUKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFw cm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80NV9NYXNzX1JlYnVpbGQKKyogVGh1IEp1bCAzMCAyMDI2 IERtaXRyeSBCdXRza295IDxEbWl0cnlAQnV0c2tveS5uYW1lPiAyLjUzLjI0LTEKKy0gdXBkYXRl IHRvIDIuNTMuMjQKIAogKiBXZWQgQXByIDE1IDIwMjYgTmljb2xhcyBDaGF1dmV0IDxrd2l6YXJ0 QGdtYWlsLmNvbT4gLSAyLjUzLjIzLTQKIC0gUmVidWlsdCBmb3Igdm1hZi0zLjEuMAoKZGlmZiAt LWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGFjZmQyZDYuLjhmZDE3NWEgMTAwNjQ0Ci0t LSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKLVNIQTUxMiAoc2VhbW9u a2V5LTIuNTMuMjMuc291cmNlLnRhci54eikgPSA1OTM1MjY2MGRhZDUzZmQ0ZTBkOTgxMGQ0MmRl MDUxMTUzNTVhODU3NDc2YmE5NDY4ODk5Y2VmYWQxNWIyNzk5OWUxZjI3OWFhNDU3NzUzZTlhZGI1 ZDY1ZGNiYjMyMWM4MDA3YzQ2N2FjMzA5YWUzMDk2NGMyOTI2MDhmYzJiNgotU0hBNTEyIChzZWFt b25rZXktMi41My4yMy5zb3VyY2UtbDEwbi50YXIueHopID0gMjdmYWUyZmY1M2UxM2NhNDIzNzhi ODVkMWMzNGQzZWM1YzYxNzUzYzQwMDk2MmVkZjczMDlhOTMyOGQwNjdiYjZlN2NiNTlhYmQyODZi MmZmODdkNDM1NGQyYTU4OTBiYTVjZDQzMTAxMDVjNGIxNWE0OWM3YjM5MmQ2OTNkNDEKK1NIQTUx MiAoc2VhbW9ua2V5LTIuNTMuMjQuc291cmNlLnRhci54eikgPSBkYWQwYzVmZWY2MTk5YTI3YWY1 YmM5OGJhNzNlOWJmNmY2NDA0MGRhMDEwZjU1YjQ2OGQyZWY1Njg1NzYwODkzNDZiMjI4MGYxZjc0 NzMwZWNiYmRiOGM4ZmY4MTk3ZmEwZmJlM2Y3MmYxMjM4ZDA0ODhmYTA4ZjZmZThjMDhiYgorU0hB NTEyIChzZWFtb25rZXktMi41My4yNC5zb3VyY2UtbDEwbi50YXIueHopID0gYWExY2RiMTM5ZWU4 MjQxZjFiZDM4YjFkZGNmZWNhMTgwOTg3M2RjZmIwYTM4YTQzZTJlNDY2NzY5NTMwMjdlYzljZDhl NzQzNTRhYjIzYzZhYmNiYjUzZmZhZjYwYWY3NjVlNjE2ZjlkZGU3NDFmZGUyODI0MzBiZjZiZGZk NGEK